使用jstat观察jvm状态

Posted 1156184981651a

tags:

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

  • jstat -gc pid time

如:每3秒打印一次jvm使用情况

[root@i-5uvhvror bin]# ./jstat -gc 17474 3s
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
2560.0 2560.0 1712.5  0.0   2790912.0 1661843.1 5592576.0   230780.6  136704.0 129435.4 15872.0 14462.4    412    5.087   0      0.000    5.087
2560.0 2560.0 1712.5  0.0   2790912.0 1669230.1 5592576.0   230780.6  136704.0 129435.4 15872.0 14462.4    412    5.087   0      0.000    5.087
2560.0 2560.0 1712.5  0.0   2790912.0 1689227.3 5592576.0   230780.6  136704.0 129435.4 15872.0 14462.4    412    5.087   0      0.000    5.087

各列的解释:

S0C: 年轻代中第一个存活区的总大小(KB)

S1C: 年轻代中第二个存活区的总大小(KB)

S0U: 年轻代中第一个存活区目前已使用大小(KB)

S1U: 年轻代中第三个存活区目前已使用大小(字节)

EC: 年轻代中Eden的总大小(KB)

EU: 年轻代中Eden目前已使用大小(KB)

OC: 老年代的总大小(KB)

OU: 老年代目前已使用大小(KB)

MC:  Metaspace的总大小(KB)

MU: Metaspace目前已使用大小(KB)

CCSC: 压缩类空间总大小(KB)

CCSU: 压缩空间目前已使用大小(KB)

YGC: 年轻代垃圾回收次数

YGCT: 年轻代垃圾回收所用总时间(秒)

FCG: 老年代发生垃圾回收次数

FCGT: 老年代发生垃圾回收所用总时间(秒)

GCT: 垃圾回收总耗时(秒)

  • jstat -gccapacity pid time (查看JVM内存分配情况)
[root@i-5uvhvror bin]# ./jstat -gccapacity 17474 5s
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
2796032.0 2796032.0 2796032.0 2560.0 2560.0 2790912.0  5592576.0  5592576.0  5592576.0  5592576.0      0.0 1169408.0 136704.0      0.0 1048576.0  15872.0    429     0
2796032.0 2796032.0 2796032.0 2560.0 2560.0 2790912.0  5592576.0  5592576.0  5592576.0  5592576.0      0.0 1169408.0 136704.0      0.0 1048576.0  15872.0    429     0
2796032.0 2796032.0 2796032.0 2560.0 2560.0 2790912.0  5592576.0  5592576.0  5592576.0  5592576.0      0.0 1169408.0 136704.0      0.0 1048576.0  15872.0    429     0
2796032.0 2796032.0 2796032.0 2560.0 2560.0 2790912.0  5592576.0  5592576.0  5592576.0  5592576.0      0.0 1169408.0 136704.0      0.0 1048576.0  15872.0    429     0

各列解释:

NGCMN:  年轻代初始化(最小)的大小(KB)

NGCMX:  年轻代的最大容量(KB)

NGC: 年轻代中当前容量(KB)

S0C: 年轻代中第一个幸存区的容量(KB)

S1C: 年轻代中第三个幸存区的容量(KB)

EC: 年轻代中Eden区的容量(KB)

OGCMN: 老年代中初始化容量大小(KB)

OGCMX: 老年代中最大容量(KB)

OGC: 老年代当前容量大小(KB)

MCMN: metaspace初始化容量(KB)

MCMX: metaspace最大容量大小(KB)

MC: metaspace当前容量大小(KB)

  • jstat -gcutil pid time (查看当前JVM内存占用百分比)
[root@i-5uvhvror bin]# ./jstat -gcutil 17474 5s
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
 61.88   0.00  72.14   4.20  94.73  91.12    434    5.326     0    0.000    5.326
 61.88   0.00  73.49   4.20  94.73  91.12    434    5.326     0    0.000    5.326
 61.88   0.00  74.73   4.20  94.73  91.12    434    5.326     0    0.000    5.326
 61.88   0.00  75.69   4.20  94.73  91.12    434    5.326     0    0.000    5.326
 61.88   0.00  77.52   4.20  94.73  91.12    434    5.326     0    0.000    5.326
 61.88   0.00  78.85   4.20  94.73  91.12    434    5.326     0    0.000    5.326

各列解释:

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

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

E: 年轻代中Eden区已使用量占当前容量的百分比

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

M: metaspace已使用量点当前容量的百分比

  • jstat -gcnew pid time (年轻代对象的信息)
[root@i-5uvhvror bin]# ./jstat -gcnew 17474 3s
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
2560.0 2560.0    0.0 2234.5  1  15 2560.0 2790912.0 1544776.3    435    5.339
2560.0 2560.0    0.0 2234.5  1  15 2560.0 2790912.0 1548682.9    435    5.339
2560.0 2560.0    0.0 2234.5  1  15 2560.0 2790912.0 1569876.3    435    5.339
2560.0 2560.0    0.0 2234.5  1  15 2560.0 2790912.0 1592029.9    435    5.339

 来源:http://www.totozhan.com/

以上是关于使用jstat观察jvm状态的主要内容,如果未能解决你的问题,请参考以下文章

jvm-监控指令-jstat

JVM 调优 - jstat

JAVA-聊聊JVM的年轻代

java命令--jstat 工具使用

(转)JVM调优常用命令(jstatjmapjstack)

jvm 性能调优工具之 jstat 命令详解