- 监视虚拟机各类运行状态信息,显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据。
- 格式:jstat [ option vmid [interval[s|ms] [count]] ]
- 解释:本地虚拟机进程,vmid就是本地系统的进程ID。若是是远程虚拟机进程,vmid格式为:[protocol:][//]vmid[@hostname[:port]/servername]
- 样例:jstat -gc 2764 250 20
- 可用选项
- -class 监视类装载、卸载数量、总空间以及类装载所耗费的时间
- -gc 监视Java堆情况,包括Eden区、两个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息。
- -gccapacity 监视内容与-gc基本相同,但输出主要关注Java堆各个区域使用到的最大、最小空间。
- -gcutil 监视内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比。
- -gccause 监视内容与-gcutil功能同样,可是会额外输出致使上一次GC产生的缘由。
- -gcnew 监视新生代GC情况。
- -gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间。
- -gcold 监视老年代GC情况。
- -gcoldcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间。
- -gcmetacapacity 监视元数据区空间使用状况。
- -compiler 输出JIT编译器编译过的方法、耗时等信息。
- -printcompilation 输出已经被JIT编译的方法。
- 其余选项,可经过
jstat -options
命令查看相应jdk版本的选项
jstat -gc 30140 1000 20
:垃圾回收统计(详细) S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
12288.0 13824.0 12276.3 0.0 193536.0 66873.3 57344.0 12780.8 33152.0 32327.6 4224.0 4079.4 8 0.087 1 0.045 0.132
- 如下容量单位为字节
- S0C:年轻代中第一个survivor的容量
- S1C:年轻代中第二个survivor的容量
- S0U:年轻代中第一个survivor目前已使用的空间
- S1U:年轻的中第二个survivor目前已使用的空间
- EC:年轻代中Eden的容量
- EU:年轻代中Eden目前已使用的容量
- OC:老年代的容量
- OU:老年代目前已使用的容量
- MC:方法区容量
- MU:方法区目前已使用的容量
- CCSC:压缩类空间容量
- CCSU:压缩类空间目前已使用的容量
- YGC:年轻代垃圾回收次数
- YGCT:年轻代垃圾回收消耗时间
- FGC:Full GC次数
- FGCT:Full GC消耗时间
- GCT:垃圾回收消耗总时间
jstat -gccapacity 30140 1000 20
:堆内存统计 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
43520.0 690688.0 246272.0 12288.0 13824.0 193536.0 87552.0 1381888.0 57344.0 57344.0 0.0 1079296.0 33152.0 0.0 1048576.0 4224.0 8 1
- NGCMN:新生代最小容量
- NGCMX:新生代最大容量
- NGC:新生代目前容量
- S0C:年轻代中第一个survivor的容量
- S1C:年轻代中第二个survivor的容量
- EC:年轻代中Eden的容量
- OGCMN:老年代最小容量
- OGCMX:老年代最大容量
- OGC:老年代目前容量
- OC:老年代目前容量
- MCMN:元数据空间最小容量
- MCMX:元数据空间最大容量
- MC:目前元数据空间大小
- CCSMN:压缩类空间最小容量
- CCSMX:压缩类空间最大容量
- CCSC:压缩类空间目前容量
- YGC:年轻代gc次数
- FGC:Full gc次数
jstat -gcnew 30140 1000 20
:新生代垃圾回收统计 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
12288.0 13824.0 12276.3 0.0 3 15 13824.0 193536.0 66873.3 8 0.087
- S0C:年轻代中第一个survivor的容量
- S1C:年轻代中第二个survivor的容量
- S0U:年轻代中第一个survivor目前已使用的容量
- S1U:年轻代中第二个survivor目前已使用的容量
- TT:对象在新生代存活的次数
- MTT:对象在新生代存活的最大次数
- DSS:指望的幸存区容量
- EC:年轻代中Eden的容量
- EU:年轻代中Eden目前已使用的容量
- YGC:年轻代gc次数
- YGCT:年轻代gc消耗时间
jstat -gcnewcapacity 30140 1000 20
:新生代内存统计 NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
43520.0 690688.0 246272.0 229888.0 12288.0 229888.0 13824.0 689664.0 193536.0 8 1
- NGCMN:新生代最小容量
- NGCMX:新生代最大容量
- NGC:新生代目前容量
- S0CMX:年轻代中第一个survivor最大容量
- S0C:年轻代中第一个survivor的容量
- S1CMX:年轻代中第二个survivor最大容量
- S1C:年轻代中第二个survivor的容量
- ECMX:年轻代中Eden的最大容量
- EC:年轻代中Eden的容量
- YGC:年轻代gc次数
- FGC:Full gc次数
jstat -gcold 30140 1000 20
:老年代垃圾回收统计 MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
33152.0 32327.6 4224.0 4079.4 57344.0 12780.8 8 1 0.045 0.132
- MC:方法区容量
- MU:方法区目前已使用的容量
- CCSC:压缩类空间容量
- CCSU:压缩类空间目前已使用的容量
- OC:老年代的容量
- OU:老年代目前已使用的容量
- YGC:年轻代gc次数
- FGC:Full gc次数
- FGCT:Full GC消耗时间
- GCT:垃圾回收消耗总时间
jstat -gcoldcapacity 30140 1000 20
:老年代内存统计 OGCMN OGCMX OGC OC YGC FGC FGCT GCT
87552.0 1381888.0 57344.0 57344.0 8 1 0.045 0.132
- OGCMN:老年代最小容量
- OGCMX:老年代最大容量
- OGC:老年代目前容量
- OC:老年代目前容量
- YGC:年轻代gc次数
- FGC:Full gc次数
- FGCT:Full GC消耗时间
- GCT:垃圾回收消耗总时间
jstat -gcmetacapacity 30140 1000 20
:元数据空间统计 MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1079296.0 33152.0 0.0 1048576.0 4224.0 8 1 0.045 0.132
- MCMN:元数据空间最小容量
- MCMX:元数据空间最大容量
- MC:目前元数据空间大小
- CCSMN:压缩类空间最小容量
- CCSMX:压缩类空间最大容量
- CCSC:压缩类空间目前容量
- YGC:年轻代gc次数
- FGC:Full gc次数
- FGCT:Full GC消耗时间
- GCT:垃圾回收消耗总时间
jstat -gcutil 30140 1000 20
:垃圾回收统计(汇总) S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
99.91 0.00 34.55 22.29 97.51 96.58 8 0.087 1 0.045 0.132
- S0:年轻代中第一个survivor区当前使用比例
- S1:年轻代中第二个survivor区当前使用比例
- E:年轻代中Eden使用比例
- O:老年代使用比例
- M:元数据区使用比例
- CCS:压缩类区使用比例
- YGC:年轻代gc次数
- YGCT:年轻代gc消耗时间
- FGC:Full gc次数
- FGCT:Full GC消耗时间
- GCT:垃圾回收消耗总时间