win10下jvm统计信息监控工具——jstat

码字不易,转载标明出处

目录

    • 一、简介
    • 二、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命令,监视参数与输出结果如下图:
win10下jvm统计信息监控工具——jstat_第1张图片

四、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统计信息

win10下jvm统计信息监控工具——jstat_第2张图片参考:《深入理解java虚拟机》

你可能感兴趣的:(jvm)