文章目录
- 概述
- 参数
-
- 一般参数
- 输出参数
-
- 其他参数
- statOption(静态参数)
-
- -class : 展示类加载信息
- -compiler : 展示JVM即时编译器的一些统计信息![在这里插入图片描述](https://img-blog.csdnimg.cn/20190218080512407.png)
- -gc : 展示gc信息, 主要是堆的gc信息![在这里插入图片描述](https://img-blog.csdnimg.cn/20190218080827976.png)
- -gccapacity : 展示各代(新生代,老年代等)的容量以及相应的空间信息![在这里插入图片描述](https://img-blog.csdnimg.cn/20190218184527994.png)
- -gcutil : 展示gc概要信息
- -gccause : 展示gc概要信息(类似于gcutil), 展示最后一次和当前gc事件的原因
- -gcnew : 展示新生代gc相关信息
- -gcnewcapacity : 展示新生代(new generation)容量及其对应空间
- -gcold : 展示老年代(old generation)以及元空间(metaspace)相关gc信息
- -gcoldcapacity : 展示老年代容量信息
- -gcmetacapacity : 展示元空间(metaspace)容量信息
- -printcompilation : 展示编译方法(JIT)相关信息
概述
监控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 : 展示参数列表
JVM监控工具-jstat详解概述参数
输出参数
其他参数
- -h n : 每n行展示一次列标题
- -t : 添加一个时间戳列到第一列, 时间戳时间是从JVM启动开始计算
statOption(静态参数)
jstat命令最重要的一些参数
-class : 展示类加载信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
Loaded | 加载的class数量 |
Bytes | 加载的class类大小, 单位KB |
Unloaded | 未加载的class数量 |
Bytes | 未加载的class类大小, 单位KB |
-compiler : 展示JVM即时编译器的一些统计信息
JVM监控工具-jstat详解概述参数
列名称 | 描述 |
Compiled | 执行的编译任务的数量 |
Failed | 编译任务失败的数量 |
Invalid | 无效编译任务的数量 |
Time | 用于执行编译任务的时间, 单位s |
FailedType | 上次编译失败的编译类型 |
FailedMethod | 上次编译失败的类名和方法 |
-gc : 展示gc信息, 主要是堆的gc信息
JVM监控工具-jstat详解概述参数
列名称 | 描述 |
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 : 展示各代(新生代,老年代等)的容量以及相应的空间信息
JVM监控工具-jstat详解概述参数
列名称 | 描述 |
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概要信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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事件的原因
JVM监控工具-jstat详解概述参数 和gcutil展示信息一样, 额外增加了两列LGCC,GCC:
列名称 | 描述 |
LGCC | 上次GC原因 |
GCC | 当前GC原因 |
-gcnew : 展示新生代gc相关信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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)容量及其对应空间
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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 : 展示老年代容量信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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)容量信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
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)相关信息
JVM监控工具-jstat详解概述参数 列名称 | 描述 |
Compiled | 由最近编译的方法执行的编译任务的数量 |
Size | 最近编译的方法的字节码的字节数 |
Type | 最近编译的方法的编译类型 |
Method | 标识最近编译的方法的类名和方法名 |
本文参考jdk官方文档, 基于JDK8的, 不同的jdk版本可能会有一些差异
官网地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html