JAVA命令(五) : jstat

1、功能

     jstat命令可以查看堆内存各部分的使用量,以及加载类的数量。

2、位置

 jstat 命令位于$JAVA_HOME/bin目录下

 3、用法

命令的格式如下:

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

参数解释:

-Options  选项,我们一般使用 -gcutil 查看gc情况

-t 可以在打印的列加上Timestamp列,用于显示系统运行的时间

-h 可以在周期性数据数据的时候,可以在指定输出多少行以后输出一次表

 vmid     VM的进程号,即当前运行的java进程号

interval   间隔时间,单位为秒或者毫秒

count    打印次数,如果缺省则打印无数次

 

 Options 

  • -class 用于查看类加载情况的统计,显示加载class的数量,及所占空间等信息
  • -compiler  查看HotSpot中即时编译器编译情况的统计
  • -gc  查看JVM中堆的垃圾收集情况的统计
  • -gccapacity  显示各个代的容量以及使用情况
  • -gccause 查看垃圾收集的统计情况(这个和-gcutil选项一样),如果有发生垃圾收集,它还会显示最后一次及当前正在发生垃圾收集的原因
  • -gcmetacapacity 显示关于metaspace大小的统计信息。
  • -gcnew 查看新生代垃圾收集的情况,new对象的信息
  • -gcnewcapacity 用于查看新生代的存储容量情况,new对象的信息及其占用量
  • -gcold 用于查看老生代及持久代发生GC的情况,old对象的信息
  • -gcoldcapacity 用于查看老生代的容量,old对象的信息及其占用量
  • -gcutil  查看新生代、老生代及持代垃圾收集的情况
  • -printcompilation 当前VM执行的信息

3.1 类加载统计

jstat  -class -t -h10 1626 1000

  •  Loaded:加载class的数量
  • Bytes:所占用空间大小
  • Unloaded:未加载数量
  • Bytes:未加载占用空间
  • Time:时间

3.2 编译统计

  jstat -compiler -h10 1626 1000

  •  Compiled:编译数量
  • Failed:失败数量
  • Invalid:不可用数量
  • Time:时间
  • FailedType:失败类型
  • FailedMethod:失败的方法

3.3 垃圾回收情况统计

    jstat -gc -h10 1626 1000

  •  S0C:第一个幸存区的大小
  • S1C:第二个幸存区的大小
  • S0U:第一个幸存区的使用大小
  • S1U:第二个幸存区的使用大小
  • EC:伊甸园区的大小
  • EU:伊甸园区的使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • MC:方法区大小
  • MU:方法区使用大小
  • CCSC:压缩类空间大小
  • CCSU:压缩类空间使用大小
  • YGC:Young GC 的次数
  • YGCT:Young GC 所用的时间(单位秒)
  • FGC:发生 Full GC 的次数
  • FGCT:Full GC 所用的时间(单位秒)
  • GCT:垃圾回收的总时间(单位秒)
3.4 堆内存统计
 jstat -gccapacity -h10 1626 1000
  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:当前新生代容量
  • S0C:第一个幸存区大小
  • S1C:第二个幸存区的大小
  • EC:伊甸园区的大小
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:当前老年代大小
  • OC:当前老年代大小
  • MCMN:最小元数据容量
  • MCMX:最大元数据容量
  • MC:当前元数据空间大小
  • CCSMN:最小压缩类空间大小
  • CCSMX:最大压缩类空间大小
  • CCSC:当前压缩类空间大小
  • YGC:Young GC 的次数
  • FGC:发生 Full GC 的次数
3.5 新生代垃圾回收统计
jstat -gcnew -h10 1626 1000
  • S0C:第一个幸存区大小
  • S1C:第二个幸存区的大小
  • S0U:第一个幸存区的使用大小
  • S1U:第二个幸存区的使用大小
  • TT:对象在新生代存活的次数
  • MTT:对象在新生代存活的最大次数
  • DSS:期望的幸存区大小
  • EC:伊甸园区的大小
  • EU:伊甸园区的使用大小
  • YGC:Young GC 的次数
  • YGCT:Young GC 所用的时间(单位秒)
3.6 新生代内存统计
jstat -gcnewcapacity -h10 1626 1000
  • NGCMN:新生代最小容量
  • NGCMX:新生代最大容量
  • NGC:当前新生代容量
  • S0CMX:最大幸存1区大小
  • S0C:当前幸存1区大小
  • S1CMX:最大幸存2区大小
  • S1C:当前幸存2区大小
  • ECMX:最大伊甸园区大小
  • EC:当前伊甸园区大小
  • YGC:Young GC 的次数
  • FGC:发生 Full GC 的次数
3.7 老年代垃圾回收统计
jstat -gcold -h10 1626 1000
  • MC:方法区大小
  • MU:方法区使用大小
  • CCSC:压缩类空间大小
  • CCSU:压缩类空间使用大小
  • OC:老年代大小
  • OU:老年代使用大小
  • YGC:Young GC 的次数
  • FGC:发生 Full GC 的次数
  • FGCT:Full GC 所用的时间(单位秒)
  • GCT:垃圾回收的总时间(单位秒)
3.8 老年代内存统计
jstat -gcoldcapacity -h10 1626 1000
  • OGCMN:老年代最小容量
  • OGCMX:老年代最大容量
  • OGC:当前老年代大小
  • OC:老年代大小
  • YGC:Young GC 的次数
  • FGC:发生 Full GC 的次数
  • FGCT:Full GC 所用的时间(单位秒)
  • GCT:垃圾回收的总时间(单位秒)
3.9 垃圾回收占比情况统计
 jstat -gcutil -h10 1626 1000
  • S0:幸存1区当前使用比例
  • S1:幸存2区当前使用比例
  • E:伊甸园区使用比例
  • O:老年代使用比例
  • M:元数据区使用比例
  • CCS:压缩使用比例
  • YGC:Young GC 的次数
  • YGCT:Young GC 所用的时间(单位秒)
  • FGC:发生 Full GC 的次数
  • FGCT:Full GC 所用的时间(单位秒)
  • GCT:垃圾回收的总时间(单位秒)

3.10 元数据空间使用统计

jstat -gcmetacapacity -h10 1626 1000

  • MCMN: 最小元数据容量
  • MCMX:最大元数据容量
  • MC:当前元数据空间大小
  • CCSMN:最小压缩类空间大小
  • CCSMX:最大压缩类空间大小
  • CCSC:当前压缩类空间大小
  • YGC:Young GC 的次数
  • FGC:发生 Full GC 的次数
  • FGCT:Full GC 所用的时间(单位秒)
  • GCT:垃圾回收的总时间(单位秒)
3.11 jvm编译方法统计
jstat -printcompilation -h10 1626 1000
  • Compiled:最近编译方法的数量
  • Size:最近编译方法的字节码数量
  • Type:最近编译方法的编译类型
  • Method:方法名标识

4 参考

 https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html

posted @ 2022-02-28 23:04  huyang0726  阅读(745)  评论(0编辑  收藏  举报