码字不易,转载标明出处
目录
- 一、简介
- 二、jstat格式及参数说明
- 三、jstat执行样例
- 四、jstat执行样例的监视参数与输出结果详解
- 五、每间隔1秒打印一次jvm统计信息
一、简介
jstat(JVM Statistics Monitoring Tool) 是用于监视虚拟机各种运行状态信息的命令行工具。它可以显示本地或者远程虚拟机进程中的类装载、内存、垃圾收集、JIT编译等运行数据.
二、jstat格式及参数说明
-
格式
jstat [options vmid [interval [s|ms] [count] ] ] -
格式的解释说明
参数interval 和count代表查询时间间隔和次数,如果省略这两个参数,说明只查询一次。
假设需要每250毫秒查询一次进程2764垃圾收集状况,一共查询20次,那命令应该是: jstat -gc 2764 250 20 -
参数说明
| 选项 | 作用 |
|---|---|
| -class | 监视类装载、卸载数量、总空间以及类装载所耗费的时间 |
| -gc | 监视java堆情况,包括Eden区、两个survivor区、老年代、永久代等的容量、已用空间、GC时间合计等信息 |
| -gccapacity | 监视内容与-gc相同,但是输出主要关注Java堆各个区域使用到的最大、最小空间 |
| -gcutil | 监视内容与-gc相同,但是输出主要关注已使用空间占总空间的百分比 |
| -gccause | 与-gcutil功能一样,但是会额外输出导致上一次GC产生的原因 |
| -gcnew | 监视新生代GC状况 |
| -gcnewcapacity | 监视内容与-gcnew基本相同,输出主要关注使用到的最大、最小空间 |
| -gcold | 监视老年代GC状况 |
| -gcoldcapacity | 监视内容与-gcold基本相同,输出主要关注使用到的最大、最小空间 |
| -gcpermcapacity | 输出永久代使用到的最大、最小空间 |
| -compiler | 输出JIT编译器编译过的方法、耗时等信息 |
| -printcompilation | 输出已经被JIT编译的方法 |
三、jstat执行样例
a)、定义一个测试类,并启动,如下代码:
package com.rf.designPatterns.structural;
import java.util.Scanner;
/**
- @description:
- @author: xiaozhi
- @create: 2020-06-17 10:11
*/
public class Test {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
sc.next();
}
}
b)、dos命令行执行jstat命令,监视参数与输出结果如下图:
四、jstat执行样例的监视参数与输出结果详解
- 两个Survivor区(S0、S1,表示Survivor0、Survivor1)里面都是空的。
- 新生代Eden区(E:表示Eden)使用了12.3%的空间。
- 老年代(O:表示Old)使用了0%的空间。
- 元空间(M:表示元空间,元空间的本质和永久代类似,最大的区别在于元空间并不在虚拟机中,而是使用本地内存,默认情况下,元空间的大小仅受本地内存限制)使用了17.21MB。
- YGC表示Young GC 0次
- YGCT表示Young GC Time 总耗时0秒
- FGC表示Full GC 0次
- FGCT表示Full GC Time 总耗时0秒
- GCT 表示GC Time 所有GC总耗时0秒
五、每间隔1秒打印一次jvm统计信息
参考:《深入理解java虚拟机》
