JVM监控工具-jstat详解

文章目录

  • 概述
  • 参数
    • 一般参数
    • 输出参数
      • 其他参数
      • 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详解_第1张图片

输出参数

其他参数

  • -h n : 每n行展示一次列标题
  • -t : 添加一个时间戳列到第一列, 时间戳时间是从JVM启动开始计算

statOption(静态参数)

jstat命令最重要的一些参数

-class : 展示类加载信息

JVM监控工具-jstat详解_第2张图片

列名称 描述
Loaded 加载的class数量
Bytes 加载的class类大小, 单位KB
Unloaded 未加载的class数量
Bytes 未加载的class类大小, 单位KB

-compiler : 展示JVM即时编译器的一些统计信息JVM监控工具-jstat详解_第3张图片

列名称 描述
Compiled 执行的编译任务的数量
Failed 编译任务失败的数量
Invalid 无效编译任务的数量
Time 用于执行编译任务的时间, 单位s
FailedType 上次编译失败的编译类型
FailedMethod 上次编译失败的类名和方法

-gc : 展示gc信息, 主要是堆的gc信息JVM监控工具-jstat详解_第4张图片

列名称 描述
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详解_第5张图片

列名称 描述
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详解_第6张图片

列名称 描述
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详解_第7张图片
和gcutil展示信息一样, 额外增加了两列LGCC,GCC:

列名称 描述
LGCC 上次GC原因
GCC 当前GC原因

-gcnew : 展示新生代gc相关信息

JVM监控工具-jstat详解_第8张图片

列名称 描述
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详解_第9张图片

列名称 描述
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详解_第10张图片

列名称 描述
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详解_第11张图片

列名称 描述
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详解_第12张图片

列名称 描述
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详解_第13张图片

列名称 描述
Compiled 由最近编译的方法执行的编译任务的数量
Size 最近编译的方法的字节码的字节数
Type 最近编译的方法的编译类型
Method 标识最近编译的方法的类名和方法名

本文参考jdk官方文档, 基于JDK8的, 不同的jdk版本可能会有一些差异
官网地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

你可能感兴趣的:(JVM虚拟机,Java基础)