JVM监控工具-jstat详解

概述

监控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
S0US0空间使用量, 单位KB
S1US1空间使用量, 单位KB
EC当前Eden区域容量, 单位KB
EUEden区域使用量, 单位KB
OC当前老年代容量, 单位KB
OU老年代使用量, 单位KB
MC元空间(Metaspace)容量, 单位KB
MU元空间(Metaspace)使用量, 单位KB
CCSC类指针压缩空间容量, 单位KB
CCSU类指针压缩空间容量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
YGCTYGC所消耗的时间, 单位s
FGCFull GC发生的次数
FGCTFull 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
CCSMNCCS(Compressed class space)区域最小容量, 单位KB
CCSMXCCS空间最大容量, 单位KB
CCSC当前CCS空间容量, 单位KB
YGCYoung GC(Minor GC)发生次数
FGCFull GC发生次数
-gcutil : 展示gc概要信息

在这里插入图片描述

列名称描述
S0S0(Survivor 0)空间使用百分比(相对于当前容量)
S1S1(Survivor 1)空间使用百分比(相对于当前容量)
EEden空间使用百分比(相对于当前容量)
O老年代空间使用百分比(相对于当前容量)
M元空间(Metaspace)使用百分比(相对于当前容量)
CCSCCS空间使用百分比
YGC新生代GC(Minor GC/Young GC)发生的次数
YGCTYGC所消耗的时间, 单位s
FGCFull GC发生的次数
FGCTFull GC消耗的时间, 单位s
GCT所有GC消耗的总时间, 单位s
-gccause : 展示gc概要信息(类似于gcutil), 展示最后一次和当前gc事件的原因

在这里插入图片描述
和gcutil展示信息一样, 额外增加了两列LGCC,GCC:

列名称描述
LGCC上次GC原因
GCC当前GC原因
-gcnew : 展示新生代gc相关信息

在这里插入图片描述

列名称描述
S0C当前S0(Survivor 0)空间容量, 单位KB
S1C当前S1(Survivor 1)空间容量, 单位KB
S0US0空间使用量, 单位KB
S1US1空间使用量, 单位KB
TT对象在新生代存活的次数
MTT对象在新生代存活的最大次数
DSS期望的survivor空间大小, 单位KB
EC当前Eden区域容量, 单位KB
EUEden区域使用量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
YGCTYGC所消耗的时间, 单位s
-gcnewcapacity : 展示新生代(new generation)容量及其对应空间

在这里插入图片描述

列名称描述
NGCMN新生代最小容量, 单位KB
NGCMX新生代最大容量, 单位KB
NGC当前新生代容量, 单位KB
S0CMXS0空间最大容量, 单位KB
S0C当前S0空间容量, 单位KB
S1CMXS1空间最大容量, 单位KB
S1C当前S1空间容量, 单位KB
ECMXEden空间最大容量, 单位KB
EC当前Eden空间容量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
FGCFull GC发生的次数
-gcold : 展示老年代(old generation)以及元空间(metaspace)相关gc信息

在这里插入图片描述

列名称描述
MC元空间(Metaspace)容量, 单位KB
MU元空间(Metaspace)使用量, 单位KB
CCSCCCS空间容量, 单位KB
CCSUCCS空间使用量, 单位KB
OC当前老年代容量, 单位KB
OU老年代使用量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
FGCFull GC发生的次数
FGCTFull GC消耗的时间, 单位s
GCT所有GC消耗的总时间(包含YGC和FGC), 单位s
-gcoldcapacity : 展示老年代容量信息

在这里插入图片描述

列名称描述
OGCMN老年代最小容量, 单位KB
OGCMX老年代最大容量, 单位KB
OGC当前老年代容量, 单位KB
OC当前老年代容量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
FGCFull GC发生的次数
FGCTFull GC消耗的时间, 单位s
GCT所有GC消耗的总时间(包含YGC和FGC), 单位s
-gcmetacapacity : 展示元空间(metaspace)容量信息

在这里插入图片描述

列名称描述
MCMN元空间(Metaspace)最小容量, 单位KB
MCMX元空间(Metaspace)最大容量, 单位KB
MC当前元空间(Metaspace)容量, 单位KB
CCSMNCCS空间最小容量, 单位KB
CCSMXCCS空间最大容量, 单位KB
YGC新生代GC(Minor GC/Young GC)发生的次数
FGCFull GC发生的次数
FGCTFull 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

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值