13.2.虚拟化工具--jstat

Posted to.to

tags:

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

13.1.虚拟化工具–jps工具
13.2.虚拟化工具–jstat
13.2.1.使用详情列表

13.1.虚拟化工具–jps工具

本地虚拟机唯一id Ivmid local virtual machine id
m运行时传入主类的参数
v虚拟机参数
L运行时的主类全面 或者jar包名称。

13.2.虚拟化工具–jstat

jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。
命令的格式如下:

jstat [-命令选项][vmid][间隔时间/毫秒][查询次数]

13.2.1.使用详情列表

S0C:年轻代中第一个survivor(幸存区)的容量 (kb)
S1C:年轻代中第二个survivor(幸存区)的容量 (kb)
S0U:年轻代中第一个survivor(幸存区)目前已使用空间 (kb)
S1U:年轻代中第二个survivor(幸存区)目前已使用空间 (kb)
EC:年轻代中Eden(伊甸园)的容量 (kb)
EU:年轻代中Eden(伊甸园)目前已使用空间 (kb)
OC:Old代的容量 (kb)
OU:Old代目前已使用空间 (kb)
PC:Perm(持久代)的容量 (kb)
PU:Perm(持久代)目前已使用空间 (kb)
YGC:从应用程序启动到采样时年轻代中gc次数
YGCT:从应用程序启动到采样时年轻代中gc所用时间(s)
FGC:从应用程序启动到采样时old代(全gc)gc次数
FGCT:从应用程序启动到采样时old代(全gc)gc所用时间(s)
GCT:从应用程序启动到采样时gc用的总时间(s)
NGCMN:年轻代(young)中初始化(最小)的大小 (kb)
NGCMX:年轻代(young)的最大容量 (kb)
NGC:年轻代(young)中当前的容量 (kb)
OGCMN:old代中初始化(最小)的大小 (kb)
OGCMX:old代的最大容量 (kb)
OGC:old代当前新生成的容量 (kb)
PGCMN:perm代中初始化(最小)的大小 (kb)
PGCMX:perm代的最大容量 (kb)
PGC:perm代当前新生成的容量 (kb)
S0:年轻代中第一个survivor(幸存区)已使用的占当前容量百分比
S1:年轻代中第二个survivor(幸存区)已使用的占当前容量百分比
E:年轻代中Eden(伊甸园)已使用的占当前容量百分比
O:old代已使用的占当前容量百分比
P:perm代已使用的占当前容量百分比
S0CMX:年轻代中第一个survivor(幸存区)的最大容量 (kb)
S1CMX :年轻代中第二个survivor(幸存区)的最大容量 (kb)
ECMX:年轻代中Eden(伊甸园)的最大容量 (kb)
DSS:当前需要survivor(幸存区)的容量 (kb)(Eden区已满)
TT: 持有次数限制
MTT : 最大持有次数限制

【以下的统计空间单位,未标明的都是KB】

1>类加载统计
命令:

jstat -class 449415

结果:

[admin@hadoop3 ~]$ jstat -class 449415
Loaded  Bytes  Unloaded  Bytes     Time   
 18293 31433.3      430   393.7      35.21
[admin@hadoop3 ~]$

解析:

Loaded:加载class的数量
Bytes:所占用空间大小
Unloaded:未加载数量
Bytes:未加载占用空间
Time:时间

2>编译统计
命令:

[admin@hadoop3 ~]$ jstat -compiler 449415
Compiled Failed Invalid   Time   FailedType FailedMethod
   39385      2       0   353.45          1 org/apache/lucene/codecs/PushPostingsWriterBase writeTerm
[admin@hadoop3 ~]$

结果:

Compiled:编译数量。
Failed:失败数量
Invalid:不可用数量
Time:时间
FailedType:失败类型
FailedMethod:失败的方法

3>垃圾回收统计
命令:

jstat -gc 449415

结果:

解析:

S0C:第一个Survivor的大小(kb)
S1C:第二个Survivor的大小(kb)
S0U:第一个Survivor的使用大小(kb)
S1U:第二个Survivor的使用大小(kb)
EC:Eden区的大小(kb)
EU:Eden区的使用大小(kb)
OC:老年代大小(kb)
OU:老年代使用大小(kb)
MC:方法区大小(kb)
MU:方法区使用大小(kb)
CCSC:压缩类空间大小(kb)
CCSU:压缩类空间使用大小(kb)
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间(s)
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间(s)
GCT:垃圾回收消耗总时间(s)
jstat -gc 449415 1000 10

表示:间隔1000毫秒输出一次,总共输出10次

4>堆内存统计
命令:

jstat -gccapacity 449415

结果:

NGCMN:新生代最小容量(kb)
NGCMX:新生代最大容量(kb)
NGC:当前新生代容量(kb)
S0C:第一个Survivor大小(kb)
S1C:第二个Survivor的大小(kb)
EC:Eden区的大小(kb)
OGCMN:老年代最小容量(kb)
OGCMX:老年代最大容量(kb)
OGC:当前老年代大小(kb)
OC:当前老年代大小(kb)
MCMN:最小元数据容量(kb)
MCMX:最大元数据容量(kb)
MC:当前元数据空间大小(kb)
CCSMN:最小压缩类空间大小(kb)
CCSMX:最大压缩类空间大小(kb)
CCSC:当前压缩类空间大小(kb)
YGC:年轻代gc次数

5>新生代垃圾回收统计
命令:

jstat -gcnew 449415

结果:

S0C:第一个Survivor大小(kb)
S1C:第二个Survivor的大小(kb)
S0U:第一个Survivor的使用大小(kb)
S1U:第二个Survivor的使用大小(kb)
TT:对象在新生代存活的次数
MTT:对象在新生代存活的最大次数
DSS:期望的Survivor大小(kb)
EC:Eden区的大小(kb)
EU:Eden区的使用大小(kb)
YGC:年轻代垃圾回收次数
YGCT:年轻代垃圾回收消耗时间

6>新生代内存统计
命令:

jstat -gcnewcapacity 449415

结果:

7>老年代垃圾回收统计
命令:
jstat -gcold 19570
结果:

解析:

MC:方法区大小(kb)
MU:方法区使用大小(kb)
CCSC:压缩类空间大小(kb)
CCSU:压缩类空间使用大小(kb)
OC:老年代大小(kb)
OU:老年代使用大小(kb)
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间(s)
GCT:垃圾回收消耗总时间(s)

8>老年代内存统计
命令:

jstat -gcoldcapacity 449415

结果:

解析:

OGCMN:老年代最小容量(kb)
OGCMX:老年代最大容量(kb)
OGC:当前老年代大小(kb)
OC:老年代大小(kb)
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间(s)
GCT:垃圾回收消耗总时间(s)

9>JDK7 下 永久代空间统计
命令:

jstat -gcpermcapacity 19570

结果:

解析:

PGCMN:最小永久代容量
PGCMX:最大永久代容量
PGC:当前新生成的永久代空间大小
PC :永久代空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

10>JDK8下元数据空间统计
命令:

jstat -gcmetacapacity 7172

结果:

MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT
   0.0    33152.0    33152.0        0.0        0.0        0.0    12     0    0.000    0.736

解析:

MCMN:最小元数据容量
MCMX:最大元数据容量
MC:当前元数据空间大小
CCSMN:最小压缩类空间大小
CCSMX:最大压缩类空间大小
CCSC:当前压缩类空间大小
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间
GCT:垃圾回收消耗总时间

11>总结垃圾回收统计
命令:
jstat -gcutil 19570
结果:

解析:

S0:survivor 1区当前使用比例
S1:survivor 2区当前使用比例
E:Eden区使用比例
O:老年代使用比例
M:元数据区使用比例
CCS:压缩使用比例
YGC:年轻代垃圾回收次数
FGC:老年代垃圾回收次数
FGCT:老年代垃圾回收消耗时间(s)
GCT:垃圾回收消耗总时间(s)

jstat(JVM统计监控工具),监控的内容有:类装载,内存,垃圾收集,jit编译的信息。语法格式如下:

jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]

vmid是虚拟机ID,在Linux/Unix系统上一般就是进程ID。interval是采样时间间隔。count是采样数目。

[root@hadoop4 ~]# jstat -gcutil 18068
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  0.00   100.00  38.89  18.42   95.05  94.73   7       0.080    0      0.000     0.080

想监控10次,1000毫秒打印一次:

[root@hadoop4 ~]# jstat -gcutil 18068 1000 20
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
  0.00 100.00  43.33  18.42  95.05  94.73      7    0.080     0    0.000    0.080
[root@hadoop4 ~]#

12>JVM编译方法统计
命令:

jstat -printcompilation 19570

结果:

解析:

Compiled:最近编译方法的数量
Size:最近编译方法的字节码数量
Type:最近编译方法的编译类型。
Method:方法名标识。

以上是关于13.2.虚拟化工具--jstat的主要内容,如果未能解决你的问题,请参考以下文章

深入理解java虚拟机---虚拟机工具jps与jstat(十四)

java命令--jstat 工具使用

记录java虚拟机性能监控工具(jps与jstat)的使用

JVM 调优 - jstat

jstat是jvm统计监测工具吗

Java命令学习系列——jstat