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. SSH 密钥登录

    一.什么是SSH? 简单说,SSH是一种网络协议,用于计算机之间的加密登录. 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会 ...

  2. 为什么重写hashCode()和equals()方法

    原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11477229.html 这两个方法可能大多数新手都没重写过,为什么要重写更是不知道了,所以这里 ...

  3. 云端iclound使用-陈棚

    使用NSmetadataQuery查询文档,增加,删除,编辑 界面设计完成后效果如图: 程序清单:FKDiary.h @interface FKDiary : UIDocument @property ...

  4. 红色小圆点+数字的badge自定义小方法 by Nicky.Tsui

    效果如图. 实现方法比较简单,在view上增加一个label label设置: 1 badgeLabel = [[UILabel alloc]initWithFrame:CGRectMake(CGRe ...

  5. Solution Set - 神奇 NOIP 模拟赛

    \[\mathfrak{\text{Defining }\LaTeX\text{ macros...}}\newcommand{\vct}[1]{\boldsymbol{#1}}\newcommand ...

  6. Solution -「CF 510E」Fox And Dinner

    \(\mathcal{Description}\)   Link.   给定正整数集合 \(\{a_n\}\),求一种把这些数放置在任意多个圆环上的方案,使得每个环的大小大于 \(2\) 且环上相邻两 ...

  7. 书写高质量sql的一些建议

    It's better to light a candle than to curse the darkness 老生常谈的不要使用select * 如果硬要使用select *,那么就请忍受一下以下 ...

  8. Spring Boot Starter 理解

    个人理解 快速集成,快速基础配置. 参考 深入springboot原理--一步步分析springboot启动机制(starter机制) 深入springboot原理--动手封装一个starter

  9. springboot页面国际化

    引入依赖pom.xml <dependency> <groupId>org.springframework.boot</groupId> <artifactI ...

  10. Consul学习笔记(详细)

    常见的注册中心: Netflix Eureka Alibaba Nacos HashiCorp Consul Apache Zookeeper CoreOS Etcd CNCF CoreDNS 介绍 ...