jstat工具使用(jstat命令查看jvm內存、gc等相關信息)

一、jstat介紹

Jstat是JDK自帶的一個輕量級小工具。全稱“Java Virtual Machine statistics monitoring tool”。Jstat位於java的bin目錄下,主要利用JVM內建的指令對Java應用程序的資源和性能進行實時的命令行的監控,包括了對Heap size和垃圾回收狀況的監控。

二、jstat相關命令的使用

1、環境

  • 本文中使用的服務器是centos
  • 使用的JDK版本是1.8
  • 使用命令 ps axu|grep java 查看到相應java的進程PID爲 2236
  • 所有與容量大小相關的單位都是KB

2、類加載信息相關

[deploy8@JAVA-DEV-02 ~]$ jstat -class 2236
Loaded  Bytes  Unloaded  Bytes     Time   
115983 226479.4     3898  5221.6      81.24
  • Loaded 類加載數量
  • Bytes 已加載類佔用空間大小
  • Unloaded 未加載類的數量
  • Bytes 未加載類佔用的大小
  • Time 耗時

3、類編譯統計

[deploy8@JAVA-DEV-02 ~]$ jstat -compiler 2236 
Compiled Failed Invalid   Time   FailedType FailedMethod
   67577      3       0   432.91          1 com/mysql/jdbc/AbandonedConnectionCleanupThread run
  • Compiled 編譯數量
  • Failed 失敗數量
  • Invalid 不可用數量
  • Time 時間
  • FailedType 失敗類型
  • FailedMethod 失敗的方法

4、堆垃圾收集統計信息

[deploy8@JAVA-DEV-02 ~]$ jstat -gc 2236
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
20480.0 20480.0 269.9   0.0   163840.0 97683.3   319488.0   271892.4  673268.0 661182.8 78048.0 75954.8    508    9.526  18      1.737   11.263
  • S0C 當前倖存者空間0容量
  • S1C 當前倖存者空間1容量
  • S0U 倖存者空間0已使用容量
  • S1U 倖存者空間1已使用容量
  • EC 當前的伊甸園空間容量
  • EU 伊甸園空間已使用容量
  • OC 老年代空間容量
  • OU 老年代已使用容量
  • MC 元空間容量
  • MU Metaspace已使用容量
  • CCSC 壓縮類空間容量
  • CCSU 使用的壓縮類空間
  • YGC 新生代垃圾收集活動的數量
  • YGCT 新生代垃圾收集時間
  • FGC 完整GC的數量
  • FGCT 完全垃圾收集時間
  • GCT 垃圾收集總時間

5、堆內存生成和空間容量

[deploy8@JAVA-DEV-02 ~]$ jstat -gccapacity 2236
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
204800.0 204800.0 204800.0 20480.0 20480.0 163840.0   319488.0   319488.0   319488.0   319488.0      0.0 1644544.0 673268.0      0.0 1048576.0  78048.0    508    18
  • NGCMN 最小新生代容量
  • NGCMX 最大新生代容量
  • NGC 當前新生代容量
  • S0C 倖存者0區容量
  • S1C 倖存者1區容量
  • EC 伊甸園區容量
  • OGCMN 最小老年代容量
  • OGCMX 最大老年代容量
  • OGC 當前老年代容量
  • OC 當前老年代容量
  • MCMN 最小元空間容量
  • MCMX 最大元空間容量
  • MC 元空間容量
  • CCSMN 壓縮類空間最小容量
  • CCSMX 壓縮類空間最大容量
  • CCSC 壓縮類空間容量
  • YGC 年輕帶GC數量
  • FGC 老年代GC數量

6、垃圾收集統計摘要

[deploy8@JAVA-DEV-02 ~]$ jstat -gcutil 2236
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
  1.32   0.00  66.57  85.10  98.20  97.32    508    9.526    18    1.737   11.263
  • S0:倖存者空間0利用率佔空間當前容量的百分比

  • S1:倖存者空間1佔空間當前容量的百分比

  • E:伊甸園空間利用率佔空間當前容量的百分比

  • O:老年代空間利用率佔空間當前容量的百分比

  • M:元空間利用率佔空間當前容量的百分比

  • CCS:壓縮的類空間利用率百分比

  • YGC:新生代GC事件的數量

  • YGCT:新生代垃圾收集時間

  • FGC:完整GC事件的數量

  • FGCT:完全垃圾收集時間

  • GCT:垃圾收集總時間

7、新生代垃圾收集統計摘要

[deploy8@JAVA-DEV-02 ~]$ jstat -gcnew 2236
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 109342.9    508    9.526
  • S0C:當前倖存者空間0容量

  • S1C:當前倖存者空間1容量

  • S0U:倖存者空間0利用率

  • S1U:倖存者空間1利用率

  • TT:對象在新生代中存活次數。

  • MTT:對象在新生代中存活最大次數。

  • DSS:期望的倖存區大小

  • EC:當前的伊甸園空間容量

  • EU:伊甸園空間利用率

  • YGC:新生代GC事件的數量

  • YGCT:新生代垃圾收集時間

8、老年代垃圾收集統計摘要

[deploy8@JAVA-DEV-02 ~]$ jstat -gcold 2236
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   
673268.0 661182.8  78048.0  75954.8    319488.0    271892.4    508    18    1.737   11.263
  • MC:元空間容量

  • MU:元空間利用率

  • CCSC:壓縮類空間容量

  • CCSU:使用的壓縮類空間

  • OC:當前老年代空間容量

  • OU:老年代空間利用率

  • YGC:新生代GC事件的數量

  • FGC:完整GC事件的數量

  • FGCT:完全垃圾收集時間

  • GCT:垃圾收集總時間

9、動態打印垃圾收集情況

  • 例如打印新生代情況
  • 每1秒打印一行
  • 每三行打印一次列標題
[deploy8@JAVA-DEV-02 ~]$  jstat -gcnew -h3 2236 1000 
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
20480.0 20480.0  269.9    0.0  6   6 10240.0 163840.0 115009.0    508    9.526

三、總結

  • 以上只列舉出了常用的部分命令
  • 如有問題,感謝指正
  • 參考 官方文檔
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章