jstat 监控工具使用说明

2018年02月12日

说明

jstat (Java Virtual Machine (JVM) statistics) 是用来监控JVM的工具

概要

使用: jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]

  • generalOption 表示一个整体命令(-class,-gc,-gcold等),表示要监控的是什么数据(-class收集类加载器信息,-gc收集垃圾回收相关信息), 可使用的命令列表可使用 jstat -options进程查看
  • outputOptions 输出信息选项,目前支持:
    • -t:显示JVM时间戳,表示的是JVM启动后运行的时间,单位是秒
    • -h:设置每多少次信息输出之后,就再输出一次每一列的列名
    • -J:用来设置java参数的,例如 -J-Xms48m 表示设置启动内存为48M
  • vmid 虚拟机地址,如果在本机的话,就是 JVM 进程id,远端则使用 [protocol:][//]lvmid[@hostname[:port]/servername] 进行连接
  • interval[s ms] 表示统计间隔时间,不加单位默认ms
  • count 统计次数

interval 和 count 都不加,则只统计一次,加 interval,不加 count,则无限次统计

例子

以下例子都是使用 30443 这个进程

-class

类加载统计

  • Loaded:加载的类个数
  • Bytes:占用的字节数(KBs)
  • Unloaded: 卸载的类个数
  • Bytes: 卸载的类的字节数(KBs)
  • times: 执行加载类和卸载类所花费的时间

-compiler

HotSpot虚拟机JIT(just-in-time)编译统计

  • Compiled: 执行的编译任务数
  • Failed: 执行失败的编译任务数
  • Invalid: 已失效的编译任务数
  • FailedType: 最后一次失败的编译任务类型
  • FailedMethod: 最后一次编译失败的类名和方法名

-gc

垃圾收集堆信息统计,以下大小单位都是KB

  • S0C: 0号survivor区大小
  • S1C: 1号survivor区大小
  • S0U: 0号survivor区已使用空间大小
  • S1U: 1号survivor区已使用空间大小
  • EC: eden区域大小
  • EU: eden区域已使用空间大小
  • OC: old老年代区域空间大小
  • OU: old老年代区域已使用空间大小
  • MC: Metaspace元数据空间大小
  • MU: Metaspace元数据已使用空间大小
  • CCSC(Compressed class space capacity): 压缩类空间的大小
  • CCSU: 压缩类空间已使用的大小
  • YGC: young GC 发生次数
  • YGCT: young GC 所花费的总时间
  • FGC: full GC 发生次数
  • FGCT: full GC 所花费的总时间
  • GCT: GC所花费的总时间

-gccapacity

内存池各个代(新生代,老年代)空间大小统计信息,单位kB

  • NGCMN: 新生代空间最小值.
  • NGCMX: 新生代空间最大值 .
  • NGC: 当前新生代大小 .
  • S0C: 当前0号Surviver区大小.
  • S1C: 当前1号Surviver区大小.
  • EC: 当前Eden区域大小
  • OGCMN: 老年代空间最小值
  • OGCMX: 老年代空间最大值
  • OGC: 当前老年代大小
  • OC: 当前老年代大小
  • MCMN: metaspace元数据空间最小值
  • MCMX: metaspace元数据空间最大值
  • MC: Metaspace元数据空间当前大小
  • CCSMN: 压缩类空间的最小值
  • CCSMX: 压缩类空间的最大值
  • CCSC: 压缩类空间的当前大小
  • YGC: young GC 发生次数
  • FGC: full GC 发生次数

-gcutil

垃圾收集统计信息摘要

  • S0: 0号Survivor当前已使用的百分比
  • S1: 1号Survivor当前已使用的百分比
  • E: Eden区域使用百分比
  • O: 老年代使用百分比
  • M: Metaspace元数据使用百分比
  • CCS: 压缩类使用空间百分比
  • YGC: young GC 发生次数
  • YGCT: young GC 所花费的时间
  • FGC: full GC 发生次数
  • FGCT: Full gc 所花费的时间
  • GCT: GC的总时间

其他选项的使用

可参考 man jstat 的说明.