jstat
作用
jstat全称JVM Statistics Monitoring Tool,用于监控JVM的各种运行状态。
TIPS
此命令是实验性的,不受支持。
参考文档:
- Java 8:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html
- Java 11:https://docs.oracle.com/en/java/javase/11/tools/jstat.html
使用说明
命令如下: ```shell ➜ jstat -h Usage: jstat —help|-optionsjstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
Definitions:
option取值如下:- class:显示类加载器的统计信息- compiler:显示有关Java HotSpot VM即时编译器行为的统计信息- gc:显示有关垃圾收集堆行为的统计信息- gccapacity:统计各个分代(新生代,老年代,持久代)的容量情况- gccause:显示引起垃圾收集事件的原因- gcnew:显示有关新生代行为的统计信息- gcnewcapacity:显示新生代容量- gcold:显示老年代、元空间区的统计信息- gcoldcapacity:显示老年代的容量- gcmetacapacity:显示元空间的容量- gcutil:显示有关垃圾收集统计信息的摘要- printcompilation:显示Java HotSpot VM编译方法统计信息<a name="N8JIM"></a>## 输出信息- class:- Loaded:当前加载的类的数量- Bytes:当前加载的空间(单位KB)- Unloaded:卸载的类的数量Number of classes unloaded.- Bytes:当前卸载的空间(单位KB)- Time:执行类加载/卸载操作所花费的时间- compiler:- Compiled:执行了多少次编译任务- Failed:多少次编译任务执行失败- Invalid:无效的编译任务数- Time:执行编译任务所花费的时间- FailedType:上次失败的编译的编译类型- FailedMethod:上次失败的编译的类名和方法- gc:- S0C:第一个存活区(S0)的容量(KB)- S1C:第二个存活区(S1)的容量(KB)- S0U:第一个存活区(S0)使用的大小(KB)- S1U:第二个存活区(S1)使用的大小(KB)- EC:伊甸园空间容量(KB)- EU:伊甸园使用的大小(KB)- OC:老年代容量(KB)- OU:老年代使用的大小(KB)- MC:元空间的大小(KB)- MU:元空间使用的大小(KB)- CCSC:压缩的类空间大小(KB)- CCSU:压缩类空间使用的大小(KB)- YGC:年轻代垃圾收集事件的数量- YGCT:年轻代垃圾回收时间- FGC:Full GC事件的数量- FGCT:Full GC回收时间- GCT:垃圾收集总时间- gccapacity:- NGCMN:最小新生代容量(KB)- NGCMX:最大新生代容量(KB)- NGC:当前的新生代容量(KB)- S0C:第一个存活区(S0)的当前容量(KB)- S1C:第二个存活区(S1)的当前容量(KB)- EC:当前伊甸园容量(KB)- OGCMN:最小老年代容量(KB)- OGCMX:最大老年代容量(KB)- OGC:当前老年代容量(KB)- OC:当前old space容量(KB)- MCMN:最小元空间容量(KB)- MCMX:最大元空间容量(KB)- MC:当前元空间的容量(KB)- CCSMN:压缩的类空间最小容量(KB)- CCSMX:压缩的类空间最大容量(KB)- CCSC:当前压缩的类空间大小(KB)- YGC:年轻代GC事件的数量- FGC:Full GC事件的数量- gccause:其他展示列和-gcutil一致- LGCC:导致GC的原因- GCC:导致当前GC的原因- gcnew:- S0C:第一个存活区(S0)的容量(KB)- S1C:第二个存活区(S1)的容量(KB)- S0U:第一个存活区(S0)的利用率(KB)- S1U:第二个存活区(S1)的利用率(KB)- TT:老年代阈值- MTT:最大老年代阈值- DSS:期望的存活区大小(KB)- EC:当前伊甸园容量(KB)- EU:伊甸园利用率(KB)- YGC:年轻代GC事件的数量- YGCT:年轻代垃圾回收时间- gcnewcapacity:- NGCMN:最小年轻代容量(KB)NGCMX:最大年轻代容量(KB)NGC:当前年轻代容量(KB)S0CMX:最大S0容量(KB)S0C:当前S0容量(KB)S1CMX:最大S1容量(KB)S1C:当前S1容量(KB)ECMX:最大伊甸园容量(KB)EC:当前伊甸园容量(KB)YGC:年轻代GC事件的数量FGC:Full GC事件的数量- gcold:- MC:当前元空间使用大小(KB)- MU:元空间利用率(KB)- CCSC:压缩的类的大小(KB)- CCSU:使用的压缩类空间(KB)- OC:当前的老年代空间容量(KB)- OU:来年代空间利用率(KB)- YGC:年轻代GC事件的数量- FGC:Full GC事件的数量- FGCT:Full GC垃圾收集时间- GCT:总垃圾收集时间- gcoldcapacity:- OGCMN:最小老年代容量(KB)- OGCMX:最大老年代容量(KB)- OGC:当前老年代容量(KB)- OC:当前old space容量(KB)- YGC:年轻代GC事件的数量- FGC:Full GC事件的数量- FGCT:Full GC垃圾收集时间- GCT:总垃圾收集时间- gcmetacapacity:- MCMN:最小元空间容量(KB)- MCMX:最大元空间容量(KB)- MC:元空间大小(KB)- CCSMN:压缩的类空间最小容量(KB)- CCSMX:压缩的类空间最大容量(KB)- YGC:年轻代GC事件的数量- FGC:Full GC事件的数量- FGCT:Full GC垃圾收集时间- GCT:总垃圾收集时间- gcutil:- S0:第一个存活区(S0)利用率- S1:第二个存活区(S1)利用率- E:Eden空间利用率- O:老年代空间利用率- M:元空间利用率- CCS:压缩的类空间利用率- YGC:年轻代GC事件的数量- YGCT:年轻代垃圾回收时间- FGC:Full GC事件的数量- FGCT:Full GC垃圾收集时间- GCT:总垃圾收集时间- printcompilation:- Compiled:由最近编译的方法去执行的编译任务数- Size:最近编译的方法的字节码的字节数- Type:最近编译的方法的编译类型。- Method:标识最近编译的方法的类名和方法名。类名使用 / 代替点 . 作为名称空间分隔符;方法名称是指定类中的方法。这两个字段的格式与HotSpot -XX:+PrintCompilation 选项一致。<a name="jU1Wm"></a>## 使用示例示例1:查看21891这个进程的gc相关信息,每隔250ms采样1次,采样7次```shelljstat -gcutil 21891 250 7
示例2:显示有关新生代行为的统计信息,重复列标题:
jstat -gcnew -h3 21891 250
示例3:查看remote.domain机器上的40496这个进程有关垃圾收集统计信息的摘要,每隔1秒采样1次:
jstat -gcutil 40496@remote.domain 1000
