线上应用程序出现Full GC问题应该如何排查?

提问者:帅平 问题分类:面试刷题
线上应用程序出现Full GC问题应该如何排查?
Jvm
1 个回答
理解的心
理解的心
排查思路如下:
1、查看监控,以了解出现问题的时间点以及当前FGC的频率(可对比正常情况看频率是否正常)
2、了解该时间点之前有没有程序上线、基础组件升级等情况。
3、了解JVM的参数设置,包括:堆空间各个区域的大小设置,新生代和老年代分别采用了哪些垃圾收集器,然后分析JVM参数设置是否合理。
4、再对步骤1中列出的可能原因做排除法,其中元空间被打满、内存泄漏、代码显式调用gc方法比较容易排查。
5、针对大对象或者长生命周期对象导致的FGC,可通过 jmap -histo 命令并结合dump堆内存文件作进一步分析,需要先定位到可疑对象。
6、通过可疑对象定位到具体代码再次分析,这时候要结合GC原理和JVM参数设置,弄清楚可疑对象是否满足了进入到老年代的条件才能下结论。
发布于:4个月前 (04-02) IP属地:四川省
我来回答