简介
jstat(java virtual machine statistics Monitoring Tool)jvm统计监控工具。
jstat用于监控基于HotSpot的jvm,对其堆的使用情况进行实施的命令行的统计。
可以针对以下选项对jvm进行不同维度的统计。
也可以通过jstat -options查看支持的option
Option | Displays... |
---|---|
class | 用于查看类加载情况的统计 |
compiler | 用于查看HotSpot中即时编译器编译情况的统计 |
gc | 用于查看JVM中堆的垃圾收集情况的统计 |
gccapacity | 用于查看新生代、老生代及持久代的存储容量情况 |
gccause | 用于查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因。 |
gcnew | 用于查看新生代垃圾收集的情况 |
gcnewcapacity | 用于查看新生代的存储容量情况 |
gcold | 用于查看老生代及持久代发生GC的情况 |
gcoldcapacity | 用于查看老生代的容量 |
gcpermcapacity | 用于查看持久代的容量 |
gcutil | 用于查看新生代、老生代及持代垃圾收集的情况 |
printcompilation | HotSpot编译方法的统计 |
使用示例
类加载统计
[root@localhost app]# jstat -class 7329
Loaded Bytes Unloaded Bytes Time
10414 18847.4 0 0.0 4.03
loaded:加载class的数量
Bytes:所占用的空间大小
Unloaded:未加载数量
Bytes:未加载占用的空间
Time:时间
编译统计
[root@localhost app]# jstat -compiler 7329
Compiled Failed Invalid Time FailedType FailedMethod
9246 0 0 23.07 0
Compiled:编译数量
Failed:失败数量
Invalid:无效数量
Time:时间
FailedType:失败的类型
FailedMethod:失败的方法
垃圾回收统计
[root@localhost app]# jstat -gc 7329
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
29696.0 21504.0 0.0 21091.3 594432.0 258639.8 90624.0 33564.0 55168.0 53907.7 7040.0 6761.2 19 0.155 2 0.092 0.247
S0C:(Survivor)年轻代中第一个幸存区大小
S1C:(Survivor)年轻代中第二个幸存区大小
S0U:(Survivor Used)年轻代中第一个幸存区的使用大小
S1C:(Survivor Used)年轻代中第二个幸存区的使用大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
OC:老年代的大小
OU:老年代的使用大小
MC:方法区的大小
MU:方法区的使用大小
CCSC:压缩类空间的大小
CCSU:压缩内空间的使用大小
YGC:(Number of young generation GC Events)年轻代GC事件的数量
YGCT:(Young generation garbage collection time)年轻代GC的时间
FGC:(Number of full GC events)完整GC事件的数量
FGCT:(Full garbage collection time)完整GC的时间
GCT:(Total garbage collection time)全部GC的时间
堆内存统计
[root@localhost app]# jstat -gccapacity 7329
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
40960.0 649728.0 649728.0 29696.0 21504.0 594432.0 81920.0 1299968.0 90624.0 90624.0 0.0 1097728.0 55168.0 0.0 1048576.0 7040.0 19 2
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0C:第一个幸存区大小
S1C:第二个幸存区大小
EC:伊甸园区的大下坡
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:当前老年代大小
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代GC次数
FGC:老年代GC次数
新生代垃圾回收统计
[root@localhost app]# jstat -gcnew 7329
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
29696.0 21504.0 0.0 21091.3 4 15 29696.0 594432.0 358286.6 19 0.155
S0C:第一个幸存区的大小
S1C:第二个幸存区的大小
S0U:第一个幸存区的使用大小
S1U:第二个幸存区的使用大小
TT:对象在新生代的存活次数
MTT:对象在新生代的最大存活次数
DSS:期望的幸存区大小
EC:伊甸园区的大小
EU:伊甸园区的使用大小
YGC:年轻的垃圾回收的次数
YGCT:年轻代垃圾回收的时间
新生代内存统计
[root@localhost app]# jstat -gcnewcapacity 7329
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
40960.0 649728.0 649728.0 216576.0 29696.0 216576.0 21504.0 648704.0 594432.0 19 2
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
S0CMX:第一个幸存区最大大小
S0C:第一个幸存区当前大小
S1CMX:第二个幸存区最大大小
S1C:第二个幸存区当前大小
ECMX:伊甸园区最大大小
EC:伊甸园区当前大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
老年代垃圾回收统计
[root@localhost app]# jstat -gcold 7329
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
55168.0 53907.7 7040.0 6761.2 90624.0 33564.0 19 2 0.092 0.247
MC:方法区大小
MU:方法区使用大小
CCSC:压缩空间大小
CCSU:压缩空间已使用大小
OC:老年代大小
OU:老年代已使用大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间
老年代内存统计
[root@localhost app]# jstat -gcoldcapacity 7329
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
81920.0 1299968.0 90624.0 90624.0 19 2 0.092 0.247
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:当前老年代大小
OC:老年代大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收时间
GCT:垃圾回收总时间
元数据空间统计
[root@localhost app]# jstat -gcmetacapacity 7329
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1097728.0 55168.0 0.0 1048576.0 7040.0 19 2 0.092 0.247
MCMN:最小元数据大小
MCMX:最大元数据大小
MC:当前元数据大小
CCSMN:最小压缩空间大小
CCSMX:最大压缩空间大小
CCSC:当前压缩类空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收时间
GCT:垃圾回收总时间
总结垃圾回收统计
[root@localhost app]# jstat -gcutil 7329
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 98.08 72.83 37.04 97.72 96.04 19 0.155 2 0.092 0.247
S0:第一个幸存区的使用比率
S1:第二个幸存区的使用比率
E:伊甸园区的使用比率
O:老年代的使用比率
M:元数据的使用比率
CCS:压缩空间的使用比率
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收时间
GCT:垃圾回收时间
HotSpot编译方法统计
[root@localhost app]# jstat -printcompilation 7329
Compiled Size Type Method
9953 13 1 javax/servlet/http/HttpServletResponseWrapper _getHttpServletResponse
Compiler:编译方法的数量
Size:编译方法的字节码数量
Type:编译类型
Method:编译方法标识
参考: