JVM工具之jstat

JVM工具之jstat查询GC统计信息分析

JVM工具之jstat查询GC统计信息分析jstat基本使用语法jstat -class 加载类统计jstat -compiler 编译统计jstat -gc 垃圾回收统计jstat -gccapacity 垃圾回收器内存空间统计jstat -gccause 垃圾回收器分析统计jstat -gcmetacapacity 元数据内存空间统计jstat -gcnew 新生代垃圾回收统计jstat -gcnewcapacity 新生代内存空间统计jstat -gcold 老年代垃圾回收统计jstat -gcoldcapacity 老年代内存空间统计jstat -gcutil 总垃圾回收统计jstat -printcompilation JVM编译方法统计

注意:在linux中,使用jdk1.8版本为例

jstat工具,检查JVM的整体运行情况,比较实用工具之一,当我们想看JVM内的Eden、survivor、年轻代、老年代以及年轻代垃圾回收次数、老年代垃圾回收次数、年轻代垃圾回收消耗时间、老年代垃圾回收消耗时间情况

jstat基本使用语法

基本使用语法:jstat -<options> PID <interval> <count>

<options>:表示jstat的选择项 
PID:表示进程号
<interval>:表示整数型间隔时间(ms 或者m) 默认是毫秒级别
<count>:表示在间隔时间中打印次数

除此之外,可以用jstat -help 查看,还可使用jstat -options 查看,jstat 有哪些选择项

[CBB@localhost ~]$ jstat -help
Usage: jstat -help|-options
       jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]

我们可以使用jps 来查询本地的进程号信息

jstat -options

[CBB@localhost ~]$ jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation
 
 

jstat -class 加载类统计

[root@localhost ~]# jstat -class 18750
Loaded  Bytes  Unloaded  Bytes     Time
  8859 16638.3        0     0.0      19.99
字段名称 表示含义
Loaded 加载class类的数量
Bytes 所占内存空间
Unloaded 未加载类的数量
Bytes 未加载类内存空间
Time 消耗时间

jstat -compiler 编译统计

[root@localhost ~]# jstat -compiler 18750
Compiled Failed Invalid   Time   FailedType FailedMethod
    4760      0       0    28.94          0
​
字段名称 表示含义
Compiler 编译成功数量
Failed 编译失败数量
Invalid 编译无效数量
Time 编译耗时
FailedType 编译失败的类型
FailedMethod 编译失败的方法

jstat -gc 垃圾回收统计

[root@localhost ~]# jstat -gc 18750
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT
26176.0 26176.0 17720.1  0.0   209792.0 115200.9  262144.0   24367.5   49880.0 47907.7 6188.0 5813.7      4    1.343   4      0.325    1.668
字段名称 表示含义
S0C 幸存区1容量(单位:字节)
S1C 幸存区2容量(单位:字节)
S0U 幸存区1使用容量(单位:字节)
S1U 幸存区2使用容量(单位:字节)
EC 伊甸园区容量(单位:字节)
EU 伊甸园区使用容量(单位:字节)
OC 老年区容量(单位:字节)
OU 老年区使用容量(单位:字节)
MC 方法区容量(单位:字节)
MU 方法区使用容量(单位:字节)
CCSC 压缩类空间容量(单位:字节)
CCSU 压缩类空间使用容量(单位:字节)
YGC 年轻代垃圾回收次数
YGCT 年轻代垃圾回收消耗时间
FGC 老年代垃圾回收次数
FGCT 老年代垃圾回收消耗时间(单位:秒)
GCT 垃圾回收器总耗时时间(单位:秒)

jstat -gccapacity 垃圾回收器内存空间统计

[root@localhost ~]# jstat -gccapacity 18750
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC
262144.0 262144.0 262144.0 26176.0 26176.0 209792.0   262144.0   262144.0   262144.0   262144.0      0.0 1093632.0  49880.0      0.0 1048576.0   6188.0      4     4
字段名称 表示含义
NGCMN 年轻代gc最小容量(单位:字节)
NGCMX 年轻代gc最大容量(单位:字节)
NGC 当前年轻代容量(单位:字节)
S0C 幸存区0容量(单位:字节)
S1C 幸存区1容量(单位:字节)
EC 伊甸园容量(单位:字节)
OGCMN 老年代gc最小容量(单位:字节)
OGCMX 老年代gc最大容量(单位:字节)
OGC 当前老年代gc容量(单位:字节)
OC 当前老年代容量(单位:字节)
MCMN 元数据最小容量(单位:字节)
MCMX 元数据最大容量(单位:字节)
MC 当前元数据使用容量(单位:字节)
CCSMN 压缩类最小容量(单位:字节)
CCSMX 压缩类最大容量(单位:字节)
CCSC 当前压缩类容量(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
FGC 从应用程序启动到现在,老年代垃圾回收次数

jstat -gccause 垃圾回收器分析统计

[root@localhost ~]# jstat -gccause 18750 1000
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC
 67.70   0.00  55.25   9.30  96.05  93.95      4    1.343     4    0.325    1.668 CMS Final Remark     No GC
字段名称 表示含义
S0 幸存区1使用百分比
S1 幸存区2使用百分比
E 伊甸园区使用百分比
O 老年代使用百分比
M 元数据使用百分比
CCS 压缩类使用百分比
YGC 从应用程序启动到现在,年轻代垃圾回收次数
YGCT 从应用程序启动到现在,年轻代垃圾回收消耗时间(单位:秒)
FGC 从应用程序启动到现在,老年代垃圾回收次数
FGCT 从应用程序启动到现在,老年代垃圾回收消耗时间(单位:秒)
GCT 从应用程序启动到现在,垃圾回收器总消耗时间(单位:秒)
LGCT
GCC

jstat -gcmetacapacity 元数据内存空间统计

[root@localhost ~]# jstat -gcmetacapacity 18750 1000
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
       0.0  1093632.0    49880.0        0.0  1048576.0     6188.0     4     4    0.325    1.668
​
字段名称 表示含义
MCMN 元数据最小容量(单位:字节)
MCMX 元数据最大容量(单位:字节)
MC 当前元数据容量大小(单位:字节)
CCSMN 压缩类最小空间容量(单位:字节)
CCSMX 压缩类最大空间容量(单位:字节)
CCSC 当前压缩类容量大小(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
FGC 从应用程序启动到现在,老年代垃圾回收次数
FGCT 从应用程序启动到现在,老年代垃圾回收消耗时间(单位:秒)
GCT 从应用程序启动到现在,垃圾回收总消耗时间(单位:秒)

jstat -gcnew 新生代垃圾回收统计

[root@localhost ~]# jstat -gcnew 18750
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
26176.0 26176.0 17720.1    0.0  6   6 13088.0 209792.0 115900.6      4    1.343
​
字段名称 表示含义
S0C 幸存区1容量(单位:字节)
S1C 幸存区2容量(单位:字节)
S0U 幸存区1使用容量(单位:字节)
S1U 幸存区2使用容量(单位:字节)
TT 对象在年轻代存活的次数
MTT 对象在年轻代存货的最大次数
DSS 指望的幸存区容量(单位:字节)
EC 伊甸园容量(单位:字节)
EU 伊甸园使用容量(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
YGCT 从应用程序启动到现在,年轻代垃圾回收消耗时间(单位:秒)

jstat -gcnewcapacity 新生代内存空间统计

[root@localhost ~]# jstat -gcnewcapacity 18750
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
  262144.0   262144.0   262144.0  26176.0  26176.0  26176.0  26176.0   209792.0   209792.0     4     4
字段名称 表示含义
NGCMN 年轻代最小容量(单位:字节)
NGCMX 年轻代最大容量(单位:字节)
NGC 当前年轻代容量大小(单位:字节)
S0CMX 幸存区1最大容量(单位:字节)
S1CMX 幸存区2最大容量(单位:字节)
S1C 当前幸存区2容量大小(单位:字节)
ECMX 伊甸园最大的容量(单位:字节)
EC 当前伊甸园容量(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
FGC 从应用程序启动到现在,老年代垃圾回收次数

jstat -gcold 老年代垃圾回收统计

[root@localhost ~]# jstat -gcold 18750
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT
 49880.0  47907.7   6188.0   5813.7    262144.0     24367.5      4     4    0.325    1.668
字段名称 表示含义
MC 方法区空间容量(单位:字节)
MU 方法区使用容量(单位:字节)
CCSC 压缩类空间容量(单位:字节)
CCSU 压缩类空间使用容量(单位:字节)
OC 老年代空间容量(单位:字节)
OU 老年代使用容量(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
FGC 从应用程序启动到现在,老年代垃圾回收次数
FGCT 从应用程序启动到现在,老年代垃圾回收消耗时间(单位:秒)
GCT 从应用程序启动到现在,垃圾回收器总消耗时间(单位:秒)

jstat -gcoldcapacity 老年代内存空间统计

[root@localhost ~]# jstat -gcoldcapacity 18750
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
   262144.0    262144.0    262144.0    262144.0     4     4    0.325    1.668
字段名称 表示含义
OGCMN 老年代垃圾回收最小容量(单位:字节)
OGCMX 老年代垃圾回收最大容量(单位:字节)
OGC 当前老年代空间容量(单位:字节)
OC 老年代容量(单位:字节)
YGC 从应用程序启动到现在,年轻代垃圾回收次数
FGC 从应用程序启动到现在,老年代垃圾回收次数
FCGT 从应用程序启动到现在,老年代垃圾回收消耗时间(单位:秒)
GCT 从应用程序启动到现在,垃圾回收器总消耗时间(单位:秒)

jstat -gcutil 总垃圾回收统计

[root@localhost ~]# jstat -gcutil 18750 1000
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT
 67.70   0.00  55.58   9.30  96.05  93.95      4    1.343     4    0.325    1.668
 67.70   0.00  55.58   9.30  96.05  93.95      4    1.343     4    0.325    1.668
 67.70   0.00  55.58   9.30  96.05  93.95      4    1.343     4    0.325    1.668
字段名称 表示含义
S0 幸存区1使用百分比
S1 幸存区2使用百分比
E 伊甸园使用百分比
O 老年区使用百分比
M 元数据使用百分比
CCS 压缩类使用百分比
YGC 年轻代垃圾回收次数
YGCT 从应用程序启动到现在,年轻代gc消耗时间(单位:秒)
FGC 从应用程序启动到现在,老年代垃圾回收次数
FGCT 从应用程序启动到现在,老年代垃圾回收消耗时间(单位:秒)
GCT 从应用程序启动到现在,垃圾回收器总消耗时间(单位:秒)

jstat -printcompilation JVM编译方法统计

[root@localhost ~]# jstat -printcompilation 18750
Compiled  Size  Type Method
    4821    160    1 java/util/BitSet nextSetBit
字段名称 表示含义
Compiled 最近方法编译的数量
Size 最近方法编译字节码的数量
Type 最近方法编译类型
Method 方法名标识

猜你喜欢

转载自blog.csdn.net/weixin_40294256/article/details/125724883