用于 java应用程序资源加载、内存、垃圾回收 进行监控
jstat - [-t] [-h] [ []]
option表示操作参数,vmid表示虚拟机id, interval表示刷新频率 单位为ms或s,count表示显示的最大行数
//示例, -class表示类加载数据统计, 3886表示虚拟机进程id, 2s表示2秒刷新1次, 3表示显示的最大行数 [root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -class 3886 2s 3 Loaded Bytes Unloaded Bytes Time 10865 21719.7 203 344.4 9.13 10865 21719.7 203 344.4 9.13 10865 21719.7 203 344.4 9.13
-help
输出命令使用信息
jstat -help
-options
列出options可选参数
jstat -options
-class
用于列出类加载统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -class 3886 Loaded Bytes Unloaded Bytes Time 10865 21719.7 203 344.4 9.13 ---------------------------------------------------------- Loaded 表示有多少个class被加载 Bytes 表示加载的class占用的字节数 Unloaded 表示有多少个class未被加载 Bytes 表示未被加载的class占用的字节数 Time 表示类加载所消耗的时间
-compiler
显示 JIT 即时编译器 统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -compiler 3886 Compiled Failed Invalid Time FailedType FailedMethod 10757 2 0 43.05 1 com/google/inject/internal/cglib/core/$MethodWrapper$MethodWrapperKey$$$KeyFactoryByCGLIB$$e23ecb5d hashCode ------------------------------------------------------------ Compiled 表示编译的任务数量 Failed 表示编译失败的任务数量 Invalid 表示失效的编译任务数量 Time 表示执行编译任务所花费的时间 FailedType 表示上次编译失败的编译类型 FailedMethod 表示上次编译失败的类名和方法
-gc
用于显示垃圾回收 堆行为的统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -gc 3886 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT 3584.0 3584.0 0.0 1632.0 316416.0 303307.3 103424.0 54599.8 68096.0 64335.7 8192.0 7240.8 271 1.687 6 1.049 2.736 ------------------------------------------------------ S0C 表示当前新生代中survivor0 空间有多少kb S1C 表示当前新生代中survivor1 空间有多少kb S0U 表示当前新生代中survivor0 空间使用了kb S1U 表示当前新生代中survivor1 空间使用了kb EC 表示当前新生代中eden 空间的容量有多少kb EU 表示当前新生代中eden 空间使用了多少kb OC 表示当前老年代空间有多少kb OU 表示当前老年代空间使用了多少kb MC 表示当前Metaspace 空间有多少kb MU 表示当前Metaspace 空间使用了多少kb CCSC 表示当前Compressed class space的空间大小,CCSC存在于Metaspace中 CCSU 表示当前Compressed class space的空间使用大小 YGC 表示当前新生代中垃圾回收发生的次数 YGCT 表示当前新生代垃圾回收所消耗的时间 FGC 表示当前fullGC发生的次数 FGCT 表示当前fullGC 所消耗的时间 GCT 表示当前所有垃圾回收所消耗的总时间
-gccapacity
用于显示分代空间的容量统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gccapacity 3886 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC 20480.0 323584.0 323584.0 4096.0 4096.0 315392.0 40960.0 647168.0 103424.0 103424.0 0.0 1110016.0 68352.0 0.0 1048576.0 8192.0 276 6 -------------------------------------------------------- NGCMN: 新生代最小的容量大小 kb NGCMX: 新生代最大的容量大小 kb NGC: 当前新生代的总容量大小 kb = S0 + S1 + eden S0C: 当前survivor0空间容量大小 kb S1C: 当前survivor1空间容量大小 kb EC:当前eden空间容量大小 kb OGCMN: 老年代最小的容量大小 kb OGCMX: 老年代最大的容量大小 kb OGC: 当前老年代的容量大小 kb OC: 当前老年代的容量大小 kb *******注意: OGC与OC的区别************** OGC包括了整个老年代的容量大小,由于老年代没有像新生代那样分为s1、s2、eden,所以老年代只有1个空间,而OC就代表这个空间的小,所以就目前来讲 OC=OGC *************************************** MCMN: metaspace最小容量 kb MCMX: metaspace最大容量 kb MC: 当前metaspace的容量 kb CCSMN: Compressed class space 空间的最小容量 kb CCSMX: Compressed class space 空间的最大容量 kb CCSC: 当前Compressed class space 空间的容量 kb YGC: 新生代发生垃圾回收事件的次数 FGC: 发生fullGC事件的次数
-gcutil
显示垃圾收集器的统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcutil 3886 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT 67.58 0.00 18.49 57.74 94.49 88.67 276 1.716 6 1.049 2.766 ---------------------------------------------------- S0: s0空间占用/s0空间容量 * 100 的百分比 S1: s1空间占用/s1空间容量 * 100 的百分比 E: eden空间占用/eden空间容量 * 100 的百分比 O: 老年代空间占用/老年代空间容量 * 100 的百分比 M: metaspace占用/metaspace容量 * 100 的百分比 CCS: Compressed class space 使用空间与容量的百分比 YGC: 新生代垃圾回收事件的次数 YGCT: 新生代垃圾回收所消耗的时间 FGC: fullGC事件的次数 FGCT: fullGC所消耗的时间 GCT: 垃圾回收所消耗的总时间
-gccause
用于显示垃圾收集器的统计和 上次垃圾回收与当前垃圾回收 事件发生的原因, 相比于-gcutil, 只是新增了2列
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gccause 3886 S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC 67.58 0.00 22.47 57.74 94.49 88.67 276 1.716 6 1.049 2.766 Allocation Failure No GC ----------------------------------------------------- LGCC: 上次发生垃圾回收的原因 GCC: 当前发生垃圾回收的原因
-gcnew
新生代行为统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcnew 3886 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT 4096.0 4096.0 2768.2 0.0 1 15 4096.0 315392.0 164272.9 276 1.716 --------------------------------------------------- S0C: 当前新生代中S0 区域的容量大小 kb S1C: 当前新生代中S1 区域的容量大小 kb S0U: 当前新生代中S0 区域所使用了的大小 kb S1U: 当前新生代中S1 区域所使用了的大小 kb TT: 对象在新生代中经历垃圾回收次数的阀值 MTT: 对象在新生代中经历垃圾回收次数最大阀值 DSS: 目前请求分配的survivor区大小 kb EC: 当前eden空间的大小 kb EU:当前eden空间所使用了的空间大小 kb YGC:新生代垃圾回收事件发生的次数 YGCT: 新生代垃圾回收所消耗的时间
-gcnewcapacity
显示新生代空间的统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcnewcapacity 3886 NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC 20480.0 323584.0 323584.0 107520.0 4096.0 107520.0 4096.0 322560.0 315392.0 276 6 ----------------------------------------------------------- NGCMN: 新生代最小的容量 kb NGCMX: 新生代最大的容量 kb NGC: 当前新生代的容量 kb S0CMX: s0区域最大容量 kb S0C: 当前s0区域的容量 kb S1CMX: s1区域最大容量 kb S1C: 当前s1区域的容量 kb ECMX: eden空间最大容量 kb EC: 当前eden空间的容量 kb YGC: 新生代发生垃圾回收事件的次数 FGC: fullGC 发生的次数
-gcold
显示老年代和metaspace 行为统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcold 3886 MC MU CCSC CCSU OC OU YGC FGC FGCT GCT 68352.0 64587.6 8192.0 7263.7 103424.0 59720.4 276 6 1.049 2.766 --------------------------------------------------- MC: metaspace的容量 kb MU: metaspace已使用的大小 kb CCSC: Compressed class space 的容量 kb CCSU: Compressed class space 已使用的容量 kb OC: 当前老年代的容量 kb OU: 当前老年代已使用的容量 kb YGC: 新生代发生垃圾回收事件的次数 FGC: fullGC事件发生的次数 FGCT: fullGC所消耗的时间 GCT: 垃圾回收所消耗的总时间
-gcoldcapacity
显示老年代容量统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcoldcapacity 3886 OGCMN OGCMX OGC OC YGC FGC FGCT GCT 40960.0 647168.0 103424.0 103424.0 276 6 1.049 2.766 ----------------------------------------------------------- OGCMN: 老年代最小容量 kb OGCMX: 老年代最大容量 OGC: 当前老年代的容量 =由于老年代目前只划分了一个区域所以它等于 OC OC: 当前老年代的容量 YGC: 新生代垃圾回收事件发生的次数 FGC: fullGC发生的次数 FGCT: fullGC所消耗的时间 GCT: 垃圾回收所消耗的总时间
-gcmetacapacity
metaspace 容量统计信息
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcmetacapacity 3886 MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT 0.0 1110016.0 68352.0 0.0 1048576.0 8192.0 276 6 1.049 2.766 ------------------------------------------------------------ MCMN: metaspace最小容量 MC:metaspace最大容量 MC: 当前metaspace的容量 CCSMN: Compressed class space 最小容量 CCSMX: Compressed class space 大小容量 YGC: 新生代垃圾回收事件发生的次数 FGC: fullGC发生的次数 FGCT: fullGC所消耗的时间 GCT: 垃圾回收所消耗的总时间
-printcompilation
JIT实时编译器编译信息统计
[root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -printcompilation 30309 Compiled Size Type Method 18431 66 1 sun/reflect/GeneratedMethodAccessor203 invoke --------------------------------------------------------------- Compiled: 执行了多少次方法编译任务 Size: 最后一次编译的方法字节码的字节数 Type:最后一次编译的方法的编译类型 Method: 最后一次编译的方法的类+方法名 包之间用/隔开 方法名用空格隔开,如上示例 invoke代表 JIT编译的方法,前面是全限定名