jstat 简介

Posted 霄九天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jstat 简介相关的知识,希望对你有一定的参考价值。

1. jstat -gc pid

            可以显示gc的信息,查看gc的次数,及时间。

            其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。

Chpcentos5-/opt/Best/log> jstat -gc 29430
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
2560.0 2176.0  0.0   2176.0 280640.0 50731.3   349568.0   18721.5   21248.0 16118.2     99    1.863   0      0.000    1.863

      2.jstat -gccapacity pid

            可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,

            如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,

            PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。

            其他的可以根据这个类推, OC是old内纯的占用量。

hpcentos5-/opt/test/log> jstat -gccapacity 29430
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC      PGCMN    PGCMX     PGC       PC     YGC    FGC
174720.0 349504.0 349504.0 3584.0 3648.0 342144.0   349568.0   699072.0   349568.0   349568.0  21248.0 262144.0  21248.0  21248.0    116     0

     3.jstat -gcutil pid

            统计gc信息统计。

hpcentos5-/opt/_test/log> jstat -gcutil 29430
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
  0.00  90.74  64.26   6.03  76.03    127    2.569     0    0.000    2.569

     4.jstat -gcnew pid

           年轻代对象的信息。

hpcentos5-/opt/test/log> jstat -gcnew 29430
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT
3328.0 3328.0    0.0 3136.0  1  15 3328.0 342848.0 234078.3    137    2.818

     5.jstat -gcnewcapacity pid

           年轻代对象的信息及其占用量。

hpcentos5-/opt/test/log> jstat -gcnewcapacity 29430
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC
  174720.0   349504.0   349504.0   3264.0 116480.0 116480.0   3264.0   349376.0   342976.0   161     0

     6.jstat -gcold pid

          old代对象的信息。

hpcentos5-/opt/test/log> jstat -gcold 29430
   PC       PU        OC          OU       YGC    FGC    FGCT     GCT
 21248.0  16155.6    349568.0     28329.5    173     0    0.000    3.699

     7.jstat -gcoldcapacity pid

          old代对象的信息及其占用量。

hpcentos5-/opt/_test/log> jstat -gcoldcapacity 29430
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT
   349568.0    699072.0    349568.0    349568.0   196     0    0.000    4.160

     8.jstat -gcpermcapacity pid

          perm对象的信息及其占用量。

hpcentos5-/opt/_test/log> jstat -gcpermcapacity 29430
  PGCMN      PGCMX       PGC         PC      YGC   FGC    FGCT     GCT
   21248.0   262144.0    21248.0    21248.0   215     0    0.000    4.637

 

     9.jstat -class pid

          显示加载class的数量,及所占空间等信息。

hpcentos5-/opt/test/log> jstat -class 29430
Loaded  Bytes  Unloaded  Bytes     Time
  1787  3909.9        0     0.0       1.11

     10.jstat -compiler pid

          显示VM实时编译的数量等信息。

hpcentos5-/opt/_test/log> jstat -compiler 29430
Compiled Failed Invalid   Time   FailedType FailedMethod
     574      0       0     4.68          0

     11.stat -printcompilation pid

          当前VM执行的信息。

        一些术语的中文解释:

         S0C:年轻代中第一个survivor(幸存区)的容量 (字节)
         S1C:年轻代中第二个survivor(幸存区)的容量 (字节)
         S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (字节)
         S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (字节)
           EC:年轻代中Eden(伊甸园)的容量 (字节)
           EU:年轻代中Eden(伊甸园)目前已使用空间 (字节)
           OC:Old代的容量 (字节)
           OU:Old代目前已使用空间 (字节)
           PC:Perm(持久代)的容量 (字节)

           MC:方法区大小

          MU:方法区使用大小

          CCSC:压缩类空间大小

          CCSU:压缩类空间使用大小

           PU:Perm(持久代)目前已使用空间 (字节)
         YGC:从应用程序启动到采样时年轻代中gc次数
       YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
         FGC:从应用程序启动到采样时old代(全gc)gc次数
       FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
         GCT:从应用程序启动到采样时gc用的总时间(s)

    NGCMN:年轻代(young)中初始化(最小)的大小 (字节)

    NGCMX:年轻代(young)的最大容量 (字节)

        NGC:年轻代(young)中当前的容量 (字节)

   OGCMN:old代中初始化(最小)的大小 (字节) 

   OGCMX:old代的最大容量 (字节)

       OGC:old代当前新生成的容量 (字节)

   PGCMN:perm代中初始化(最小)的大小 (字节) 

   PGCMX:perm代的最大容量 (字节)   

       PGC:perm代当前新生成的容量 (字节)

          S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比

         S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比

           E:年轻代中Eden(伊甸园)已使用的占当前容量百分比

           O:old代已使用的占当前容量百分比

           P:perm代已使用的占当前容量百分比

  S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (字节)

 S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (字节)

    ECMX:年轻代中Eden(伊甸园)的最大容量 (字节)

       DSS:当前需要survivor(幸存区)的容量 (字节)(Eden区已满)

          TT: 持有次数限制

       MTT : 最大持有次数限制

 

实例展示,如下是一个消息模拟+发程序,eden区一直增长(会自动回落),old区在很缓慢的增长,当old/perm空间不足时,会触犯发full GC

技术分享
hpcentos5-/opt/BOCO.MQ/GAIA_test/bin> jstat -gcutil 31775 2000
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
 99.02   0.00  38.03  86.63  49.56  87710 2184.457     1    0.101 2184.558
  0.00  95.19  48.45  86.63  49.56  87713 2184.530     1    0.101 2184.630
 96.15   0.00  59.65  86.63  49.56  87716 2184.604     1    0.101 2184.704
  0.00  94.23  70.06  86.63  49.56  87719 2184.678     1    0.101 2184.779
 95.19   0.00  72.06  86.64  49.56  87722 2184.751     1    0.101 2184.852
  0.00  95.19  81.67  86.64  49.56  87725 2184.827     1    0.101 2184.928
 97.06   0.00  92.09  86.65  49.56  87728 2184.904     1    0.101 2185.005
 94.23   0.00   0.00  86.67  49.56  87732 2185.007     1    0.101 2185.107
  0.00  95.19   8.00  86.67  49.56  87735 2185.083     1    0.101 2185.183
100.00   0.00  18.81  86.68  49.56  87738 2185.158     1    0.101 2185.259
  0.00  96.15  26.01  86.69  49.56  87741 2185.239     1    0.101 2185.339
 95.19   0.00  36.02  86.70  49.56  87744 2185.315     1    0.101 2185.416
  0.00  95.19  46.03  86.70  49.56  87747 2185.388     1    0.101 2185.489
 93.27   0.00  56.04  86.71  49.56  87750 2185.461     1    0.101 2185.562
  0.00  95.19  58.45  86.72  49.56  87753 2185.532     1    0.101 2185.632
100.00   0.00  68.45  86.72  49.56  87756 2185.603     1    0.101 2185.704
  0.00  95.19  78.46  86.72  49.56  87759 2185.674     1    0.101 2185.775
 97.12   0.00  84.46  86.73  49.56  87762 2185.746     1    0.101 2185.846
  0.00  97.12  94.45  86.74  49.56  87766 2185.819     1    0.101 2185.919
  0.00  95.19   2.00  86.75  49.56  87769 2185.915     1    0.101 2186.016
 94.23   0.00  10.01  86.75  49.56  87772 2185.990     1    0.101 2186.091
  0.00  96.15  22.01  86.76  49.56  87775 2186.063     1    0.101 2186.164
 98.04   0.00  32.02  86.78  49.56  87778 2186.141     1    0.101 2186.242
  0.00  95.19  41.62  86.78  49.56  87781 2186.221     1    0.101 2186.322
 99.00   0.00  44.42  86.78  49.56  87784 2186.293     1    0.101 2186.394
技术分享

 下面是另一个例子,程序old区已满,又回收不回来,Full GC不起作用,此时需要分析代码

技术分享
Chpcentos5-/opt/BOCO.MQ/GAIA_test/bin> jstat -gcutil -h 5 1740 2000
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
  0.00   0.00 100.00 100.00  99.63    258   10.759   266 1288.284 1299.043
  0.00   0.00 100.00 100.00  99.66    258   10.759   267 1292.897 1303.657
  0.00   0.00 100.00 100.00  99.66    258   10.759   267 1292.897 1303.657
  0.00   0.00 100.00 100.00  99.66    258   10.759   267 1292.897 1303.657
  0.00   0.00 100.00 100.00  99.93    258   10.759   268 1297.528 1308.287
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT
  0.00   0.00 100.00 100.00  99.93    258   10.759   268 1297.528 1308.287
  0.00   0.00 100.00 100.00  99.87    258   10.759   268 1297.528 1308.287
  0.00   0.00 100.00 100.00  99.63    258   10.759   269 1303.533 1314.292
  0.00   0.00 100.00 100.00  99.63    258   10.759   269 1303.533 1314.292
  0.00   0.00 100.00 100.00  99.64    258   10.759   270 1308.151 1318.910
技术分享













以上是关于jstat 简介的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向类加载器 ClassLoader ( 类加载器源码简介 | BaseDexClassLoader | DexClassLoader | PathClassLoader )(代码片段

JVMjstat命令详解---JVM的统计监测工具

JVMjstat命令详解---JVM的统计监测工具

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

SpringCloud系列十一:SpringCloudStream(SpringCloudStream 简介创建消息生产者创建消息消费者自定义消息通道分组与持久化设置 RoutingKey)(代码片段

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段