大概阅读5分钟,本教程非常实用,清晰案例展示,建议收藏
- 查询要监控的 java 进程号(pid)参考:https://javapub.blog.****.net/article/details/112383958
@[toc]
jstat简介
-
Jstat位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。
-
Jstat可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
-
jstat -class pid:显示加载class的数量,及所占空间等信息。
-
jstat -compiler pid:显示VM实时编译的数量等信息。
- jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
Jstat命令格式
jstat [optionsvmid [interval[s|ms] [count]]]
实例
命令:
jstat -gc -h3 6556 250 10
监控 gc ,每三行输出一次表头,监控的程序 pid 为 6556 ,没250ms 输出一次,一共 10 次。
返回值:
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
4096.0 5120.0 3984.0 0.0 61952.0 47543.9 173568.0 56.0 11648.0 11076.1 1408.0 1239.5 6 0.060 0 0.000 0.060
截图:
参数详细解析
详细说明使用方法,简单易懂 -class
类加载器.
Loaded: 已加载类的数量.
Bytes: 已加载的内存数量,单位:kBs
Unloaded: 已卸载类的数量.
Bytes:已卸载的内存数量,单位:kBs
Time: 类加载和卸载的总时间.
-compiler
编译器.
Compiled: 编译任务的数量
Failed: 编译任务失败的数量.
Invalid: 无效的编译任务数量
Time: 所有编译任务所花时间总和.
FailedType: 最新一次失败编译任务的类型.
FailedMethod: 最新一次失败编译任务中的类名和方法
-gc
堆内存回收
S0C: 当前幸存者区0的容量 (kB).
S1C: 当前幸存者区1的容量(kB).
S0U: 幸存者区0已用内存 (kB).
S1U: 幸存者区1已用内存 (kB).
EC: 伊甸园区容量 (kB).
EU: 伊甸园区已用内存 (kB).
OC: 当前老旧区容量 (kB).
OU: 老旧区已用内存 (kB).
MC: 元数据区容量 (kB).
MU: 元数据区已用内存 (kB).
CCSC: 类压缩区容量 (kB).
CCSU: 类压缩区已用内存 (kB).
YGC: 新生垃圾回收事件数量.
YGCT: 新生垃圾回收时间.
FGC: 垃圾回收事件总和.
FGCT: 完整的一次垃圾回收时间.
GCT: 所有的垃圾回收时间.
欢迎关注笔者公众号:JavaPub,白嫖原创电子书及实战项目