参考文档:https://www.cnblogs.com/sxdcgaq8080/p/11089841.html
一.jstat命令简介
jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。
【以下的统计空间单位,未标明的 都是KB】
注意!!!:使用的jdk版本是jdk8.
命令的格式如下:
jstat [-命令选项] [vmid] [间隔时间/毫秒] [查询次数]
二.命令使用详情列表
1.总结垃圾回收统计
命令:jstat -gcutil 【pid】
示例:jstat -gcutil 17209
结果:
解析:
S0:幸存1区当前使用比例 S1:幸存2区当前使用比例 E:伊甸园区使用比例 O:老年代使用比例 M:元数据区使用比例 CCS:压缩使用比例 YGC:年轻代垃圾回收次数 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间
命令:jstat -gcutil 12809 1000 :查看进程12809的gc 情况,每1000ms 打印一次
2.Java 垃圾回收统计(各个区的容量、使用容量、gc 时间等信息)
命令格式: jstat -gc [pid]
示例:jstat -gc 17209
结果:
命令格式: jstat -gc [pid] t1 c1
示例:jstat -gc 17209 500 10
命令解析:每 500 毫秒打印一次进程号为 17209 的Java 进程的堆状况(各个区的容量、使用容量、gc 时间等信息),打印 10 次。
解析:
- S0C:第一个幸存区的大小
- S1C:第二个幸存区的大小
- S0U:第一个幸存区的使用大小
- S1U:第二个幸存区的使用大小
- EC:伊甸园区的大小
- EU:伊甸园区的使用大小
- OC:老年代大小
- OU:老年代使用大小
- MC:方法区大小
- MU:方法区使用大小
- CCSC:压缩类空间大小
- CCSU:压缩类空间使用大小
- YGC:年轻代垃圾回收次数
- YGCT:年轻代垃圾回收消耗时间
- FGC:老年代垃圾回收次数
- FGCT:老年代垃圾回收消耗时间
- GCT:垃圾回收消耗总时间
3.堆内存统计
命令:jstat -gccapacity 【pid】
示例:jstat -gccapacity 17209
结果:
解析:
NGCMN:新生代最小容量 NGCMX:新生代最大容量 NGC:当前新生代容量 S0C:第一个幸存区大小 S1C:第二个幸存区的大小 EC:伊甸园区的大小 OGCMN:老年代最小容量 OGCMX:老年代最大容量 OGC:当前老年代大小 OC:当前老年代大小 MCMN:最小元数据容量 MCMX:最大元数据容量 MC:当前元数据空间大小 CCSMN:最小压缩类空间大小 CCSMX:最大压缩类空间大小 CCSC:当前压缩类空间大小 YGC:年轻代gc次数 FGC:老年代GC次数
jstat 还可以以其他角度监视各区内存大小、监视类装载信息等,具体可以 google jstat 的详细用法。
其他命令参考
1. 类加载统计
jstat -class 【pid】
示例:jstat -class 17209
结果:
解析:
Bytes:所占用空间大小 Unloaded:未加载数量 Bytes:未加载占用空间 Time:时间
2. 编译统计
jstat -compiler【pid】
示例:jstat -compiler 17209
结果:
解析:
Compiled:编译数量。 Failed:失败数量 Invalid:不可用数量 Time:时间 FailedType:失败类型 FailedMethod:失败的方法
3.新生代垃圾回收统计
jstat -gcnew 【pid】
示例:jstat -gcnew 17209
结果:
解析:
S0C:第一个幸存区大小 S1C:第二个幸存区的大小 S0U:第一个幸存区的使用大小 S1U:第二个幸存区的使用大小 TT:对象在新生代存活的次数 MTT:对象在新生代存活的最大次数 DSS:期望的幸存区大小 EC:伊甸园区的大小 EU:伊甸园区的使用大小 YGC:年轻代垃圾回收次数 YGCT:年轻代垃圾回收消耗时间
4.新生代内存统计
jstat -gcnew 【pid】
示例:jstat -gcnew 17209
结果:
解析:
NGCMN:新生代最小容量 NGCMX:新生代最大容量 NGC:当前新生代容量 S0CMX:最大幸存1区大小 S0C:当前幸存1区大小 S1CMX:最大幸存2区大小 S1C:当前幸存2区大小 ECMX:最大伊甸园区大小 EC:当前伊甸园区大小 YGC:年轻代垃圾回收次数 FGC:老年代回收次数
5.老年代垃圾回收统计
jstat -gcold 【pid】
示例:jstat -gcold 17209
结果:
解析:
MC:方法区大小 MU:方法区使用大小 CCSC:压缩类空间大小 CCSU:压缩类空间使用大小 OC:老年代大小 OU:老年代使用大小 YGC:年轻代垃圾回收次数 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间
6.老年代内存统计
jstat -gcoldcapacity 【pid】
示例:jstat -gcoldcapacity 17209
结果:
解析:
OGCMN:老年代最小容量 OGCMX:老年代最大容量 OGC:当前老年代大小 OC:老年代大小 YGC:年轻代垃圾回收次数 FGC:老年代垃圾回收次数 FGCT:老年代垃圾回收消耗时间 GCT:垃圾回收消耗总时间