jvm性能监控(2)–JVM的监控工具jstat
作者:互联网
Jstat是JDK自带的一个轻量级工具,主要用JVM内建的指令对java应用程序的资源和性能进行实时的监控。
openjdk没有jstat,jps等命令解决办法
执行以下命令即可:yum install java-1.7.0-openjdk-devel -y基本语法
jstat <option> [-t] [-h] <pid> <interval> <count>
参数解释:
- option 可以从下面参数中选择
- -class 显示ClassLoad的相关信息;
- -compiler 显示JIT编译的相关信息;
- -gc 显示和gc相关的堆信息;
- -gccapacity 显示各个代的容量以及使用情况;
- -gccause 显示垃圾回收的相关信息(通-gcutil),同时显示最后一次或当前正在发生的垃圾回收的诱因;
- -gcnew 显示新生代信息;
- -gcnewcapacity 显示新生代大小和使用情况;
- -gcold 显示老年代和永久代的信息;
- -gcoldcapacity 显示老年代的大小;
- -gcpermcapacity 显示永久代的大小;
- -gcutil 显示垃圾收集信息;
- -printcompilation输出JIT编译的方法信息;
- -t 可以在打印的列加上Timestamp列,用于显示系统运行的时间
- -h 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表头
- interval 执行每次的间隔时间,单位为毫秒
- count 用于指定输出多少次记录,缺省则会一直打印
首先我们 使用linux命令 ps -ef|grep resin 查看我要监视进程的pid 23814
1、-class (jstat -class pid 1000 5 查看pid为23814的ClassLoad相关信息,每秒钟打印一次,总共打印5次)
- Loaded 加载类的数量
- Bytes 加载类合计大小
- Unloaded 卸载类的数量
- Bytes 卸载类合计大小
- Time 表示加载和卸载类总共的耗时
加载了9276个类,总大小为18045.9byte 卸载类0个,总大小为0byte,卸载和加载总耗时9.24ms
2、-compiler (Jstat -cpmpiler pid)
- Compiled 表示编译任务执行的次数
- Failed 表示编译失败的次数
- Invalid 表示编译不可用的次数
- Time 表示编译的总耗时
- FailedType 表示最后一次编译的类型
- FailedMethod 表示最后一次编译失败的类名和方法
3、-gc (jstat -gc pid 1000 5 )
* S0C:第一个幸存区的大小 * S1C:第二个幸存区的大小 * S0U:第一个幸存区的使用大小 * S1U:第二个幸存区的使用大小 * EC:伊甸园区的大小 * EU:伊甸园区的使用大小 * OC:老年代大小 * OU:老年代使用大小 * MC:方法区大小 * MU:方法区使用大小 * CCSC:压缩类空间大小 * CCSU:压缩类空间使用大小 * YGC:年轻代垃圾回收次数 * YGCT:年轻代垃圾回收消耗时间 * FGC:老年代垃圾回收次数 * FGCT:老年代垃圾回收消耗时间 * GCT:垃圾回收消耗总时间
4、堆内存统计 -gccapacity(jstat -gccapacity pid:显示各个代的容量的信息)
- NGCMN:新生代最小值(KB)
- NGVMX:新生代最大值(KB)
- NGC:当前新生代大小(KB)
- S0C:同上
- S1C:同上
- EC:同上
- OGCMN:老年代最小值(KB)
- OGCMX:老年代最大值(KB)
- OGC:当前老年代大小(KB)
- OC:同上
- PGCMN:永久代最小值(KB)
- PGCMX:永久代最大值(KB)
- PGC:当前永久代大小(KB)
- PC:同上
- YGC:同上
- FGC:同上
5、-gccause(jstat -gccause pid:显示最近一次GC的原因)
- LGCC:上一次GC的原因,是G1垃圾回收器回收
- GCC :当前GC的原因
6)新生代垃圾回收统计 jstat -gcnew pid * S0C:第一个幸存区大小 * S1C:第二个幸存区的大小 * S0U:第一个幸存区的使用大小 * S1U:第二个幸存区的使用大小 * TT:对象在新生代存活的次数 * MTT:对象在新生代存活的最大次数 * DSS:期望的幸存区大小 * EC:伊甸园区的大小 * EU:伊甸园区的使用大小 * YGC:年轻代垃圾回收次数 * YGCT:年轻代垃圾回收消耗时间 6)新生代内存统计 * NGCMN:新生代最小容量 * NGCMX:新生代最大容量 * NGC:当前新生代容量 * S0CMX:最大幸存1区大小 * S0C:当前幸存1区大小 * S1CMX:最大幸存2区大小 * S1C:当前幸存2区大小 * ECMX:最大伊甸园区大小 * EC:当前伊甸园区大小 * YGC:年轻代垃圾回收次数 * FGC:老年代回收次数
7)老年代垃圾回收统计 * MC:方法区大小 * MU:方法区使用大小 * CCSC:压缩类空间大小 * CCSU:压缩类空间使用大小 * OC:老年代大小 * OU:老年代使用大小 * YGC:年轻代垃圾回收次数 * FGC:老年代垃圾回收次数 * FGCT:老年代垃圾回收消耗时间 * GCT:垃圾回收消耗总时间 8)老年代内存统计 * OGCMN:老年代最小容量 * OGCMX:老年代最大容量 * OGC:当前老年代大小 * OC:老年代大小 * YGC:年轻代垃圾回收次数 * FGC:老年代垃圾回收次数 * FGCT:老年代垃圾回收消耗时间 * GCT:垃圾回收消耗总时间 9)元数据空间统计 * MCMN: 最小元数据容量 * MCMX:最大元数据容量 * MC:当前元数据空间大小 * CCSMN:最小压缩类空间大小 * CCSMX:最大压缩类空间大小 * CCSC:当前压缩类空间大小 * YGC:年轻代垃圾回收次数 * FGC:老年代垃圾回收次数 * FGCT:老年代垃圾回收消耗时间 * GCT:垃圾回收消耗总时间 10)总结垃圾回收统计 * S0:幸存1区当前使用比例 * S1:幸存2区当前使用比例 * E:伊甸园区使用比例 * O:老年代使用比例 * M:元数据区使用比例 * CCS:压缩使用比例 * YGC:年轻代垃圾回收次数 * FGC:老年代垃圾回收次数 * FGCT:老年代垃圾回收消耗时间 * GCT:垃圾回收消耗总时间 11)JVM编译方法统计 * Compiled:最近编译方法的数量 * Size:最近编译方法的字节码数量 * Type:最近编译方法的编译类型。 * Method:方法名标识。
标签:监控,回收,次数,幸存,垃圾,JVM,大小,jstat,年代 来源: https://www.cnblogs.com/yiyepiaolingruqiu/p/11671496.html