• 文章
  • 在线工具

jvm-jstat 堆监控

jstat jvm 监控
968

jstat

作用

用于 java应用程序资源加载、内存、垃圾回收 进行监控

命令格式

jstat - [-t] [-h] [ []]
option表示操作参数,vmid表示虚拟机id, interval表示刷新频率 单位为ms或s,count表示显示的最大行数

    //示例, -class表示类加载数据统计, 3886表示虚拟机进程id, 2s表示2秒刷新1次, 3表示显示的最大行数    [root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -class 3886 2s 3    Loaded  Bytes  Unloaded  Bytes     Time       10865 21719.7      203   344.4       9.13    10865 21719.7      203   344.4       9.13    10865 21719.7      203   344.4       9.13

OPTIONS可选参数

  • -help

    输出命令使用信息

    jstat -help
  • -options

    列出options可选参数

    jstat -options
  • -class

    用于列出类加载统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -class 3886     Loaded  Bytes  Unloaded  Bytes     Time       10865 21719.7      203   344.4       9.13    ----------------------------------------------------------    Loaded 表示有多少个class被加载    Bytes 表示加载的class占用的字节数    Unloaded 表示有多少个class未被加载    Bytes 表示未被加载的class占用的字节数    Time 表示类加载所消耗的时间
  • -compiler

    显示 JIT 即时编译器 统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -compiler 3886     Compiled Failed Invalid   Time   FailedType FailedMethod       10757      2       0    43.05          1 com/google/inject/internal/cglib/core/$MethodWrapper$MethodWrapperKey$$$KeyFactoryByCGLIB$$e23ecb5d hashCode    ------------------------------------------------------------    Compiled 表示编译的任务数量    Failed 表示编译失败的任务数量    Invalid 表示失效的编译任务数量    Time 表示执行编译任务所花费的时间    FailedType 表示上次编译失败的编译类型    FailedMethod 表示上次编译失败的类名和方法
  • -gc

    用于显示垃圾回收 堆行为的统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z software]# jstat -gc 3886    S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT       3584.0 3584.0  0.0   1632.0 316416.0 303307.3  103424.0   54599.8   68096.0 64335.7 8192.0 7240.8    271    1.687   6      1.049    2.736    ------------------------------------------------------    S0C 表示当前新生代中survivor0 空间有多少kb    S1C 表示当前新生代中survivor1 空间有多少kb    S0U 表示当前新生代中survivor0 空间使用了kb    S1U 表示当前新生代中survivor1 空间使用了kb    EC  表示当前新生代中eden 空间的容量有多少kb    EU  表示当前新生代中eden 空间使用了多少kb    OC  表示当前老年代空间有多少kb    OU  表示当前老年代空间使用了多少kb    MC  表示当前Metaspace 空间有多少kb    MU  表示当前Metaspace 空间使用了多少kb    CCSC 表示当前Compressed class space的空间大小,CCSC存在于Metaspace中    CCSU 表示当前Compressed class space的空间使用大小    YGC 表示当前新生代中垃圾回收发生的次数    YGCT 表示当前新生代垃圾回收所消耗的时间    FGC 表示当前fullGC发生的次数    FGCT 表示当前fullGC 所消耗的时间    GCT 表示当前所有垃圾回收所消耗的总时间    
  • -gccapacity

    用于显示分代空间的容量统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gccapacity 3886    NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC     20480.0 323584.0 323584.0 4096.0 4096.0 315392.0    40960.0   647168.0   103424.0   103424.0      0.0 1110016.0  68352.0      0.0 1048576.0   8192.0    276  6    --------------------------------------------------------    NGCMN: 新生代最小的容量大小 kb    NGCMX: 新生代最大的容量大小 kb    NGC: 当前新生代的总容量大小 kb = S0 + S1 + eden    S0C: 当前survivor0空间容量大小 kb    S1C: 当前survivor1空间容量大小 kb    EC:当前eden空间容量大小 kb    OGCMN: 老年代最小的容量大小 kb    OGCMX: 老年代最大的容量大小 kb    OGC: 当前老年代的容量大小 kb    OC: 当前老年代的容量大小 kb    *******注意: OGC与OC的区别**************    OGC包括了整个老年代的容量大小,由于老年代没有像新生代那样分为s1、s2、eden,所以老年代只有1个空间,而OC就代表这个空间的小,所以就目前来讲 OC=OGC    ***************************************    MCMN: metaspace最小容量 kb    MCMX: metaspace最大容量 kb    MC: 当前metaspace的容量 kb    CCSMN: Compressed class space 空间的最小容量 kb    CCSMX: Compressed class space 空间的最大容量 kb    CCSC: 当前Compressed class space 空间的容量 kb    YGC: 新生代发生垃圾回收事件的次数    FGC: 发生fullGC事件的次数
  • -gcutil

    显示垃圾收集器的统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcutil 3886    S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT       67.58   0.00  18.49  57.74  94.49  88.67    276    1.716     6    1.049    2.766    ----------------------------------------------------    S0: s0空间占用/s0空间容量 * 100  的百分比    S1: s1空间占用/s1空间容量 * 100  的百分比    E: eden空间占用/eden空间容量 * 100  的百分比    O: 老年代空间占用/老年代空间容量 * 100  的百分比    M: metaspace占用/metaspace容量 * 100  的百分比    CCS: Compressed class space 使用空间与容量的百分比    YGC: 新生代垃圾回收事件的次数    YGCT: 新生代垃圾回收所消耗的时间    FGC: fullGC事件的次数    FGCT: fullGC所消耗的时间    GCT: 垃圾回收所消耗的总时间
  • -gccause

    用于显示垃圾收集器的统计和 上次垃圾回收与当前垃圾回收 事件发生的原因, 相比于-gcutil, 只是新增了2列

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gccause 3886    S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT    LGCC                 GCC                     67.58   0.00  22.47  57.74  94.49  88.67    276    1.716     6    1.049    2.766 Allocation Failure   No GC     -----------------------------------------------------    LGCC: 上次发生垃圾回收的原因    GCC: 当前发生垃圾回收的原因    
  • -gcnew

    新生代行为统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcnew 3886    S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT      4096.0 4096.0 2768.2    0.0  1  15 4096.0 315392.0 164272.9    276    1.716    ---------------------------------------------------    S0C: 当前新生代中S0 区域的容量大小 kb    S1C: 当前新生代中S1 区域的容量大小 kb    S0U: 当前新生代中S0 区域所使用了的大小 kb    S1U: 当前新生代中S1 区域所使用了的大小 kb    TT: 对象在新生代中经历垃圾回收次数的阀值    MTT: 对象在新生代中经历垃圾回收次数最大阀值    DSS: 目前请求分配的survivor区大小 kb    EC: 当前eden空间的大小 kb    EU:当前eden空间所使用了的空间大小 kb    YGC:新生代垃圾回收事件发生的次数    YGCT: 新生代垃圾回收所消耗的时间    
  • -gcnewcapacity

    显示新生代空间的统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcnewcapacity 3886    NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC     20480.0   323584.0   323584.0 107520.0   4096.0 107520.0   4096.0   322560.0   315392.0   276     6    -----------------------------------------------------------    NGCMN: 新生代最小的容量 kb    NGCMX: 新生代最大的容量 kb    NGC: 当前新生代的容量 kb    S0CMX: s0区域最大容量 kb    S0C: 当前s0区域的容量 kb    S1CMX: s1区域最大容量 kb    S1C: 当前s1区域的容量 kb    ECMX: eden空间最大容量 kb    EC: 当前eden空间的容量 kb    YGC: 新生代发生垃圾回收事件的次数    FGC: fullGC 发生的次数
  • -gcold

    显示老年代和metaspace 行为统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcold 3886    MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT       68352.0  64587.6   8192.0   7263.7    103424.0     59720.4    276     6    1.049    2.766    ---------------------------------------------------    MC: metaspace的容量 kb    MU: metaspace已使用的大小 kb    CCSC: Compressed class space 的容量 kb    CCSU: Compressed class space 已使用的容量 kb    OC: 当前老年代的容量 kb    OU: 当前老年代已使用的容量 kb    YGC: 新生代发生垃圾回收事件的次数    FGC: fullGC事件发生的次数    FGCT: fullGC所消耗的时间    GCT: 垃圾回收所消耗的总时间    
  • -gcoldcapacity

    显示老年代容量统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcoldcapacity 3886    OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT       40960.0    647168.0    103424.0    103424.0   276     6    1.049    2.766    -----------------------------------------------------------    OGCMN: 老年代最小容量 kb    OGCMX: 老年代最大容量    OGC:  当前老年代的容量 =由于老年代目前只划分了一个区域所以它等于 OC    OC: 当前老年代的容量    YGC: 新生代垃圾回收事件发生的次数    FGC: fullGC发生的次数    FGCT: fullGC所消耗的时间    GCT: 垃圾回收所消耗的总时间
  • -gcmetacapacity

    metaspace 容量统计信息

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -gcmetacapacity 3886   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT        0.0  1110016.0    68352.0        0.0  1048576.0     8192.0   276     6    1.049    2.766    ------------------------------------------------------------    MCMN: metaspace最小容量    MC:metaspace最大容量    MC: 当前metaspace的容量    CCSMN: Compressed class space 最小容量    CCSMX: Compressed class space 大小容量    YGC: 新生代垃圾回收事件发生的次数    FGC: fullGC发生的次数    FGCT: fullGC所消耗的时间    GCT: 垃圾回收所消耗的总时间    
  • -printcompilation

    JIT实时编译器编译信息统计

    [root@iZm5e9tuuj84fiyy7b3bx3Z ~]# jstat -printcompilation 30309    Compiled  Size  Type Method    18431     66    1 sun/reflect/GeneratedMethodAccessor203 invoke    ---------------------------------------------------------------    Compiled: 执行了多少次方法编译任务    Size: 最后一次编译的方法字节码的字节数    Type:最后一次编译的方法的编译类型    Method: 最后一次编译的方法的类+方法名 包之间用/隔开 方法名用空格隔开,如上示例  invoke代表 JIT编译的方法,前面是全限定名    


评论
或者使用社交账号快捷登录