jstat 工具
1271 字大约 4 分钟2024年12月3日
显示 GC 统计信息
使用-gc选项可以显示垃圾收集相关的统计信息:
jstat -gc <PID>示例输出:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1024.0 1024.0 0.0 512.0 8192.0 4096.0 20480.0 10240.0 3200.0 1600.0 512.0 256.0 5 0.100 2 0.200 0.300字段解释:
- S0C / S1C:新生代 Eden 区的 Survivor 0 区和 Survivor 1 区的容量(KB)。
- S0U / S1U:新生代 Eden 区的 Survivor 0 区和 Survivor 1 区的已使用空间(KB)。
- EC:新生代 Eden 区的容量(KB)。
- EU:新生代 Eden 区的已使用空间(KB)。
- OC:老年代的容量(KB)。
- OU:老年代的已使用空间(KB)。
- MC:方法区(Metaspace)的容量(KB)。
- MU:方法区的已使用空间(KB)。
- CCSC:压缩类空间的容量(KB)。
- CCSU:压缩类空间的已使用空间(KB)。
- YGC:年轻代 GC 次数。
- YGCT:年轻代 GC 消耗时间(秒)。
- FGC:老年代 GC 次数。
- FGCT:老年代 GC 消耗时间(秒)。
- GCT:GC 总消耗时间(秒)。
显示类加载统计信息
使用-class选项可以显示类加载相关的统计信息:
jstat -class <PID>示例输出:
Loaded Bytes Unloaded Bytes Time
1024 512000 100 50000 0.50字段解释:
- Loaded:已加载类的数量。
- Bytes:已加载类所占用的字节数。
- Unloaded:已卸载类的数量。
- Bytes:已卸载类所释放的字节数。
- Time:类加载和卸载消耗的总时间(秒)。
显示编译统计信息
使用-compiler选项可以显示即时编译器(JIT)相关的统计信息:
jstat -compiler <PID>示例输出:
Compiled Failed Invalid Time FailedType FailedMethod
2048 2 0 15.00 1 MyClass::myMethod字段解释:
- Compiled:已编译的方法数量。
- Failed:编译失败的方法数量。
- Invalid:无效的编译数量。
- Time:编译消耗的总时间(秒)。
- FailedType:最后一次编译失败的类型。
- FailedMethod:最后一次编译失败的方法名称。
显示 GC 利用率统计信息
使用-gcutil选项可以显示垃圾收集相关的内存利用率情况:
jstat -gcutil <PID>示例输出:
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.0 50.0 25.0 50.0 50.0 50.0 5 0.100 2 0.200 0.300字段解释:
- S0 / S1:新生代 Eden 区的 Survivor 0 区和 Survivor 1 区的内存利用率(%)。
- E:新生代 Eden 区的内存利用率(%)。
- O:老年代的内存利用率(%)。
- M:方法区的内存利用率(%)。
- CCS:压缩类空间的内存利用率(%)。
- YGC:年轻代 GC 次数。
- YGCT:年轻代 GC 消耗时间(秒)。
- FGC:老年代 GC 次数。
- FGCT:老年代 GC 消耗时间(秒)。
- GCT:GC 总消耗时间(秒)。
显示各内存区域的容量和使用情况
使用-gccapacity选项可以显示各内存区域(如新生代、老年代、永久代)的容量和使用情况:
jstat -gccapacity <PID>示例输出:
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC CCNM CCNX CCMX CCSMN CCSMX CCSC CCSU
2048.0 8192.0 4096.0 512.0 512.0 3072.0 10240.0 20480.0 15360.0 10240.0 1024.0 2048.0 3072.0 1024.0 2048.0 1536.0 1024.0字段解释:
- NGCMN:新生代最小容量(KB)。
- NGCMX:新生代最大容量(KB)。
- NGC:新生代当前容量(KB)。
- S0C / S1C:新生代 Eden 区的 Survivor 0 区和 Survivor 1 区的容量(KB)。
- EC:新生代 Eden 区的容量(KB)。
- OGCMN:老年代最小容量(KB)。
- OGCMX:老年代最大容量(KB)。
- OGC:老年代当前容量(KB)。
- OC:老年代的容量(KB)。
- CCNM / CCNX:压缩类空间的最小和最大容量(KB)。
- CCMX:压缩类空间的当前容量(KB)。
- CCSMN / CCSMX:压缩类空间的最小和最大容量(KB)。
- CCSC:压缩类空间的容量(KB)。
- CCSU:压缩类空间的已使用空间(KB)。
显示元空间容量和使用情况
使用-gcmetacapacity选项可以显示 JVM 元数据区域(Metaspace)的容量和使用情况:
jstat -gcmetacapacity <PID>示例输出:
MC MU CCSC CCSU
3200.0 1600.0 512.0 256.0字段解释:
- MC:方法区(Metaspace)的容量(KB)。
- MU:方法区的已使用空间(KB)。
- CCSC:压缩类空间的容量(KB)。
- CCSU:压缩类空间的已使用空间(KB)。
