jstat是jdk自带的一个小工具,位于${JAVA_HOME}的bin目录下,用于查看JVM中的各项监控数据,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对堆栈、GC等的监控。可见,jstat是非常轻量级的、专门针对JVM的工具。
0. 使用jstat -options查看当前JVM支持的选项

说明:
命令名称 | 说明 |
---|
-class | 显示类加载器相关信息 |
-compiler | 显示JIT编译的相关信息 |
-gc | 显示堆的gc状态信息 |
--gccapacity | 显示各个代的容量以及使用情况 |
-gccause | 显示垃圾回收的相关信息,同时显示最后一次或当前正在发生的垃圾回收的诱因 |
-gcmetacapacity | 显示metaspace的大小 |
-gcnew | 显示新生代gc统计 |
-gcnewcapacity | 显示新生代大小和使用情况 |
-gcold | 显示老年代和永久代的信息 |
-gcoldcapacity | 显示老区大小 |
-gcutil | GC统计汇总,显示垃圾收集信息 |
-printcompilation | HotSpot编译统计 |
1. -class
使用示例

参数 | 说明 |
---|
Loaded | 已经装载的类的数量 |
Bytes | 装载类所占用的字节数 |
Unloaded | 已经卸载类的数量 |
Bytes | 卸载类的字节数 |
Time | 装载和卸载类所花费的时间 |
2. -compiler
使用示例

参数 | 说明 |
---|
Compiled | 编译任务执行数量 |
Failed | 编译任务执行失败数量 |
Invalid | 编译任务执行失效数量 |
Time | 编译任务消耗时间 |
FailedType | 最后一个编译失败任务的类型 |
FailedMethod | 最后一个编译失败任务所在的类及方法 |
3. -gc
使用示例

参数 | 说明 |
---|
S0C | 年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C | 年轻代中第二个survivor(幸存区)的容量 (字节) |
S0U | 年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U | 年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
EC | 年轻代中Eden(伊甸园)的容量 (字节) |
EU | 年轻代中Eden(伊甸园)目前已使用空间 (字节) |
OC | Old代的容量 (字节) |
OU | Old代目前已使用空间 (字节) |
MC | metaspace(元空间)的容量 (字节) |
MU | metaspace(元空间)目前已使用空间 (字节) |
CCSC | 压缩类空间大小 |
CCSU | 压缩类空间使用大小 |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
YGCT | 从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC | 从应用程序启动到采样时old代(全局gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全局gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
4. -gccapacity
使用示例

参数 | 说明 |
---|
NGCMN | 年轻代(young)中初始化(最小)的大小(字节) |
NGCMX | 年轻代(young)的最大容量 (字节) |
NGC | 年轻代(young)中当前的容量 (字节) |
S0C | 年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C | 年轻代中第二个survivor(幸存区)的容量 (字节 |
EC | 年轻代中Eden(伊甸园)的容量 (字节 |
OGCMN | old代中初始化(最小)的大小 (字节) |
OGCMX | old代的最大容量(字节) |
OGC | old代当前新生成的容量 (字节) |
OC | Old代的容量 (字节) |
MCMN | metaspace(元空间)中初始化(最小)的大小 (字节) |
MCMX | metaspace(元空间)的最大容量 (字节) |
MC | metaspace(元空间)当前新生成的容量 (字节) |
CCSMN | 最小压缩类空间大小 |
CCSMX | 最大压缩类空间大小 |
CCSC | 当前压缩类空间大小 |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
5. -gccause
使用示例

参数 | 说明 |
---|
S0 | Heap上的 Survivor space 0 区已使用空间的百分比 |
S1 | Heap上的 Survivor space 1 区已使用空间的百分比 |
E | Heap上的 Eden space 区已使用空间的百分比 |
O | Heap上的 Old space 区已使用空间的百分 |
M | |
CCS | |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
YGCT | 从应用程序启动到采样时 Young GC 所用的时间(单位秒) |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(单位秒) |
GCT | 从应用程序启动到采样时gc用的总时间(单位秒) |
LGCC | 最后一次GC原因 |
GCC | 当前GC原因(No GC 为当前没有执行GC) |
6. -gcmetacapacity
使用示例

参数 | 说明 |
---|
MCMN | 最小元数据容量 |
MCMX | 最大元数据容量 |
MC | 当前元数据空间大小 |
CCSMN | 最小压缩类空间大小 |
CCSMX | 最大压缩类空间大小 |
CCSC | 当前压缩类空间大小 |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
7. -gcnew
使用示例

参数 | 说明 |
---|
S0C | 年轻代中第一个survivor(幸存区)的容量 (字节) |
S1C | 年轻代中第二个survivor(幸存区)的容量 (字节) |
S0U | 年轻代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U | 年轻代中第二个survivor(幸存区)目前已使用空间 (字节) |
TT | 持有次数限制 |
MTT | 最大持有次数限制 |
DSS | 期望的幸存区大小 |
EC | 年轻代中Eden(伊甸园)的容量 (字节) |
EU | 年轻代中Eden(伊甸园)目前已使用空间 (字节) |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
YGCT | 从应用程序启动到采样时年轻代中gc所用时间(s) |
8. -gcnewcapacity
使用示例

参数 | 说明 |
---|
NGCMN | 年轻代(young)中初始化(最小)的大小(字节) |
NGCMX | 年轻代(young)的最大容量 (字节) |
NGC | 年轻代(young)中当前的容量 (字节) |
S0CMX | 年轻代中第一个survivor(幸存区)的最大容量 (字节) |
S0C | 年轻代中第一个survivor(幸存区)的容量 (字节) |
S1CMX | 年轻代中第二个survivor(幸存区)的最大容量 (字节) |
S1C | 年轻代中第二个survivor(幸存区)的容量 (字节) |
ECMX | 年轻代中Eden(伊甸园)的最大容量 (字节) |
EC | 年轻代中Eden(伊甸园)的容量 (字节) |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
9. -gcold
使用示例

参数 | 说明 |
---|
MC | metaspace(元空间)的容量 (字节) |
MU | metaspace(元空间)目前已使用空间 (字节) |
CCSC | 压缩类空间大小 |
CCSU | 压缩类空间使用大小 |
OC | Old代的容量 (字节) |
OU | Old代目前已使用空间 (字节) |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
10. -gcoldcapacity
使用示例

参数 | 说明 |
---|
OGCMN | old代中初始化(最小)的大小 (字节) |
OGCMX | old代的最大容量(字节) |
OGC | old代当前新生成的容量 (字节) |
OC | Old代的容量 (字节) |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
11. -gcutil
使用示例

参数 | 说明 |
---|
S0 | 年轻代中第一个survivor(幸存区)已使用的占当前容量百分比 |
S1 | 年轻代中第二个survivor(幸存区)已使用的占当前容量百分比 |
E | 年轻代中Eden(伊甸园)已使用的占当前容量百分比 |
O | old代已使用的占当前容量百分比 |
P | perm代已使用的占当前容量百分比 |
YGC | 从应用程序启动到采样时年轻代中gc次数 |
YGCT | 从应用程序启动到采样时年轻代中gc所用时间(s) |
FGC | 从应用程序启动到采样时old代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时old代(全gc)gc所用时间(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
12. -printcompilation
使用示例

参数 | 说明 |
---|
Compiled | 编译任务的数目 |
Size | 方法生成的字节码的大小 |
Type | 编译类型 |
Method | 类名和方法名用来标识编译的方法。类名使用/做为一个命名空间分隔符。方法名是给定类中的方法。上述格式是由-XX:+PrintComplation选项进行设置的 |