关于jvm:jstat查看JVM的GC情况

39次阅读

共计 4886 个字符,预计需要花费 13 分钟才能阅读完成。

jstat能够查看堆各局部的使用量, 以及类加载的数量

jstat 所有的参数

> jstat -options
jstat -class pid         # 显示 ClassLoad 相干信息
jstat -compiler pid          # 显示 JIT 编译的相干信息
jstat -gc pid                # 显示和 gc 相干的堆信息
jstat -gccapacity pid        # 显示各个代的容量以及应用状况
jstat -gccause pid           # 显示垃圾回收相干信息, 同时显示最初一次或正在产生 GC 的起因
jstat -gcmetacapacity pid    # 显示 `metaspace` 的大小
jstat -gcnew pid             # 显示新生代信息
jstat -gcnewcapacity pid     # 显示新生代大小和应用状况
jstat -gcold pid             # 显示老年代和永恒代的信息
jstat -gcoldcapacity pid     # 显示老年代大小
jstat -gcutil pid            # 显示垃圾收集信息
jstat -printcompilation pid  # 输入 JIT 编译的办法信息

jstat -class pid

显示已加载 class 的数量, 和空间占用状况

> jstat -class 18378

Loaded  Bytes  Unloaded  Bytes     Time   
 23192 42406.6     4121  5982.8      12.65
Loaded 已装载类的数量
Bytes  已装载类占用的大小
Unloaded 曾经卸载类的数量
Bytes  已卸载类占用的大小
Time 装载类和卸载类的工夫

jstat -compiler pid

显示 JVM 实时编译 (JIT) 信息

> jstat -compiler 18378
Compiled Failed Invalid   Time   FailedType FailedMethod
   29393      2       0   133.63          1 sun/security/util/math/intpoly/IntegerPolynomialP521 carryReduce
Compiled:编译数量。Failed:失败数量
Invalid:不可用数量
Time:工夫
FailedType:失败类型
FailedMethod:失败的办法

jstat -gc pid

显示 GC 相干信息

jstat -gc 18378
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
19968.0 14336.0  0.0   14268.4 1319936.0 672172.2  344064.0   158500.9  145024.0 110813.5 20608.0 12871.0    247    3.224   5      0.794    4.018
S0C:年老代中第一个 survivor(幸存区)的容量(字节)S1C:年老代中第二个 survivor(幸存区)的容量 (字节)
S0U:年老代中第一个 survivor(幸存区)目前已应用空间 (字节)
S1U:年老代中第二个 survivor(幸存区)目前已应用空间 (字节)
EC:年老代中 Eden(伊甸园)的容量 (字节)
EU:年老代中 Eden(伊甸园)目前已应用空间 (字节)
OC:Old 代的容量 (字节)
OU:Old 代目前已应用空间 (字节)
MC:metaspace(元空间)的容量 (字节)
MU:metaspace(元空间)目前已应用空间 (字节)
YGC:从应用程序启动到采样时年老代中 gc 次数
YGCT:从应用程序启动到采样时年老代中 gc 所用工夫(s)
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数
FGCT:从应用程序启动到采样时 old 代(全 gc)gc 所用工夫(s)
GCT:从应用程序启动到采样时 gc 用的总工夫(s)

jstat -gccapacity pid

展现 JVM 三代空间大小

> jstat -gccapacity 18378
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
 84992.0 1355776.0 1355776.0 19968.0 14336.0 1319936.0   171008.0  2711552.0   344064.0   344064.0      0.0 1173504.0 145024.0      0.0 1048576.0  20608.0    247     5
NGCMN:年老代 (young) 中初始化 (最小) 的大小(字节)
NGCMX:年老代 (young) 的最大容量 (字节)
NGC:年老代 (young) 中以后的容量 (字节)
S0C:年老代中第一个 survivor(幸存区)的容量 (字节)
S1C:年老代中第二个 survivor(幸存区)的容量 (字节)
EC:年老代中 Eden(伊甸园)的容量 (字节)
OGCMN:old 代中初始化 (最小) 的大小 (字节)
OGCMX:old 代的最大容量(字节)
OGC:old 代以后新生成的容量 (字节)
OC:Old 代的容量 (字节)
MCMN:metaspace(元空间)中初始化 (最小) 的大小 (字节)
MCMX:metaspace(元空间)的最大容量 (字节)
MC:metaspace(元空间)以后新生成的容量 (字节)
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:以后压缩类空间大小
YGC:从应用程序启动到采样时年老代中 gc 次数
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数

jstat -gcmetacapacity pid

> jstat -gcmetacapacity 18378
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   
       0.0  1173504.0   145024.0        0.0  1048576.0    20608.0   248     5    0.794    4.036
MCMN: 最小元数据容量
MCMX:最大元数据容量
MC:以后元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:以后压缩类空间大小
YGC:从应用程序启动到采样时年老代中 gc 次数
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数
FGCT:从应用程序启动到采样时 old 代(全 gc)gc 所用工夫(s)
GCT:从应用程序启动到采样时 gc 用的总工夫(s)

jstat -gcnew pid

年老代对象信息

> jstat -gcnew 18378
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT 
19968.0 24576.0 19940.4    0.0  8  15 24576.0 1306624.0 155059.4    248    3.242
S0C:年老代中第一个 survivor(幸存区)的容量 (字节)
S1C:年老代中第二个 survivor(幸存区)的容量 (字节)
S0U:年老代中第一个 survivor(幸存区)目前已应用空间 (字节)
S1U:年老代中第二个 survivor(幸存区)目前已应用空间 (字节)
TT:持有次数限度
MTT:最大持有次数限度
DSS:冀望的幸存区大小
EC:年老代中 Eden(伊甸园)的容量 (字节)
EU:年老代中 Eden(伊甸园)目前已应用空间 (字节)
YGC:从应用程序启动到采样时年老代中 gc 次数
YGCT:从应用程序启动到采样时年老代中 gc 所用工夫(s)

jstat -gcnewcapacity pid

年老代对象的信息和占用量

> jstat -gcnewcapacity 18378
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC 
   84992.0  1355776.0  1355776.0 451584.0  19968.0 451584.0  24576.0  1354752.0  1306624.0   248     5
NGCMN:年老代 (young) 中初始化 (最小) 的大小(字节)
NGCMX:年老代 (young) 的最大容量 (字节)
NGC:年老代 (young) 中以后的容量 (字节)
S0CMX:年老代中第一个 survivor(幸存区)的最大容量 (字节)
S0C:年老代中第一个 survivor(幸存区)的容量 (字节)
S1CMX:年老代中第二个 survivor(幸存区)的最大容量 (字节)
S1C:年老代中第二个 survivor(幸存区)的容量 (字节)
ECMX:年老代中 Eden(伊甸园)的最大容量 (字节)
EC:年老代中 Eden(伊甸园)的容量 (字节)
YGC:从应用程序启动到采样时年老代中 gc 次数
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数

jstat -gcold pid

old 代对象信息

> jstat -gcold 18378
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   
145024.0 111038.1  20608.0  12953.0    344064.0    162323.8    248     5    0.794    4.036
MC:metaspace(元空间)的容量 (字节)
MU:metaspace(元空间)目前已应用空间 (字节)
CCSC: 压缩类空间大小
CCSU: 压缩类空间应用大小
OC:Old 代的容量 (字节)
OU:Old 代目前已应用空间 (字节)
YGC:从应用程序启动到采样时年老代中 gc 次数
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数
FGCT:从应用程序启动到采样时 old 代(全 gc)gc 所用工夫(s)
GCT:从应用程序启动到采样时 gc 用的总工夫(s)

jstat -gcoldcapacity pid

old 代对象信息及其占用量

> jstat -gcoldcapacity 18378
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT   
   171008.0   2711552.0    344064.0    344064.0   248     5    0.794    4.036
OGCMN:old 代中初始化 (最小) 的大小 (字节)
OGCMX:old 代的最大容量(字节)
OGC:old 代以后新生成的容量 (字节)
OC:Old 代的容量 (字节)
YGC:从应用程序启动到采样时年老代中 gc 次数
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数
FGCT:从应用程序启动到采样时 old 代(全 gc)gc 所用工夫(s)
GCT:从应用程序启动到采样时 gc 用的总工夫(s)

jstat -gcutil pid

统计 GC 信息

> jstat -gcutil 18378
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
 99.86   0.00  49.82  47.18  76.57  62.85    248    3.242     5    0.794    4.036
S0:年老代中第一个 survivor(幸存区)已应用的占以后容量百分比
S1:年老代中第二个 survivor(幸存区)已应用的占以后容量百分比
E:年老代中 Eden(伊甸园)已应用的占以后容量百分比
O:old 代已应用的占以后容量百分比
P:perm 代已应用的占以后容量百分比
YGC:从应用程序启动到采样时年老代中 gc 次数
YGCT:从应用程序启动到采样时年老代中 gc 所用工夫(s)
FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数
FGCT:从应用程序启动到采样时 old 代(全 gc)gc 所用工夫(s)
GCT:从应用程序启动到采样时 gc 用的总工夫(s)

jstat -gccause pid

显示垃圾回收的相干信息(通 -gcutil), 同时显示最初一次或以后正在产生的垃圾回收的诱因。

> jstat -gccause 18378
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                 
 99.86   0.00  50.26  47.18  76.57  62.85    248    3.242     5    0.794    4.036 Allocation Failure   No GC
LGCC:最初一次 GC 起因
GCC:以后 GC 起因(No GC 为以后没有执行 GC)

jstat -printcompilation pid

以后 JVM 执行信息

> jstat -printcompilation 18378
Compiled  Size  Type Method
   29469     44    1 hudson/util/LogTaskListener$LogOutputStream <init>
Compiled:编译工作的数目
Size:办法生成的字节码的大小
Type:编译类型
Method:类名和办法名用来标识编译的办法。类名应用 / 做为一个命名空间分隔符。办法名是给定类中的办法。上述格局是由 -XX:+PrintComplation 选项进行设置的

正文完
 0