为什么要看GC日志?
因为JVM的GC状态能在很大程度上衡量JVM是否健康,在相同条件下能否持续稳定运行。
G1和CMS在日志上会有些许的区别,由于平时用G1为主,这边主要讨论G1。
除此之外,如果想要学习G1,研究日志也是很好的途径。
G1日志详解
本文参考了RedHat Blog的Collecting and reading G1 garbage collector logs,并结合了现实场景和自己的理解来分析。其中的GC日志例子为线上应用的GC日志片段。
Young GC
总体先看下GC日志
逐行分析:
Concurrent Cleanup 并发清除
G1的第二种收集活动是并发垃圾收集,并发垃圾收集的触发条件有很多,但是做的工作都相同。
Mixed GC
在并发收集阶段结束后,你会看到混合收集阶段的日志,如下图所示,该日志的大部分跟之前讨论的新生代收集相同,只有第1部分不一样:GC pause (G1 Evacuation Pause) (mixed), 0.0066976 secs
这一行表示这是一个混合垃圾收集周期;在混合垃圾收集处理的CSet不仅包括新生代的分区,还包括老年代分区——也就是并发标记阶段标记出来的那些老年代分区。
Full GC
转载:https://blog.csdn.net/zyzzxycj/article/details/101380660
查看评论