概述
监控JVM统计信息, 如gc信息, 类加载信息, JIT信息
命令格式: jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
-
generalOption : jstat命令选项,如 -help或-options
-
outputOptions : 包含一个statOption的输出选项
-
vmid : JVM的id, 即java进程id
-
interval [s|ms]: 监控间隔时间, 单位是秒或毫秒, 不加单位默认为毫秒
-
count : 表示总共监控多少次, 默认是一直执行
参数
一般参数
- -help : 打印帮助信息
- -options : 展示参数列表
输出参数
其他参数
- -h n : 每n行展示一次列标题
- -t : 添加一个时间戳列到第一列, 时间戳时间是从JVM启动开始计算
statOption(静态参数)
jstat命令最重要的一些参数
-class : 展示类加载信息
列名称 | 描述 |
---|
Loaded | 加载的class数量 |
Bytes | 加载的class类大小, 单位KB |
Unloaded | 未加载的class数量 |
Bytes | 未加载的class类大小, 单位KB |
-compiler : 展示JVM即时编译器的一些统计信息
列名称 | 描述 |
---|
Compiled | 执行的编译任务的数量 |
Failed | 编译任务失败的数量 |
Invalid | 无效编译任务的数量 |
Time | 用于执行编译任务的时间, 单位s |
FailedType | 上次编译失败的编译类型 |
FailedMethod | 上次编译失败的类名和方法 |
-gc : 展示gc信息, 主要是堆的gc信息
列名称 | 描述 |
---|
S0C | 当前S0(Survivor 0)空间容量, 单位KB |
S1U | 当前S1(Survivor 1)空间容量, 单位KB |
S0U | S0空间使用量, 单位KB |
S1U | S1空间使用量, 单位KB |
EC | 当前Eden区域容量, 单位KB |
EU | Eden区域使用量, 单位KB |
OC | 当前老年代容量, 单位KB |
OU | 老年代使用量, 单位KB |
MC | 元空间(Metaspace)容量, 单位KB |
MU | 元空间(Metaspace)使用量, 单位KB |
CCSC | 类指针压缩空间容量, 单位KB |
CCSU | 类指针压缩空间容量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
YGCT | YGC所消耗的时间, 单位s |
FGC | Full GC发生的次数 |
FGCT | Full GC消耗的时间, 单位s |
GCT | 所有GC消耗的总时间, 单位s |
-gccapacity : 展示各代(新生代,老年代等)的容量以及相应的空间信息
列名称 | 描述 |
---|
NGCMN | 新生代最小容量, 单位KB |
NGCMX | 新生代最大容量, 单位KB |
NGC | 当前新生代容量, 单位KB |
S0C | 当前S0空间(survivor 0)容量, 单位KB |
S1C | 当前S1空间(survivor 1)容量, 单位KB |
EC | 当前Eden空间容量, 单位KB |
OGCMN | 老年代最小容量, 单位KB |
OGCMX | 老年代最大容量, 单位KB |
OGC | 当前老年代容量, 单位KB |
OC | 当前老年代容量, 单位KB. ps:这个参数有点费解, 和OGC是一样的 |
MCMN | 元空间(metaspace )最小容量, 单位KB |
MCMX | 元空间(metaspace )最大容量, 单位KB |
MC | 当前元空间(metaspace )容量, 单位KB |
CCSMN | CCS(Compressed class space)区域最小容量, 单位KB |
CCSMX | CCS空间最大容量, 单位KB |
CCSC | 当前CCS空间容量, 单位KB |
YGC | Young GC(Minor GC)发生次数 |
FGC | Full GC发生次数 |
-gcutil : 展示gc概要信息
列名称 | 描述 |
---|
S0 | S0(Survivor 0)空间使用百分比(相对于当前容量) |
S1 | S1(Survivor 1)空间使用百分比(相对于当前容量) |
E | Eden空间使用百分比(相对于当前容量) |
O | 老年代空间使用百分比(相对于当前容量) |
M | 元空间(Metaspace)使用百分比(相对于当前容量) |
CCS | CCS空间使用百分比 |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
YGCT | YGC所消耗的时间, 单位s |
FGC | Full GC发生的次数 |
FGCT | Full GC消耗的时间, 单位s |
GCT | 所有GC消耗的总时间, 单位s |
-gccause : 展示gc概要信息(类似于gcutil), 展示最后一次和当前gc事件的原因
和gcutil展示信息一样, 额外增加了两列LGCC,GCC:
-gcnew : 展示新生代gc相关信息
列名称 | 描述 |
---|
S0C | 当前S0(Survivor 0)空间容量, 单位KB |
S1C | 当前S1(Survivor 1)空间容量, 单位KB |
S0U | S0空间使用量, 单位KB |
S1U | S1空间使用量, 单位KB |
TT | 对象在新生代存活的次数 |
MTT | 对象在新生代存活的最大次数 |
DSS | 期望的survivor空间大小, 单位KB |
EC | 当前Eden区域容量, 单位KB |
EU | Eden区域使用量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
YGCT | YGC所消耗的时间, 单位s |
-gcnewcapacity : 展示新生代(new generation)容量及其对应空间
列名称 | 描述 |
---|
NGCMN | 新生代最小容量, 单位KB |
NGCMX | 新生代最大容量, 单位KB |
NGC | 当前新生代容量, 单位KB |
S0CMX | S0空间最大容量, 单位KB |
S0C | 当前S0空间容量, 单位KB |
S1CMX | S1空间最大容量, 单位KB |
S1C | 当前S1空间容量, 单位KB |
ECMX | Eden空间最大容量, 单位KB |
EC | 当前Eden空间容量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
FGC | Full GC发生的次数 |
-gcold : 展示老年代(old generation)以及元空间(metaspace)相关gc信息
列名称 | 描述 |
---|
MC | 元空间(Metaspace)容量, 单位KB |
MU | 元空间(Metaspace)使用量, 单位KB |
CCSC | CCS空间容量, 单位KB |
CCSU | CCS空间使用量, 单位KB |
OC | 当前老年代容量, 单位KB |
OU | 老年代使用量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
FGC | Full GC发生的次数 |
FGCT | Full GC消耗的时间, 单位s |
GCT | 所有GC消耗的总时间(包含YGC和FGC), 单位s |
-gcoldcapacity : 展示老年代容量信息
列名称 | 描述 |
---|
OGCMN | 老年代最小容量, 单位KB |
OGCMX | 老年代最大容量, 单位KB |
OGC | 当前老年代容量, 单位KB |
OC | 当前老年代容量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
FGC | Full GC发生的次数 |
FGCT | Full GC消耗的时间, 单位s |
GCT | 所有GC消耗的总时间(包含YGC和FGC), 单位s |
-gcmetacapacity : 展示元空间(metaspace)容量信息
列名称 | 描述 |
---|
MCMN | 元空间(Metaspace)最小容量, 单位KB |
MCMX | 元空间(Metaspace)最大容量, 单位KB |
MC | 当前元空间(Metaspace)容量, 单位KB |
CCSMN | CCS空间最小容量, 单位KB |
CCSMX | CCS空间最大容量, 单位KB |
YGC | 新生代GC(Minor GC/Young GC)发生的次数 |
FGC | Full GC发生的次数 |
FGCT | Full GC消耗的时间, 单位s |
GCT | 所有GC消耗的总时间(包含YGC和FGC), 单位s |
-printcompilation : 展示编译方法(JIT)相关信息
列名称 | 描述 |
---|
Compiled | 由最近编译的方法执行的编译任务的数量 |
Size | 最近编译的方法的字节码的字节数 |
Type | 最近编译的方法的编译类型 |
Method | 标识最近编译的方法的类名和方法名 |
本文参考jdk官方文档, 基于JDK8的, 不同的jdk版本可能会有一些差异
官网地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html