jstat虚拟机统计信息监控工具

jstat虚拟机统计信息监控工具

1、jstat(JVM Statistics Monitorning Tool)

用于监控虚拟机各种运行状态信息的命令行工具。

它可以显示本地或远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据,它是运行期定位虚拟机

性能问题的首选工具。

jstat命令中的参数 intervalcount 代表查询间隔和次数,如果省略这两个参数,说明只查询一次。假设需要

每250毫秒查询一次进程2764垃圾收集的情况,一共查询20次,那么命令应该是:jstat -gc 2764 250 20

2、主要选项

选项 作用
-class 监视类装载、卸载数量、总空间及类装载所耗费的时间
-gc 监视Java堆状况,包括Eden区、2个Survivor区、老年代、永久代等容量、已用空间、GC合计时间等信息
-gccapacity 监视内容与-gc基本相同,但输出主要关注java堆各区域使用到的最大和最小空间
-gcutil 监控内容与-gc基本相同,但输出主要关注已使用空间占总空间的百分比
-gccause 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因
-gcnew 监视新生代GC的状况
-gcnewcapacity 监视内容与-gcnew基本相同,输出主要关注使用到的最大和最小空间
-gcold 监视老年代GC的状况
-gcoldcapacity 监视内容与-gcold基本相同,输出主要关注使用到的最大和最小空间
-gcmetacapacity 输出永久代使用到的最大和最小空间
-compiler 输出JIT编译器编译过的方法、耗时等信息
-printcompilation 输出已被JIT编译的方法

2.1 统计加载类的信息

命令:jstat -class pid

在这里插入图片描述

在这里插入图片描述

列名 说明
Loaded 装载的类的数量
Bytes 装载类所占用的字节数
Unloaded 卸载类的数量
Bytes 卸载类所占用的字节数
Time 装载类和卸载类所耗费的时间(毫秒)

2.2 编译统计

命令:jstat -compiler pid

在这里插入图片描述

列名 说明
Compiled 编译任务执行数量
Failed 编译任务执行失败的数量
Invalid 编译任务失效的数量
Time 编译总耗时(毫秒)
FailedType 最后一个编译失败任务的类型
FailedMethod 最后一个编译失败任务所在的类及方法

2.3 垃圾回收统计

命令:jstat -gc pid

在这里插入图片描述

列名 说明
S0C 年轻代中第一个survior(幸存区)的容量(kb)
S1C 年轻代中第二个survior(幸存区)的容量(kb)
S0U 年轻代中第一个survior(幸存区)目前已使用的容量(kb)
S1U 年轻代中第二个survior(幸存区)目前已使用的容量(kb)
EC eden区的容量(kb)
EU eden区目前已使用的容量(kb)
OC 老年代的容量(kb)
OU 老年目前已使用的容量(kb)
MC 方法区的容量(kb)
MU 方法区目前已使用的容量(kb)
CCSC 压缩类空间的容量(kb)
CCSU 压缩类空间目前已使用的容量(kb)
YGC 从应用程序启动到采集时年轻代中gc次数
YGCT 从应用程序启动到采集时年轻代中gc所用时间(秒)
FGC 从应用程序启动到采集时老年代中gc次数
FGCT 从应用程序启动到采集时老年代gc所用的时间(秒)
GCT 从应用程序启动到采集时gc所用的总时间(秒)

2.4 统计gc信息

命令:jstat -gcutil pid

在这里插入图片描述

列名 说明
S0 年轻代中第一个(survisor)幸存区已使用的容量占比
S1 年轻代中第二个(survisor)幸存区已使用的容量占比
E 伊旬园(eden)区已使用的容量占比
O 老年代区已使用的容量占比
M 元数据区已使用的占当前容量百分比
CCS 压缩类空间使用的占当前容量百分比
YGC 年轻代到目前gc次数
YGCT 年轻代到目前gc耗费的总时间(秒)
FGC 老年代目前gc次数
FGCT 老年代目前gc耗费的总时间(秒)
GCT 从应用程序到目前gc总耗时(秒)

2.5 堆内存统计

命令:jstat -gccapacity pid

在这里插入图片描述

列名 说明
NGCMN 年轻代(young)中初始化(最小)的大小(kb)
NGCMX 年轻代(young)中初始化(最大)的大小(kb)
NGC 年轻代(young)中当前的容量(kb)
S0C 年轻代中第一个(survisor)幸存区的容量(kb)
S1C 年轻代中第二个(survisor)幸存区的容量(kb)
EC 年轻代中(Eden)伊旬园的容量(kb)
OGCMN 老年代(old)中初始化(最小)的容量(kb)
OGCMX 老年代(old)中初始化(最大)的容量(kb)
OGC 当前老年代的大小(kb)
OC 当前老年代的大小(kb)
MCMN 最小元数据容量(kb)
MCMX 最大元数据容量(kb)
MC 当前元数据空间大小(kb)
CCSMN 最小压缩类空间大小(kb)
CCSMX 最大压缩类空间大小(kb)
CCSC 当前压缩类空间大小(kb)
YGC 从应用程序启动到采集时年轻代gc的次数
FGC 从应用程序启动带采集时老年代gc的次数

2.6 新生代垃圾回收统计

命令:jstat -gcnew pid

在这里插入图片描述

列名 说明
S0C 年轻代中第一个(survisor)幸存区的容量(kb)
S1C 年轻代中第二个(survisor)幸存区的容量(kb)
S0U 年轻代中第一个(survisor)幸存区目前已使用的容量(kb)
S1U 年轻代中第二个(survisor)幸存区目前已使用的容量(kb)
TT 对象在新生代中存活的次数
MTT 对象在新生代中存活的最大次数
DSS 当前需要survivor(幸存区)的容量 (kb)
EC 伊旬园(eden)区的大小(kb)
EU 伊旬园(eden)区已使用的大小(kb)
YGC 到目前年轻代gc的次数
YGCT 到目前年轻代gc所耗费的时间(秒)

2.7 新生代内存统计

命令:jstat -gcnewcapacity pid

在这里插入图片描述

列名 说明
MGCMN 年轻代中初始化最小容量(kb)
MGCMX 年轻代中初始化最大容量(kb)
NGC 年轻代当前容量(kb)
S0CMX 年轻代第一个幸存区(survisor)最大容量(kb)
S0C 年轻代第一个幸存区(survisor)当前容量(kb)
S1CMX 年轻代第二个幸存区(survisor)最大容量(kb)
S1C 年轻代第二个幸存区(survisor)当前容量(kb)
ECMX 年轻代伊旬园区(Eden)最大容量(kb)
EC 年轻代伊旬园区(Eden)当前容量(kb)
YGC 截止到目前年轻代gc次数
FGC 截止到目前老年代gc次数

2.8 老年代垃圾回收统计

命令:jstat -gcold pid

在这里插入图片描述

列名 说明
MC 方法区大小(kb)
MU 方法区使用大小(kb)
CCSC 压缩类空间大小
CCSU 压缩类空间使用大小
OC 老年代容量(kb)
OU 老年代已使用容量(kb)
YGC 年轻代gc次数
FGC 老年代gc次数
FGCT 老年代gc时消耗时间
GCT 截止到目前gc耗费的总时间(秒)

2.9 老年代内存统计

命令:jstat -gcoldcapacity pid

在这里插入图片描述

列名 说明
OGCMN 老年代最小容量(kb)
OGCMX 老年代最大容量(kb)
OGC 老年代目前生成的容量(kb)
OC 老年代目前容量(kb)
YGC 截止到目前年轻代gc次数
FGC 截止到目前老年代gc次数
FGCT 截止到目前老年代gc耗费的总时间(秒)
GCT 截止到目前gc耗费的总时间(秒)

2.10 永久代内存统计

命令:jstat -gcmetacapacity pid

在这里插入图片描述

列名 说明
MCMN 最小元数据容量(kb)
MCMX 最大元数据容量(kb)
MC 当前元数据空间大小
CCSMN 最小压缩类空间大小
CCSMX 最大压缩类空间大小
CCSC 当前压缩类空间大小(kb)
YGC 截止目前年轻代gc次数
FGC 截止目前老年代gc次数
FGCT 截止目前年轻代gc耗费的总时间(秒)
GCT 截止目前老年代gc耗费的总时间(秒)

2.11 最近二次gc统计

命令:gstat -gccause pid

在这里插入图片描述

列名 说明
S0 年轻代中第一个(survisor)幸存区已使用的容量占比
S1 年轻代中第二个(survisor)幸存区已使用的容量占比
E 伊旬园(eden)区已使用的容量占比
O 老年代区已使用的容量占比
M 元数据区已使用的占当前容量百分比
CCS 压缩类空间使用的占当前容量百分比
YGC 年轻代到目前gc次数
YGCT 年轻代到目前gc耗费的总时间(秒)
FGC 老年代目前gc次数
FGCT 老年代目前gc耗费的总时间(秒)
GCT 从应用程序到目前gc总耗时(秒)
LGCC 最近垃圾回收的原因
GCC 当前垃圾回收的原因

2.12 JVM编译方法统计

命令:jstat -printcompilation pid

在这里插入图片描述

列名 说明
Compiled 最近编译方法的数量
Size 最近编译方法的字节码数量
Type 最近编译方法的编译类型
Method 方法名标识

你可能感兴趣的:(java,java)