可以在java的执行命令中加入以下jvm参数,将GC的日志保存下来用GCViewer或者GCeasy进行分析。
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -Xloggc:/log/k8sapplication/gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=1M
以上命令详情解析可见Java官网 和 UseGCLogFileRotation
命令 | 解释 |
---|---|
-XX:+PrintGCDetails | 输出GC的细节 |
-XX:+PrintGCTimeStamps | 输出GC的时间 |
-Xloggc:/log/k8sapplication/gc-%t.log | 将GC日志保存到/log/k8sapplication/gc-%t.log文件中,其中&t是文件生成时间,例如gc-2020-12-04_13-39-46.log |
XX:+UseGCLogFileRotation | 将日志分成多个文件输出,注意启动此项之后.log后面会加上是第几个文件,例如gc-2020-12-04_13-39-46.log.0.current |
-XX:NumberOfGCLogFiles=5 | 分成5个文件 |
-XX:GCLogFileSize=1M | 每个文件最大1M,单位可以是K、M、G |