1.介绍
Jstat用于监控基于HotSpot的JVM,对其堆的使用情况进行实时的命令行的统计,使用jstat我们可以对指定的JVM做如下监控:
- 类的加载及卸载情况
- 查看新生代、老生代及metaSpace的容量及使用情况
- 查看新生代、老生代及metaSpace的垃圾收集情况,包括垃圾回收的次数及垃圾回收所占用的时间
查看新生代中Eden区及Survior区中容量及分配情况等
jstat工具特别强大,它有众多的可选项,通过提供多种不同的监控维度,使我们可以从不同的维度来了解到当前JVM堆的使用情况。详细查看堆内各个部分的使用量,使用的时候必须加上待统计的Java进程号,可选的不同维度参数以及可选的统计频率参数。
2.语法
下面是jdk1.8支持的选项:
下面是jdk1.8以下版本支持的选项:
3示例
jstat -gc -h5 -t 26316 1s 20
- 1
- 2
-gc 选项
-h5 每隔5行显示一下表头
-t 显示从虚拟机启动在当前时间的时间间隔 单位:秒
26536 线程id
1s 1秒显示一次
20 总共显示20次
4表头讲解
实名jdk1.7与jdk1.8就差了一个metaspace区域,其它都一样。
表头 | 描述 | jdk 版本 |
---|---|---|
S0C | 新生代中Survivor space中S0当前容量的大小(KB) | |
S1C | 新生代中Survivor space中S1当前容量的大小(KB) | |
S0U | 新生代中Survivor space中S0容量使用的大小(KB) | |
S1U | 新生代中Survivor space中S1容量使用的大小(KB) | |
EC | Eden space当前容量的大小(KB) | |
EU | Eden space容量使用的大小(KB) | |
OC | Old space当前容量的大小(KB) | |
OU | Old space使用容量的大小(KB) | |
PC | Permanent space当前容量的大小(KB) | 1.8以下 |
PU | Permanent space使用容量的大小(KB) | 1.8以下 |
MC | MeteSpace 当前容量的大小(KB) | 1.8及以上 |
MU | MeteSpace 使用容量的大小(KB) | 1.8及以上 |
CCSC | 压缩类空间大小(KB) | 1.8及以上 |
CCSU | 压缩类空间大小(KB) | 1.8及以上 |
YGC | 从应用程序启动到采样时发生 Young GC 的次数 | |
YGCT | 从应用程序启动到采样时 Young GC 所用的时间(秒) | |
FGC | 从应用程序启动到采样时发生 Full GC 的次数 | |
FGCT | 从应用程序启动到采样时 Full GC 所用的时间(秒) | |
GCT | 从jvm启动到采样时用于垃圾回收的总时间(单位秒),它的值等于YGC+FGC |