天天看点

什么是垃圾收集日志?如何启用日志分析?

什么是垃圾收集日志?如何启用日志分析?

与大多数工程师的想法相反,垃圾回收对应用程序有着重要影响。为了优化内存与垃圾回收参数,解决与内存相关的问题,必须分析垃圾收集日志。

启用GC日志

启动应用程序时设置参数启用GC日志记录

Java 8及早先版本

下面参数适用于JDK 8及之前所有Java版本。

例如:

Java 9及更高版本

以下参数从JDK 9开始的所有Java版本都支持。

如何分析GC日志?

设置上面的参数得到的GC日志示例:

什么是垃圾收集日志?如何启用日志分析?

GC日志包含丰富的信息,但要了解GC日志并不容易,主要原因是缺少文档,没有足够的文档解释GC日志格式。最重要的是,GC日志的格式尚未标准化。

依据JVM供应商(Oracle、IBM、HP、Azul等),Java版本(1.4、5、6、7、8、9),GC算法(串行、并行、CMS、G1、Shenandoah),以及设置的GC系统属性(-XX:+ PrintGC,-XX:+ PrintGCDetails,-XX:+ PrintGCDateStamps,-XX:+ PrintHeapAtGC…)不同,日志有很大差异。按照这种排列和组合,很容易就有多达60多种不同的GC日志格式。

要分析GC日志,强烈建议使用日志分析工具,比如GCeasy、HPJmeter。这些工具可以解析GC日志,支持数据可视化,报告关键性能以及其他有用的指标。