jstat命令简介

jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一个可以监控Java虚拟机各种运行状态信息的命令行工具。它可以显示Java虚拟机中的类加载、内存、垃圾收集、即时编译等运行状态的信息。

jstat命令参数

命令语法:

jstat generalOptions
jstat outputOptions [-t] [-h<lines>] <vmid> [<interval> [<count>]]

命令参数说明:

  • generalOptions:通用选项,如果指定一个通用选项,就不能指定任何其他选项或参数。它包括如下两个选项:
    • -help:显示帮助信息。
    • -options:显示outputOptions参数的列表。
  • outputOptions:输出选项,指定显示某一种Java虚拟机信息。
  • -t:把时间戳列显示为输出的第一列。这个时间戳是从Java虚拟机的开始运行到现在的秒数。
  • -h n:每显示n行显示一次表头,其中n为正整数。默认值为 0,即仅在第一行数据显示一次表头。
  • vmid:虚拟机唯一ID(LVMID,Local Virtual Machine Identifier),如果查看本机就是Java进程的进程ID。
  • interval:显示信息的时间间隔,单位默认毫秒。也可以指定秒为单位,比如:1s。如果指定了该参数,jstat命令将每个这段时间显示一次统计信息。
  • count:显示数据的次数,默认值是无穷大,这将导致jstat命令一直显示统计信息,直到目标JVM终止或jstat命令终止。

输出选项

如果不指定通用选项(generalOptions),则可以指定输出选项(outputOptions)。输出选项决定jstat命令显示的内容和格式,具体如下:

  • -class:显示类加载、卸载数量、总空间和装载耗时的统计信息。
  • -compiler:显示即时编译的方法、耗时等信息。
  • -gc:显示堆各个区域内存使用和垃圾回收的统计信息。
  • -gccapacity:显示堆各个区域的容量及其对应的空间的统计信息。
  • -gcutil:显示有关垃圾收集统计信息的摘要。
  • -gccause:显示关于垃圾收集统计信息的摘要(与-gcutil相同),以及最近和当前垃圾回收的原因。
  • -gcnew:显示新生代的垃圾回收统计信息。
  • -gcnewcapacity:显示新生代的大小及其对应的空间的统计信息。
  • -gcold: 显示老年代和元空间的垃圾回收统计信息。
  • -gcoldcapacity:显示老年代的大小统计信息。
  • -gcmetacapacity:显示元空间的大小的统计信息。
  • -printcompilation:显示即时编译方法的统计信息。

jstat命令的显示输出被格式化为一个表,列用空格分隔。接下来,我来了解一下每条输出选项的列名。

-class选项

  1. Loaded:加载的类的数量。
  2. Bytes:加载的类所占用的字节数。
  3. Unloaded:卸载的类的数量。
  4. Bytes:卸载的类所占用的字节数。
  5. Time:执行类加载和卸载操作所花费的时间。

举个例子:

-compiler选项

  1. Compiled:执行的编译任务的数量。
  2. Failed:执行编译任务失败的数量。
  3. Invalid:执行编译任务失效的数量。
  4. Time:执行编译任务所花费的时间。
  5. FailedType:上次编译失败的编译类型。
  6. FailedMethod:上次编译失败的类名和方法。

举个例子:

-gc选项

  1. S0C:年轻代中第一个Survivor区的容量,单位为KB。
  2. S1C:年轻代中第二个Survivor区的容量,单位为KB。
  3. S0U:年轻代中第一个Survivor区已使用大小,单位为KB。
  4. S1U:年轻代中第二个Survivor区已使用大小,单位为KB。
  5. EC:年轻代中Eden区的容量,单位为KB。
  6. EU:年轻代中Eden区已使用大小,单位为KB。
  7. OC:老年代的容量,单位为KB。
  8. OU:老年代已使用大小,单位为KB。
  9. MC:元空间的容量,单位为KB。
  10. MU:元空间已使用大小,单位为KB。
  11. CCSC:压缩类的容量,单位为KB。
  12. CCSU:压缩类已使用大小,单位为KB。
  13. YGC:Young GC的次数。
  14. YGCT:Young GC所用的时间。
  15. FGC:Full GC的次数。
  16. FGCT:Full GC的所用的时间。
  17. GCT:GC的所用的总时间。

举个例子:

-gccapacity选项

  1. NGCMN:年轻代最小的容量,单位为KB。
  2. NGCMX:年轻代最大的容量,单位为KB。
  3. NGC:当前年轻代的容量,单位为KB。
  4. S0C:年轻代中第一个Survivor区的容量,单位为KB。
  5. S1C:年轻代中第二个Survivor区的容量,单位为KB。
  6. EC:年轻代中Eden区的容量,单位为KB。
  7. OGCMN:老年代最小的容量,单位为KB。
  8. OGCMX:老年代最大的容量,单位为KB。
  9. OGC:当前老年代的容量,单位为KB。
  10. OC:当前老年代的容量,单位为KB。
  11. MCMN:元空间最小的容量,单位为KB。
  12. MCMX:元空间最大的容量,单位为KB。
  13. MC:当前元空间的容量,单位为KB。
  14. CCSMN:压缩类最小的容量,单位为KB。
  15. CCSMX:压缩类最大的容量,单位为KB。
  16. CCSC:当前压缩类的容量,单位为KB。
  17. YGC:Young GC的次数。
  18. FGC:Full GC的次数。

举个例子:

-gcutil选项

  1. S0:年轻代中第一个Survivor区使用大小占当前容量的百分比。
  2. S1:年轻代中第二个Survivor区使用大小占当前容量的百分比。
  3. E:Eden区使用大小占当前容量的百分比。
  4. O:老年代使用大小占当前容量的百分比。
  5. M:元空间使用大小占当前容量的百分比。
  6. CCS:压缩类使用大小占当前容量的百分比。
  7. YGC:Young GC的次数。
  8. YGCT:Young GC所用的时间。
  9. FGC:Full GC的次数。
  10. FGCT:Full GC的所用的时间。
  11. GCT:GC的所用的总时间。

举个例子:

-gccause选项

  1. S0:年轻代中第一个Survivor区使用大小占当前容量的百分比。
  2. S1:年轻代中第二个Survivor区使用大小占当前容量的百分比。
  3. E:Eden区使用大小占当前容量的百分比。
  4. O:老年代使用大小占当前容量的百分比。
  5. M:元空间使用大小占当前容量的百分比。
  6. CCS:压缩类使用大小占当前容量的百分比。
  7. YGC:Young GC的次数。
  8. YGCT:Young GC所用的时间。
  9. FGC:Full GC的次数。
  10. FGCT:Full GC的所用的时间。
  11. GCT:GC的所用的总时间。
  12. LGCC:上次垃圾回收的原因。
  13. GCC:当前垃圾回收的原因。

举个例子:

-gcnew选项

  1. S0C:年轻代中第一个Survivor区的容量,单位为KB。
  2. S1C:年轻代中第二个Survivor区的容量,单位为KB。
  3. S0U:年轻代中第一个Survivor区已使用大小,单位为KB。
  4. S1U:年轻代中第二个Survivor区已使用大小,单位为KB。
  5. TT:对象在年轻代存活的次数。
  6. MTT:对象在年轻代存活的最大次数
  7. DSS:期望的Survivor区大小,单位为KB。
  8. EC:年轻代中Eden区的容量,单位为KB。
  9. EU:年轻代中Eden区已使用大小,单位为KB。
  10. YGC:Young GC的次数。
  11. YGCT:Young GC所用的时间。

举个例子:

-gcnewcapacity选项

  1. NGCMN:年轻代最小的容量,单位为KB。
  2. NGCMX:年轻代最大的容量,单位为KB。
  3. NGC:当前年轻代的容量,单位为KB。
  4. S0CMX:年轻代中第一个Survivor区最大的容量,单位为KB。
  5. S0C:年轻代中第一个Survivor区的容量,单位为KB。
  6. S1CMX:年轻代中第二个Survivor区最大的容量,单位为KB。
  7. S1C:年轻代中第二个Survivor区的容量,单位为KB。
  8. ECMX:年轻代中Eden区最大的容量,单位为KB。
  9. EC:年轻代中Eden区的容量,单位为KB。
  10. YGC:Young GC的次数。
  11. FGC:Full GC的次数。

举个例子:

-gcold选项

  1. MC:元空间的容量,单位为KB。
  2. MU:元空间已使用大小,单位为KB。
  3. CCSC:压缩类的容量,单位为KB。
  4. CCSU:压缩类已使用大小,单位为KB。
  5. OC:老年代的容量,单位为KB。
  6. OU:老年代已使用大小,单位为KB。
  7. YGC:Young GC的次数。
  8. FGC:Full GC的次数。
  9. FGCT:Full GC的所用的时间。
  10. GCT:GC的所用的总时间。

举个例子:

-gcoldcapacity选项

  1. OGCMN:老年代最小的容量,单位为KB。
  2. OGCMX:老年代最大的容量,单位为KB。
  3. OGC:当前老年代的容量,单位为KB。
  4. OC:当前老年代的容量,单位为KB。
  5. YGC:Young GC的次数。
  6. FGC:Full GC的次数。
  7. FGCT:Full GC的所用的时间。
  8. GCT:GC的所用的总时间。

举个例子:

-gcmetacapacity选项

  1. MCMN:元空间最小的容量,单位为KB。
  2. MCMX:元空间最大的容量,单位为KB。
  3. MC:当前元空间的容量,单位为KB。
  4. CCSMN:压缩类最小的容量,单位为KB。
  5. CCSMX:压缩类最大的容量,单位为KB。
  6. YGC:Young GC的次数。
  7. FGC:Full GC的次数。
  8. FGCT:Full GC的所用的时间。
  9. GCT:GC的所用的总时间。

举个例子:

-printcompilation选项

Compiled:最近编译方法执行的编译任务的数量。

Size:最近编译方法的字节码的字节数。

Type:最近编译方法的编译类型。

Method:最近编译方法的类名和方法名。

举个例子:

最后,谢谢你这么帅,还给我点赞关注

微信公众号:万猫学社

微信扫描二维码

关注后回复「电子书」

获取12本Java必读技术书籍

Java的jstat命令使用详解的更多相关文章

  1. Java的jinfo命令使用详解

    jinfo命令简介 jinfo(Java Virtual Machine Configuration Information)是JDK提供的一个可以实时查看Java虚拟机各种配置参数和系统属性的命令行 ...

  2. Java的jmap命令使用详解

    jmap命令简介 jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具.除此以外,jmap命令还可以查 ...

  3. Java的jstack命令使用详解

    jstack命令简介 jstack(Java Virtual Machine Stack Trace)是JDK提供的一个可以生成Java虚拟机当前时刻的线程快照信息的命令行工具.线程快照一般被称为th ...

  4. JAVA命令参数详解

    JAVA命令参数详解 JAVA命令详解 结构 说明 Java 和 OldJava JIT 选项 另请参阅 结构 java [ options ] class [ argument ... ] java ...

  5. JAVA 命令参数详解System.setProperty(

    JAVA 命令参数详解: 1.-D<name>=<value> set a system property  设置系统属性. java -D参数简化加入多个jar java命令 ...

  6. Java开发利器Myeclipse全面详解

    Java开发利器Myeclipse全面详解: Ctrl+1:修改代码错误 Alt+Shift+S:Source命令 Ctrl+7:单行注释 Ctrl+Shift+/ :多行注释 Ctrl+I :缩进( ...

  7. Java中的main()方法详解

    在Java中,main()方法是Java应用程序的入口方法,也就是说,程序在运行的时候,第一个执行的方法就是main()方法,这个方法和其他的方法有很大的不同,比如方法的名字必须是main,方法必须是 ...

  8. Java虚拟机之垃圾回收详解一

    Java虚拟机之垃圾回收详解一 Java技术和JVM(Java虚拟机) 一.Java技术概述: Java是一门编程语言,是一种计算平台,是SUN公司于1995年首次发布.它是Java程序的技术基础,这 ...

  9. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

随机推荐

  1. java.lang.IllegalArgumentException: Failed to register servlet with name 'dispatcher'.Check if there is another servlet registered under the same name

    前言 一年前接手了一个项目,项目始终无法运行,不管咋样,都无法处理,最近,在一次尝试中,终于成功处理了. 含义 意思很明显了,注册了一个相同的dispatcher,可是找了很久,没有相同的Contro ...

  2. linux计划任务之cron

    目录 cron计划任务之用户级 cron计划任务之系统级 cron计划任务之用户级 1.安装crond centos7 执行命令: # yum install -y crontabs /bin/sys ...

  3. UIPickView的基本使用

    UIPickView和TableView一样,想要展示数据也要设置数据源和代理设置数据源self.pickView.dataSource = self;设置代理self.pickView.delega ...

  4. iOS开发笔记,简单实现视频音频的边下边播

    总是在网上看别人的博文,受益匪浅,从没自己写过,今天分享一点小经验,第一次写技术博客,希望对同行的ios猿们有所帮助.   先介绍一下自己的情况:一年ios开发,http协议不太懂,大约知道断点下载h ...

  5. 关于final关键字

    final修饰基本数据类型时 修饰的变量值不可变 final修饰引用数据类型时 修饰的变量地址不可变 值可变 final修饰一个类中的方法时 不可被子类重写 final修饰一个类时 不可被其他类继承 ...

  6. k8s之yaml文件详解

    k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...

  7. 注解的使用、拦截器使用、AOP切面使用

    Java 自定义注解及使用场景 转载: https://www.jianshu.com/p/a7bedc771204 Java自定义注解一般使用场景为:自定义注解+拦截器或者AOP,使用自定义注解来自 ...

  8. LVS调度算法总结

    LVS 调试算法分为两种:静态方法和动态方法. 静态方法 RR:轮询 WRR:加权轮询 SH:源地址哈希,将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定 DH:目标地址哈希,第 ...

  9. termux vim 配置 自动补全 遇到的问题

    // 自动不全需要安装 pkg install proot -y // 用proot可以为手机没有root的用户来模拟一个root的环境,这里主要是经典的 Linux 文件系统布局上的模拟. //执行 ...

  10. 在Linux中设置php变量的方法

    默认情况下已经安装好了PHP环境,并且知道安装好后的PHP文件路径,然后可以通过以下的方式设置PHP变量,快速执行PHP命令运行PHP文件. 环境:centos 第一步:vi ~/.bash_prof ...