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 |
文章来源: jstat 讲解