jstat 命令分析GC

169 阅读1分钟

1. 背景

线上分析GC的问题,从容了解服务的GC情况

2. 使用demo

image.png

YGC: 线程启动到现在YGC发生的次数 YGCT: YGC耗费的时间(秒) CCS: 压缩过的类空间的利用率

jstat -gcutil pid

jstat -gcutil pid 1000 : 每隔1s持续打印数据

jstat -gcutil pid 1000 5: 打印5次

如何计算一次YGC的耗时:17.558s/2402次 = 7.3ms

3. 如何打开GC打印日志的配置

-XX:+PrintGC

-XX:+PrintGCTimeStamps

-XX:+PrintGCDetails

-Xloggc:/path/to/gc.log

JVM重启了,会把之前的GC日志文件覆盖掉

-Xloggc:/path/to/gc-%t.log

-XX:+UseGCLogFileRotation: 配置日志滚动

-XX:GCLogFileSize=1M : 文件大小最大1M

-XX:NumberOfGCLogFiles=5: 最多5个日志文件

4. GC网站

gceasy.io/