概要
jstat -outputOptions [-t] [-hlines] vmid [interval] [count]]
- outputOptions:命令行选项
- t:输出时间戳(以jvm启动开始从0统计)
- hlines:每输出lines数量的数据后,输出一次header信息
- vmid:进程ID
- interval:输出的时间间隔,秒或者毫秒
- count:输出次数
jstat命令可以内存的统计信息,以及类加载的数量,GC的次数和耗时等。本文使用的是JDK10,不同版本间可能存在差异。
outputOptions
-class: 查看类加载的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -class 11457 1s 5
Loaded Bytes Unloaded Bytes Time
6886 12668.3 0 0.0 8.16
6886 12668.3 0 0.0 8.16
6886 12668.3 0 0.0 8.16
6886 12668.3 0 0.0 8.16
6886 12668.3 0 0.0 8.16
- Loaded: 加载的类的数量
- Bytes:加载的类的字节数
- Unloaded:未加载的类的数量
- Bytes:未加载的类的字节数
- Time:加载类的耗时
-compiler:查看编译的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -compiler 11457 1s 5
Compiled Failed Invalid Time FailedType FailedMethod
3551 0 0 11.43 0
3551 0 0 11.43 0
3551 0 0 11.43 0
3551 0 0 11.43 0
3551 0 0 11.43 0
- Compiled:编译数量
- Failed:失败的数量
- Invalid:无效的数量
- Time:编译耗时
- FailedType:失败的类型
- FailedMethod:失败的方法
-gc: 查看垃圾回收的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gc 11457 1s 5
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1408.0 1408.0 0.0 878.9 11776.0 10748.7 29136.0 19081.8 40192.0 39013.7 4864.0 4431.8 73 0.252 3 0.228 0.480
1408.0 1408.0 0.0 878.9 11776.0 10748.7 29136.0 19081.8 40192.0 39013.7 4864.0 4431.8 73 0.252 3 0.228 0.480
1408.0 1408.0 0.0 878.9 11776.0 10748.7 29136.0 19081.8 40192.0 39013.7 4864.0 4431.8 73 0.252 3 0.228 0.480
1408.0 1408.0 0.0 878.9 11776.0 10748.7 29136.0 19081.8 40192.0 39013.7 4864.0 4431.8 73 0.252 3 0.228 0.480
1408.0 1408.0 0.0 878.9 11776.0 10748.7 29136.0 19081.8 40192.0 39013.7 4864.0 4431.8 73 0.252 3 0.228 0.480
- S0C:Survivor0区的容量
- S1C:Survivor1区的容量
- S0U:Survivor0区的使用容量
- S1U:Survivor1区的使用容量
- EC:Eden区的容量
- EU:Eden区的使用容量
- OC:老年代的容量
- OU:老年代的使用容量
- MC:MetaSpace的容量
- MU:MetaSpace的使用容量
- CCSC:压缩类空间的容量
- CCSU:压缩类空间的使用容量
- YGC:Yong GC次数
- YGCT:Yong GC耗时
- FGC:Full GC的次数
- FGCT:Full GC耗时
- GCT:垃圾回收总耗时
-gccapacity:堆内存的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gccapacity 11457 1s 5
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
192.0 84608.0 14592.0 1408.0 1408.0 11776.0 64.0 169344.0 29136.0 29136.0 0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3
192.0 84608.0 14592.0 1408.0 1408.0 11776.0 64.0 169344.0 29136.0 29136.0 0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3
192.0 84608.0 14592.0 1408.0 1408.0 11776.0 64.0 169344.0 29136.0 29136.0 0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3
192.0 84608.0 14592.0 1408.0 1408.0 11776.0 64.0 169344.0 29136.0 29136.0 0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3
192.0 84608.0 14592.0 1408.0 1408.0 11776.0 64.0 169344.0 29136.0 29136.0 0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3
- NGCMN:新生代的最小容量
- NGCMX:新生代的最大容量
- NGC:新生代的当前容量
- S0C:Survivor0区的容量
- S1C:Survivor1区的容量
- EC:Eden区的容量
- OGCMN:老年代的最小容量
- OGCMX:老年代的最大容量
- OGC:老年代的当前容量,OGC = sum(all OC),对于hotspot虚拟机来说,老年代只有1个,所以OGC = OC
- OC:老年代的当前容量
- MCMN:Metaspace的最小容量
- MCMX:Metaspace的最大容量
- MC:Metaspace的当前容量
- CCSMN:压缩类空间的最小容量
- CCSMX:压缩类空间的最大容量
- CCSC:压缩类空间的当前容量
- YGC:Yong GC的次数
- FGC:Full GC的次数
-gccause: 查看垃圾回收原因的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gccause 11457 1s 5
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
0.00 62.42 93.28 65.49 97.07 91.11 73 0.252 3 0.228 0.480 Allocation Failure No GC
0.00 62.42 93.28 65.49 97.07 91.11 73 0.252 3 0.228 0.480 Allocation Failure No GC
0.00 62.42 93.28 65.49 97.07 91.11 73 0.252 3 0.228 0.480 Allocation Failure No GC
0.00 62.42 93.28 65.49 97.07 91.11 73 0.252 3 0.228 0.480 Allocation Failure No GC
0.00 62.42 93.28 65.49 97.07 91.11 73 0.252 3 0.228 0.480 Allocation Failure No GC
- S0:Survivor0区的使用百分比
- S1:Survivor1区的使用百分比
- E:Eden区的使用百分比
- O:老年代的使用百分比
- M:Metaspace的使用百分比
- CCS:压缩类空间的使用百分比
- YGC:Yong GC的次数
- YGCT:Yong GC的耗时
- FGC:Full GC的次数
- FGCT:Full GC的耗时
- GCT:垃圾回收的总耗时
- LGCC:上一次垃圾回收的原因
- GCC:当前垃圾回收的原因
-gcnew:查看新生代的垃圾回收统计
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcnew 11457 1s 5
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
1408.0 1408.0 0.0 878.9 2 15 704.0 11776.0 11281.5 73 0.252
1408.0 1408.0 0.0 878.9 2 15 704.0 11776.0 11281.5 73 0.252
1408.0 1408.0 0.0 878.9 2 15 704.0 11776.0 11281.5 73 0.252
1408.0 1408.0 0.0 878.9 2 15 704.0 11776.0 11281.5 73 0.252
1408.0 1408.0 0.0 878.9 2 15 704.0 11776.0 11281.5 73 0.252
- S0C:Survivor0区的容量
- S1C:Survivor1区的容量
- S0U:Survivor0区的使用容量
- S1U:Survivor1区的使用容量
- TT:新生代对象的存活次数
- MTT:新生代对象的最大存活次数
- DSS:需要的Survivor容量
- EC:Eden区的容量
- EU:Eden区的使用容量
- YGC:Yong GC的次数
- YGCT:Yong GC的耗时
-gcnewcapacity:查看新生代内存的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcnewcapacity 11457 1s 5
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
192.0 84608.0 14592.0 8448.0 1408.0 8448.0 1408.0 67712.0 11776.0 73 3
192.0 84608.0 14592.0 8448.0 1408.0 8448.0 1408.0 67712.0 11776.0 73 3
192.0 84608.0 14592.0 8448.0 1408.0 8448.0 1408.0 67712.0 11776.0 73 3
192.0 84608.0 14592.0 8448.0 1408.0 8448.0 1408.0 67712.0 11776.0 73 3
192.0 84608.0 14592.0 8448.0 1408.0 8448.0 1408.0 67712.0 11776.0 73 3
- NGCMN:新生代的最小容量
- NGCMX:新生代的最大容量
- NGC:当前新生代的容量
- S0CMX:Survivor0区的最大容量
- S0C:Survivor0区的当前容量
- S1CMX:Survivor1区的最大容量
- S1C:Survivor1区的当前容量
- ECMX:Eden区的最大容量
- EC:Eden区的当前容量
- YGC:Yong GC的次数
- FGC:Full GC的次数
-gcold: 查看老年代的垃圾回收的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcold 11457 1s 5
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
40192.0 39013.7 4864.0 4431.8 29136.0 19081.8 73 3 0.228 0.480
40192.0 39013.7 4864.0 4431.8 29136.0 19081.8 73 3 0.228 0.480
40192.0 39013.7 4864.0 4431.8 29136.0 19081.8 73 3 0.228 0.480
40192.0 39013.7 4864.0 4431.8 29136.0 19081.8 73 3 0.228 0.480
40192.0 39013.7 4864.0 4431.8 29136.0 19081.8 73 3 0.228 0.480
- MC:MetaSpace的容量
- MU:MetaSpace的使用容量
- CCSC:压缩类空间的容量
- CCSU:压缩类空间的使用容量
- OC:老年代的容量
- OU:老年代的使用容量
- YGC:Yong GC次数
- FGC:Full GC的次数
- FGCT:Full GC耗时
- GCT:垃圾回收总耗时
-gcoldcapacity:查看老年代内存的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcoldcapacity 11457 1s 5
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
64.0 169344.0 29136.0 29136.0 73 3 0.228 0.480
64.0 169344.0 29136.0 29136.0 73 3 0.228 0.480
64.0 169344.0 29136.0 29136.0 73 3 0.228 0.480
64.0 169344.0 29136.0 29136.0 73 3 0.228 0.480
64.0 169344.0 29136.0 29136.0 73 3 0.228 0.480
- OGCMN:老年代的最小容量
- OGCMX:老年代的最大容量
- OGC:老年代的当前容量,OGC = sum(all OC),对于hotspot虚拟机来说,老年代只有1个,所以OGC = OC
- OC:老年代的当前容量
- YGC:Yong GC的次数
- FGC:Full GC的次数
- FGCT:Full GC耗时
- GCT:垃圾回收总耗时
-gcmetacapacity:查看metaspace内存的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcmetacapacity 11457 1s 5
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3 0.228 0.480
0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3 0.228 0.480
0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3 0.228 0.480
0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3 0.228 0.480
0.0 1085440.0 40192.0 0.0 1048576.0 4864.0 73 3 0.228 0.480
- MCMN:Metaspace的最小容量
- MCMX:Metaspace的最大容量
- MC:Metaspace的当前容量
- CCSMN:压缩类空间的最小容量
- CCSMX:压缩类空间的最大容量
- CCSC:压缩类空间的当前容量
- YGC:Yong GC的次数
- FGC:Full GC的次数
- FGCT:Full GC耗时
- GCT:垃圾回收总耗时
-gcutil:查看垃圾回收的百分比统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -gcutil 11457 1s 5
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 62.42 95.80 65.49 97.07 91.11 73 0.252 3 0.228 0.480
0.00 62.42 95.80 65.49 97.07 91.11 73 0.252 3 0.228 0.480
0.00 62.42 95.80 65.49 97.07 91.11 73 0.252 3 0.228 0.480
0.00 62.42 95.80 65.49 97.07 91.11 73 0.252 3 0.228 0.480
0.00 62.42 95.80 65.49 97.07 91.11 73 0.252 3 0.228 0.480
- S0:Survivor0区的使用百分比
- S1:Survivor1区的使用百分比
- E:Eden区的使用百分比
- O:老年代的使用百分比
- M:Metaspace的使用百分比
- CCS:压缩类空间的使用百分比
- YGC:Yong GC的次数
- YGCT:Yong GC的耗时
- FGC:Full GC的次数
- FGCT:Full GC的耗时
- GCT:垃圾回收的总耗时
-printcompilation:查看jvm编译方法的统计信息
[root@izbp1chtb8a3vd2mzvuawlz /]# jstat -printcompilation 11457 1s 5
Compiled Size Type Method
3569 79 1 java/util/concurrent/locks/AbstractQueuedSynchronizer doReleaseShared
3569 79 1 java/util/concurrent/locks/AbstractQueuedSynchronizer doReleaseShared
3569 79 1 java/util/concurrent/locks/AbstractQueuedSynchronizer doReleaseShared
3569 79 1 java/util/concurrent/locks/AbstractQueuedSynchronizer doReleaseShared
3569 79 1 java/util/concurrent/locks/AbstractQueuedSynchronizer doReleaseShared
- Compiled:最近编译方法的数量
- Size:最近编译方法的字节数
- Type:最近的编译类型
- Method:最近编译的方法