转载

【深入浅出-JVM】(44):jstat 命令

jstat (Java Virtual Machine Statistics monitoring tool) 统计监控工具

命令

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

option 选项

  • class
    显示classLoader 相关信息
  • compiler
    显示 JIT 编译相关信息
  • gc
    显示与 GC 相关堆信息
  • gccapacity
    显示各个代的容量以及使用情况
  • gccause
    显示垃圾收集相关信息,最后一次垃圾回收的原因
  • gcnew
    显示新生代信息
  • gcnewcapacity
    显示新生代使用情况
  • gcold
    显示老年代和永久的信息
  • gcoldcapacity
    显示老年代的大小
  • gcpermcapactiy
    显示永久代的大小
  • gcutil
    显示垃圾收集信息
  • printcompilation
    输出 JIT 编译的方法信息

    -t

    参数可以在输出信息前面加上一个 Timestamp 列,显示程序运行的时间

-h

参数可以周期数据输出时,输出多少行后,跟着输出一个表头信息

interval

指定输出统计数据的周期,单位毫秒

count

一共输出多少次数据

例子

1.每秒统一次classloader信息,一共输出 2 次

jstat -class
【深入浅出-JVM】(44):jstat 命令

装载了 391 个类,大小 815.2个字节,卸载了 0 个类,大小 0 个字节,装载和卸载耗费时间总时间 0.04秒

2.显示VM实时编译的数量

jstat -compiler
【深入浅出-JVM】(44):jstat 命令

编译任务执行了 18 个,失败了 0 个,失效了 0 个,编译耗费 0.02 秒,最后一个编译失败任务的类型为 0 ,最后一个编译失败任务所在的方法

3.显示 GC 堆相关信息

jstat -gc
【深入浅出-JVM】(44):jstat 命令
  • S0C
    年轻代中第一个 S 区容量(字节)
  • S1C
    年轻代中第二个 S 区容量(字节)
  • S0U
    年轻代中第一个 S 区已使用的空间(字节)
  • S1U
    年轻代中第二个 S 区已使用的空间(字节)
  • EC
    年轻代中 E 区容量(字节)
  • EU
    年轻代中 E 区使用空间(字节)
  • OC
    old代的容量
  • OU
    old代已使用空间
  • MC
    metaspace元空间容量
    -MU
    metaspace元空间已使用容量
  • YGC
    应用程序启动到采样时年轻代中 GC 次数
  • YGCT
    应用程序启动到采样时年轻代中 GC所用时间
  • FGC
    应用程序启动到采样老年代 GC 次数(秒)
  • FGCT
    应用程序启动到采样老年代 GC 所用时间(秒)
  • GCT
    应用程序从启动到采样 GC 所用总时间(秒)

4.显示对象使用和占用大小

jstat -gccapacity
【深入浅出-JVM】(44):jstat 命令
  • NGCMN
    年轻代中初始化大小(字节)
  • NGCMX
    年轻代中最大容量(字节)
  • NGC
    当前年轻代容量(字节)
  • S0C
    年轻代中第一个 S 区容量
  • S1C
    年轻代中第二个 S 区容量
  • EC
    E 区容量
  • OGCMN
    老年代初始大小
  • OGCMX
    老年代最大容量
  • OGC
    老年代当前新生成的容量
  • OC
    老年代容量
  • MCMN
    metaspace 元空间初始大小
  • MCMX
    metaspace 元空间最大容量
  • MC
    metaspace 元空间新生成的容量
  • CCSMN
    最小压缩类空间大小
  • CCSC
    当前压缩类空间大小
  • YGC
    从应用启动到采样年轻代中 GC 次数
  • FGC
    从应用启动到采样老年代中 GC 次数

5.metaspace 中对象的信息

jstat -gcmetacapacity
【深入浅出-JVM】(44):jstat 命令
  • MCMN
    最小元数据容量
  • MCMX
    最大元数据容量
  • MC
    当前元数据空间大小
  • CCSMN
    最小压缩类空间大小
  • CCSMX
    最大压缩类空间大小
  • CCSC
    当前压缩类空间大小
  • YGC
    从应用程序启动到采样 YGC 次数
  • FGC
    从应用程序启动到采样 FULL GC 次数
  • FGCT
    从应用程序到采样 FULL GC 所用时间
  • GCT
    从应用程序到采样 GC 总时间

6.年轻代对象信息

jstat -gcnew
【深入浅出-JVM】(44):jstat 命令
  • S0C
    年轻代中第一个 S 区容量
  • S1C
    年轻代中第二个 S 区容量
  • S0U
    年轻代中第一个 S 区已使用容量
  • S1U
    年轻代中第二个 S 区已使用容量
  • TT
    持有次数限制
  • MTT
    最大持有次数限制
  • DSS
    期望的S 区大小
  • EC
    年轻代中 E 区大小
  • EU
    年轻代中E 区已使用大小
  • YGC
    从应用程序启动到采样 YGC 次数
  • YGCT
    从应用程序启动到采样 YGC所用时间

7.年轻代对象信息以及占用量

jstat -gcnewcapacity
【深入浅出-JVM】(44):jstat 命令
  • NGCMN
    年轻代初始化大小
  • NGCMX
    年轻代最大容量
  • NGC
    年轻代中当前容量
  • S0CMX
    S0最大的容量
  • S0C
    当前 S0 大小
  • S1CM
    S1 最大容量
  • S1C
    当前 S1大小
  • ECMX
    E 区最大容量
  • EC
    E 区当前大小
  • YGC
    从应用程序启动到采样 YGC 次数
  • FGC
    从应用程序启动到采样 FGC 次数

8.老年代对象信息

jstat -gcold
【深入浅出-JVM】(44):jstat 命令
  • MC
    metaspace 元空间最大容量
  • MU
    metaspace 元空间当前大小
  • CCSC
    压缩类空间大小
  • CCSU
    压缩类空间当前使用大小
  • OC
    老年代容量
  • OU
    老年代已使用大小
  • YGC
    从应用程序启动到采样YGC 次数
  • FGC
    从应用程序启动到采样 FGC 次数
  • FGCT
    从应用程序启动到采样 FGC 耗费总时间
  • GCT
    从应用程序启动到采样 GC 耗费总时间

9.老年代对象占用情况

jstat -gcoldcapacity
【深入浅出-JVM】(44):jstat 命令
  • OGCMN
    老年代初始化大小
  • OGCMX
    老年代最大容量
  • OGC
    老年代当前使用大小
  • OC
    老年代容量

10.统计 GC 情况

jstat -gcutil
【深入浅出-JVM】(44):jstat 命令
  • S0

    S0区占用比

    其他类似

11.显示 GC 导致的原因,同 - gcutil

jstat -gccause
【深入浅出-JVM】(44):jstat 命令
  • LGCC
    上一次 GC 原因
  • GCC
    当前 GC 原因

12.VM 执行的信息

jstat -printcompilation
【深入浅出-JVM】(44):jstat 命令
  • compiled
    编译任务的数目
  • size
    方法生成的字节码大小
  • type
    编译类型
  • method
    类名和方法名
原文  http://mousycoder.com/thinking-in-jvm/44/
正文到此结束
Loading...