文章目錄
一、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
三、總結
- 以上只列舉出了常用的部分命令
- 如有問題,感謝指正
- 參考 官方文檔