解决线上频繁GC问题步骤思路

1.查看监控,了解出现问题的时间点以及当前FGC的频率(可对比正常情况看频率是否正常)
2.了解改时间点之前有无程序上线、基础组件升级等情况
3.了解jvm参数设置,包括:堆空间各个区域大小的设置,新生代和老年代分别采用了什么垃圾收集器,然后分析jvm参数设置是否合理
4.再对步骤1中列出的可能原因做排除法,如元空间被打满、内存泄漏、代码显示调用GC方法
5.针对大对象或者生命周期长的对象导致的FGC,可通过jmap -histo 命令结合dump堆内存文件作进一步分析,需要先定位到可疑对象
6.通过可疑对象定位到具体代码再次分析,这时候要结合GC原理和jvm参数设置,弄清楚可疑对象是否满足了进入老年代的条件才能下结论

相关文章

jinfo 命令可以用来查看 Java 进程运行的 JVM 参数,命令如下...
原文链接:https://www.cnblogs.com/niejunlei/p/5987611.ht...
java 语言, 开发者不能直接控制程序运行内存, 对象的创建都是...
jvm
1.jvm的简单抽象模型:  2.类加载机制     双亲委派模...
堆外内存JVM启动时分配的内存,称为堆内存,与之相对的,在代...
1.springboot和tomcat2.springcloud的请求如何通过网关鉴权?...