jstat
jstat对程序的资源和性能进行实时的监控,用于查看heap size和垃圾回收情况。
(1)命令格式
jstat -<options> pid
常用选项:
参数 | 说明 |
---|
-class | 查看类加载的情况,包括类加载的数量,所占字节,装卸载花费的时间等 |
-compiler | 显示编译器实时编译的数量等信息 |
-gc | 查看gc信息 |
-gccapacity | 查看内存中新生代、老生代、持久代的容量情况 |
-gccause | 同gcutil,同时显示最后一次仅当前正在发生的gc的原因 |
-gcmetacapacity | 显示元数据空间情况 |
-gcnew | 查看新生代gc信息 |
-gcnewcapacity | 查看新生代存储容量情况 |
-gcold | 查看老生代及持久代gc情况 |
-gcoldcapacity | 查看老生代容量情况 |
-gcutil | 显示垃圾回收信息 |
-printcompilation | 输出已被即时编译的方法信息 |
(2)命令示例
1. jstat -class <pid>
参数 | 说明 |
---|
Loaded | 加载类的数量 |
Bytes | 加载类所占字节数大小 |
Unloaded | 未加载类数量 |
Bytes | 未加载类所占字节数大戏哦啊 |
Times | 总耗时 |
2. jstat -compiler <pid>
参数 | 说明 |
---|
Compiled | 编译任务执行数量 |
Failed | 编译任务执行失败的数量 |
Invalid | 编译任务执行失效的数量 |
Time | 编译任务耗时 |
FailedType | 最后一个编译失败任务的类型 |
FailedMethod | 最后一个编译失败任务所在的类及方法 |
3. jstat -gc <pid>
参数 | 说明 |
---|
S0C | 新生代中第一个survivor(幸存区)的容量 (字节) |
S1C | 新生代中第二个survivor(幸存区)的容量 (字节) |
S0U | 新生代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U | 新生代中第二个survivor(幸存区)目前已使用空间 (字节) |
EC | 新生代中Eden(伊甸园)的容量 (字节) |
EU | 新生代中Eden(伊甸园)目前已使用空间 (字节) |
OC | 老生代的容量(字节) |
OU | 老生代目前已使用空间 (字节) |
MC | 方法区大小(字节) |
MU | 方法区目前已使用空间(字节) |
CCSC | 压缩类空间大小(字节) |
CCSU | 压缩类目前已使用空间(字节) |
YGC | 从应用程序启动到采样时新生代中gc次数 |
YGCT | 从应用程序启动到采样时新生代中gc所用时间(s) |
FGC | 从应用程序启动到采样时老生代(全gc)gc次数 |
FGCT | 从应用程序启动到采样时老生代(全gc)gc所用时间(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | 从应用程序启动到采样时gc用的总时间(s) |
4. jstat -gccapacity <pid>
参数 | 说明 |
---|
NGCMN | 新生代初始化最小的容量 (字节) |
NGCMX | 新生代最大容量 (字节) |
NGC | 新生代当前容量 (字节) |
S0C | 新生代中第一个survivor(幸存区)的容量 (字节) |
S1C | 新生代中第二个survivor(幸存区)的容量 (字节) |
EC | 新生代中Eden(伊甸园)的容量 (字节) |
OGCMN | 老生代中初始化最小的容量(字节) |
OGCMX | 老生代最大容量(字节) |
OGC | 老生代当前新生成的容量(字节) |
OC | 老生代当前容量(字节) |
MCMN | 最小元数据容量(字节) |
MCMX | 最大元数据容量(字节) |
MC | 当前元数据空间大小(字节) |
CCSMN | 最小压缩类容量大小(字节) |
CCSMX | 最大压缩类容量大小(字节) |
CCSC | 当前压缩类容量大小(字节) |
YGC | 新生代gc次数 |
FGC | 老生代gc次数 |
CGC | 并发gc次数 |
5. jstat -gccause <pid>
参数 | 说明 |
---|
S0 | 新生代中第一个survivor(幸存区)当前使用占比 |
S1 | 新生代中第二个survivor(幸存区)当前使用占比 |
E | 新生代中Eden(伊甸园)当前使用占比 |
O | 老生代当前使用占比 |
M | 元数据区使用占比 |
CCS | 压缩使用占比 |
YGC | 新生代gc次数 |
YGCT | 新生代gc耗时(s) |
FGC | 老生代gc次数 |
FGCT | 老生代gc耗时(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | gc总耗时(s) |
LGCC | 上次gc的原因 |
GCC | 当前gc的原因 |
6. jstat -gcmetacapacity <pid>
参数 | 说明 |
---|
MCMN | 最小元数据容量(字节) |
MCMX | 最大元数据容量(字节) |
MC | 当前元数据大小(字节) |
CCSMN | 最小压缩类空间大小(字节) |
CCSMX | 最大压缩类空间大小(字节) |
CCSC | 当前压缩类空间大小(字节) |
YGC | 新生代gc次数 |
FGC | 老生代gc次数 |
FGCT | 老生代gc耗时(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | gc总耗时(s) |
7. jstat -gcnew <pid>
参数 | 说明 |
---|
S0C | 新生代中第一个survivor(幸存区)的容量 (字节) |
S1C | 新生代中第二个survivor(幸存区)的容量 (字节) |
S0U | 新生代中第一个survivor(幸存区)目前已使用空间 (字节) |
S1U | 新生代中第二个survivor(幸存区)目前已使用空间 (字节) |
TT | 对象在新生代存活次数 |
MTT | 对象在新生代存活的最大次数 |
DSS | 期待的survivor(幸存区)大小 (字节) |
EC | 新生代中Eden(伊甸园)的容量 (字节) |
EU | 新生代中Eden(伊甸园)目前已使用空间 (字节) |
YGC | 新生代gc次数 |
YGCT | 新生代中gc所用时间(s) |
8. jstat -gcnewcapacity <pid>
参数 | 说明 |
---|
MGCMN | 新生代初始化最小的容量 (字节) |
NGCMX | 新生代最大容量 (字节) |
NGC | 新生代当前容量 (字节) |
S0CMX | 新生代中第一个survivor(幸存区)的最大容量 (字节) |
S0C | 新生代中第一个survivor(幸存区)的容量 (字节) |
S1CMX | 新生代中第二个survivor(幸存区)的最大容量 (字节) |
S1C | 新生代中第二个survivor(幸存区)的容量 (字节) |
ECMX | 新生代中Eden(伊甸园)的最大容量 (字节) |
EC | 新生代中Eden(伊甸园)的容量 (字节) |
YGC | 新生代gc次数 |
FGC | 老生代gc次数 |
CGC | 并发gc次数 |
9. jstat -gcold <pid>
参数 | 说明 |
---|
MC | 方法区容量 (字节) |
MU | 方法区目前已使用容量 (字节) |
CCSC | 压缩类空间大小 (字节) |
CCSU | 压缩类已使用容量 (字节) |
OC | 老生代容量 (字节) |
OU | 老生代目前已使用容量 (字节) |
YGC | 新生代gc次数 |
FGC | 老生代gc次数 |
FGCT | 老生代gc耗时(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | gc总耗时(s) |
10. jstat -gcoldcapacity <pid>
参数 | 说明 |
---|
OGCMN | 老生代初始化最小的容量 (字节) |
OGCMX | 老生代最大容量 (字节) |
OGC | 老生代当前容量 (字节) |
OC | 老生代大小 (字节) |
YGC | 新生代gc次数 |
FGC | 老生代gc次数 |
FGCT | 老生代gc耗时(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | gc总耗时(s) |
11. jstat -gcutil <pid>
参数 | 说明 |
---|
S0 | 新生代中第一个survivor(幸存区)当前使用占比 |
S1 | 新生代中第二个survivor(幸存区)当前使用占比 |
E | 新生代中Eden(伊甸园)当前使用占比 |
O | 老生代当前使用占比 |
M | 元数据区使用占比 |
CCS | 压缩使用占比 |
YGC | 新生代gc次数 |
YGCT | 新生代gc耗时(s) |
FGC | 老生代gc次数 |
FGCT | 老生代gc耗时(s) |
CGC | 并发gc次数 |
CGCT | 并发gc耗时(s) |
GCT | gc总耗时(s) |
12. jstat -printcompilation <pid>
参数 | 说明 |
---|
Compiled | 编译任务的数量 |
Size | 方法生成的字节码大小 |
Type | 编译类型 |
Method | 类名和方法名标识的编译的方法 |
(3)常用命令示例