jvm gc fullgc定位分析

父文章 : 基于日志理解 cms 原理,为什么remark要stop the world?(理解CMS GC日志.)_个人渣记录仅为自己搜索用的博客-CSDN博客_cms原理



 

通过抽样拉取堆栈.

通过日志分析,我们能发现在ThreadProfileCollector类中LonItem对象,对应Retained Heap Size非常大,Retained Heap Size的意思就是当前对象被GC后,从Heap上总共能释放掉的内存。如下图:

JVM源码分析之MetaspaceSize和MaxMetaspaceSize的区别 (刚启动不久就gc,因为metaspace配置的比较小,遇到了gc一次)

JVM参数MetaspaceSize的误解

1. 一种是ygc过于频繁, 1秒钟一次, 最终能回收掉.

2.一种是fullgc,最终能回收掉.

     fullgc前dump,然后查看. fullgc后dump. 对比哪个类消失了.

    还有就是看一端时间的内存占用和比率,

     如果公司有长期快照最好, 对比gc前后的堆,meta,堆外存占用对比. 判断是什么原因导致的cms?  

    刚启动后的fullgc,而且老生代占用很低(自己维护的话,公司系统没有内存快照信息,就需要增加参数 -XX:+PrintHeapAtGC 在进行GC的前后打印出堆的信息)

    cms和全锁gc都算fullgc,会计算在jstat -gcutil的fullgc次数里.

    命令: jstat -gcutil xxx -10s 2 看占用率 ()

3. 一种是内存泄露,内存占用不断上升,如果不重启最终会oom.

     重启后关注一段时间
————————————————
版权声明:本文为CSDN博主「个人渣记录仅为自己搜索用」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/fei33423/article/details/70941939

你可能感兴趣的:(稳定性,jvm,fullgc)