前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jstat查看JVM的GC情况

jstat查看JVM的GC情况

原创
作者头像
开源日记
修改2020-12-09 10:08:32
2K0
修改2020-12-09 10:08:32
举报
文章被收录于专栏:JVMGC

jstat可以查看堆各部分的使用量,以及类加载的数量

jstat所有的参数

代码语言:txt
复制
> 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的数量,和空间占用情况

代码语言:txt
复制
> jstat -class 18378

Loaded  Bytes  Unloaded  Bytes     Time   
 23192 42406.6     4121  5982.8      12.65
代码语言:txt
复制
Loaded 已装载类的数量
Bytes  已装载类占用的大小
Unloaded 已经卸载类的数量
Bytes  已卸载类占用的大小
Time 装载类和卸载类的时间

jstat -compiler pid

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

代码语言:txt
复制
> jstat -compiler 18378
Compiled Failed Invalid   Time   FailedType FailedMethod
   29393      2       0   133.63          1 sun/security/util/math/intpoly/IntegerPolynomialP521 carryReduce
代码语言:txt
复制
Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法

jstat -gc pid

显示GC相关信息

代码语言:txt
复制
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
代码语言:txt
复制
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三代空间大小

代码语言:txt
复制
> 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
代码语言:txt
复制
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

代码语言:txt
复制
> 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
代码语言:txt
复制
MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC :从应用程序启动到采样时年轻代中gc次数
FGC :从应用程序启动到采样时old代(全gc)gc次数
FGCT :从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)

jstat -gcnew pid

年轻代对象信息

代码语言:txt
复制
> 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
代码语言:txt
复制
S0C :年轻代中第一个survivor(幸存区)的容量 (字节)
S1C :年轻代中第二个survivor(幸存区)的容量 (字节)
S0U :年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
S1U :年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
TT:持有次数限制
MTT:最大持有次数限制
DSS:期望的幸存区大小
EC:年轻代中Eden(伊甸园)的容量 (字节)
EU :年轻代中Eden(伊甸园)目前已使用空间 (字节)
YGC :从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)

jstat -gcnewcapacity pid

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

代码语言:txt
复制
> 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
代码语言:txt
复制
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代对象信息

代码语言:txt
复制
> 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
代码语言:txt
复制
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代对象信息及其占用量

代码语言:txt
复制
> 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
代码语言:txt
复制
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信息

代码语言:txt
复制
> 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
代码语言:txt
复制
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),同时显示最后一次或当前正在发生的垃圾回收的诱因。

代码语言:txt
复制
> 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
代码语言:txt
复制
LGCC:最后一次GC原因
GCC:当前GC原因(No GC 为当前没有执行GC)

jstat -printcompilation pid

当前JVM执行信息

代码语言:txt
复制
> jstat -printcompilation 18378
Compiled  Size  Type Method
   29469     44    1 hudson/util/LogTaskListener$LogOutputStream <init>
代码语言:txt
复制
Compiled :编译任务的数目
Size :方法生成的字节码的大小
Type:编译类型
Method:类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:+PrintComplation选项进行设置的
wx.jpg
wx.jpg

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • jstat所有的参数
    • jstat -class pid
      • jstat -compiler pid
        • jstat -gc pid
          • jstat -gccapacity pid
            • jstat -gcmetacapacity pid
              • jstat -gcnew pid
                • jstat -gcnewcapacity pid
                  • jstat -gcold pid
                    • jstat -gcoldcapacity pid
                      • jstat -gcutil pid
                        • jstat -gccause pid
                          • jstat -printcompilation pid
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档