`
chembo
  • 浏览: 944733 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一次JVM爆内存分析

阅读更多
1.应用没有死,但是响应非常慢,通过jstat查看到s0/s1 eden old区都100%了;确认JVM是内存爆了;系统GC时间非常高;
2.通过jmap和java options查看JVM内存分配和参数配置,看是否不合理;
3.通过thread dump结合top -H -p  pid查看CPU最高的线程是什么,看是否存在deadlock,如果是用户线程,基本可以定位到问题;而我的threaddump最吃CPU的都是GC线程,且无死锁,可以确认是程序问题;
4.通过jmap -histo:live pid这一步查看对象实例数和占用内存数;
就在这一步发现了一个业务对象实例占用非常高,达30多W;
然后就顺瓜摸藤找到原因了。
分享到:
评论

相关推荐

    记录一次Java爆掉之后的日志

    标题“记录一次Java爆掉之后的日志”暗示了这是一个关于Java程序运行时出现严重问题的案例,可能是由于内存溢出、线程死锁或者系统资源耗尽等原因导致的程序崩溃。这种问题通常会生成一个名为“hs_err_pid[进程ID]....

    阿里面试题 JVM-开源框架.docx

    5. **GC流程**:一次完整的GC流程包括Minor GC(新生代GC)和Major GC(老年代GC)。对象晋升到老年代通常是在经过几次Minor GC后仍然存活的。 6. **JVM参数**:常见的参数如`-Xms`和`-Xmx`设定堆内存最小和最大值...

    一个JSP页面导致的tomcat内存溢出的解决方法

    在本例中,尽管初步分析认为JSP页面可能生成的仅是class文件,与堆内存无直接关系,但实际上,因为每请求一次页面就会生成一个session对象,大量并发请求导致session对象迅速增加,从而撑爆了堆内存。 2. session...

    jdk-8u251-linux-x64和jdk-8u251-windows-x64

    5. **开发工具**:如jar工具(打包和提取.jar文件),javadoc(生成API文档),jmap(内存映射工具),jconsole(监控Java应用程序),jvisualvm(多合一的性能分析工具)等,这些工具帮助开发者进行代码管理和性能...

    BJ_codingTest

    12. **JVM原理**:理解Java虚拟机的工作机制,包括类加载、内存管理(堆、栈、方法区等)、垃圾回收等。 13. **反射机制**:在运行时动态获取类的信息并操作类的方法和属性。 14. **注解(Annotation)**:元数据...

Global site tag (gtag.js) - Google Analytics