一. 简单说明
jstat是用于监控虚拟机各种运行状态信息的命令工具,尤其对于了解垃圾回收的情况很有帮助(类装载、垃圾收集、运行期编译状况)。
二. 使用方法
|
|
下图来自深入理解java虚拟机,这里只选几个重要的进行说明
|
|
1. -gc
|
|
说明
选项 | 说明 |
---|---|
列名 | 描述 |
S0C | survivor-0的总容量 |
S1C | survivor-1的总容量 |
S0U | survivor-0已使用容量 |
S1U | survivor-1已使用容量 |
EC | Eden的总容量 |
EU | Eden已使用容量 |
OC | 老年代的总容量 |
OU | 老年代已使用容量 |
PC | 持久代的总容量 |
PU | 持久代已使用容量 |
YGC | 年轻代中gc(young gc)次数 |
YGCT | 年轻代中gc(young gc)所用时间 |
FGC | 老年代(full gc)gc次数 |
FGCT | 老年代(full gc)gc所用时间 |
GCT | gc(young gc + full gc)用的总时间 |
2. -gccapacity
例如我们想每秒检测一次java堆各个区域使用到的最小和最大空间,一共检测10次,我们执行如下:
选项 | 说明 |
---|---|
列名 | 描述 |
NGCMN | 年轻代初始化(最小)的容量 |
NGCMX | 年轻代的最大容量 |
NGC | 年轻代中当前的容量 |
S0C | 参考-gc中介绍 |
S1C | 参考-gc中介绍 |
EC | 参考-gc中介绍 |
OGCMN | 老年代中初始化(最小)的容量 |
OGCMX | 老年代的最大容量 |
OGC | 老年代当前新生成的容量 |
OC | 参考-gc中介绍 |
PGCMN | 持久代代中初始化(最小)的容量 |
PGCMX | 持久代的最大容量 |
PGC | 持久代代当前新生成的容量 |
PC | 参考-gc中介绍 |
YGC | 参考-gc中介绍 |
FGC | 参考-gc中介绍 |
3. -gcutil
例如我们想每秒检测一次java堆各个区域已经使用的百分比,一共检测10次,我们执行如下:
分析第一行
- 两个survivor:一个使用了100%,一个使用了0%
- 一个eden:使用了30.48%
- 老年代:使用了64.52%
- 持久代:使用了72.61%
- young gc: 22651次
- young gc time: 427.545秒
- full gc: 0次
- full gc time: 0秒
- 所有gc time: 427.545秒
三、简单总结
jstat对于分析JVM中垃圾回收的问题有很多帮助,要合理的使用。