文档

支持的GC日志格式

更新时间:

GC日志分析工具对各种JDK类型,JDK版本,GC类型和JVM参数的支持情况

本文中“支持”是指这个日志可正常解析并且其打印内容会被工具分析,“忽略”是指日志可正常解析但其打印的内容会被忽略,“不支持”是指使用后可能引起工具解析异常或结果错误。

支持的JDK类型

本工具只支持OpenJDK及其下游发行版产生的GC日志。

支持的JDK版本

支持Java 8,11和17的GC日志。其它版本的JDK由于不是长期支持版本,不保证能够正常解析。

支持的GC类型

GC类型

对应的JVM参数

支持情况

Serial GC

UseSerialGC

支持

Parallel GC

UseParallelGC

支持

CMS GC

UseConcMarkSweepGC

支持

G1 GC

UseG1GC

支持

Shenandoah GC

UseShenandoahGC

不支持

ZGC

UseZGC

支持

Epsilon GC

UseEpsilonGC

不支持

支持的JVM参数

无论是哪个JDK版本,日志打印都必须符合以下要求:

  1. 至少打开了一个打印日志时间相关的参数。

  2. 不要把GC日志打印到stdout里,stdout可能会混杂其它日志干扰工具解析。

JDK8

多数情况下推荐使用的GC日志打印参数是-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:gc.log,其它功能可自行按需开启。

具体的参数支持情况:

参数

支持情况

备注

PrintGCDetails

支持

PrintGC

支持

更推荐使用-XX:+PrintGCDetails

PrintGCDateStamps

PrintGCDateStamps和

PrintGCTimeStamps至少要开启一个,否则不支持

更推荐使用-XX:+PrintGCDateStamps

PrintGCTimeStamps

PrintGCDateStamps和

PrintGCTimeStamps至少要开启一个,否则不支持

更推荐使用-XX:+PrintGCDateStamps

verbose:gc

支持

更推荐使用-XX:+PrintGCDetails -XX:+PrintGCDateStamps

Xlog:gc

必须设置此参数

ATP不支持从stdout里分析GC日志

PrintGCCause

支持,且不支持关闭此参数

推荐保持默认即可

PrintGCID

支持

UseGCLogFileRotation

当前工具只支持单个日志文件的分析,不支持把多个rotate的GC日志合并上传分析

其它未提到的参数的输出内容都会被忽略。

JDK9及以上

JDK9时整个JDK的日志打印系统被完全重构,称为Unified Logging,具体用法可以参考Oracle官方文档。设置GC日志打印参数时只需满足以上两点条件都能正常解析,多数情况下推荐使用的GC日志打印参数是-Xlog:gc*:gc.log:time,其它功能可自行按需开启。

当前本工具只支持分析-Xlog:gc*或-Xlog:gc输出的GC日志内容,其它更详细的日志都会被忽略。

  • 本页导读 (0)
文档反馈