jstat是jdk自帶的一個小工具,位于${JAVA_HOME}的bin目錄下,用于檢視JVM中的各項監控資料,主要利用JVM内建的指令對Java應用程式的資源和性能進行實時的指令行的監控,包括了對堆棧、GC等的監控。可見,jstat是非常輕量級的、專門針對JVM的工具。
0. 使用jstat -options檢視目前JVM支援的選項
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsICM38CXlZHbvN3cpR2Lc1TPB10QGtWUCpEMJ9CXsxWam9CXwADNvwVZ6l2c052bm9CXUJDT1wkNhVzLcRnbvZ2Lc1TP3RWcwNDW25kMMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DNwUTOwcjMxEDOwATM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
說明:
指令名稱 | 說明 |
---|---|
| 顯示類加載器相關資訊 |
| 顯示JIT編譯的相關資訊 |
| 顯示堆的gc狀态資訊 |
| 顯示各個代的容量以及使用情況 |
| 顯示垃圾回收的相關資訊,同時顯示最後一次或目前正在發生的垃圾回收的誘因 |
| 顯示metaspace的大小 |
| 顯示新生代gc統計 |
| 顯示新生代大小和使用情況 |
| 顯示老年代和永久代的資訊 |
| 顯示老區大小 |
| GC統計彙總,顯示垃圾收集資訊 |
| HotSpot編譯統計 |
1. -class
使用示例
-class
參數 | 說明 |
---|---|
Loaded | 已經裝載的類的數量 |
Bytes | 裝載類所占用的位元組數 |
Unloaded | 已經解除安裝類的數量 |
Bytes | 解除安裝類的位元組數 |
Time | 裝載和解除安裝類所花費的時間 |
2. -compiler
使用示例
-compiler
參數 | 說明 |
---|---|
Compiled | 編譯任務執行數量 |
Failed | 編譯任務執行失敗數量 |
Invalid | 編譯任務執行失效數量 |
Time | 編譯任務消耗時間 |
FailedType | 最後一個編譯失敗任務的類型 |
FailedMethod | 最後一個編譯失敗任務所在的類及方法 |
3. -gc
使用示例
-gc
參數 | 說明 |
---|---|
S0C | 年輕代中第一個survivor(幸存區)的容量 (位元組) |
S1C | 年輕代中第二個survivor(幸存區)的容量 (位元組) |
S0U | 年輕代中第一個survivor(幸存區)目前已使用空間 (位元組) |
S1U | 年輕代中第二個survivor(幸存區)目前已使用空間 (位元組) |
EC | 年輕代中Eden(伊甸園)的容量 (位元組) |
EU | 年輕代中Eden(伊甸園)目前已使用空間 (位元組) |
OC | Old代的容量 (位元組) |
OU | Old代目前已使用空間 (位元組) |
MC | metaspace(元空間)的容量 (位元組) |
MU | metaspace(元空間)目前已使用空間 (位元組) |
CCSC | 壓縮類空間大小 |
CCSU | 壓縮類空間使用大小 |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
YGCT | 從應用程式啟動到采樣時年輕代中gc所用時間(s) |
FGC | 從應用程式啟動到采樣時old代(全局gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全局gc)gc所用時間(s) |
GCT | 從應用程式啟動到采樣時gc用的總時間(s) |
4. -gccapacity
使用示例
-gccapacity
參數 | 說明 |
---|---|
NGCMN | 年輕代(young)中初始化(最小)的大小(位元組) |
NGCMX | 年輕代(young)的最大容量 (位元組) |
NGC | 年輕代(young)中目前的容量 (位元組) |
S0C | 年輕代中第一個survivor(幸存區)的容量 (位元組) |
S1C | 年輕代中第二個survivor(幸存區)的容量 (位元組 |
EC | 年輕代中Eden(伊甸園)的容量 (位元組 |
OGCMN | old代中初始化(最小)的大小 (位元組) |
OGCMX | old代的最大容量(位元組) |
OGC | old代目前新生成的容量 (位元組) |
OC | Old代的容量 (位元組) |
MCMN | metaspace(元空間)中初始化(最小)的大小 (位元組) |
MCMX | metaspace(元空間)的最大容量 (位元組) |
MC | metaspace(元空間)目前新生成的容量 (位元組) |
CCSMN | 最小壓縮類空間大小 |
CCSMX | 最大壓縮類空間大小 |
CCSC | 目前壓縮類空間大小 |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
5. -gccause
使用示例
-gccause
參數 | 說明 |
---|---|
S0 | Heap上的 Survivor space 0 區已使用空間的百分比 |
S1 | Heap上的 Survivor space 1 區已使用空間的百分比 |
E | Heap上的 Eden space 區已使用空間的百分比 |
O | Heap上的 Old space 區已使用空間的百分 |
M | |
CCS | |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
YGCT | 從應用程式啟動到采樣時 Young GC 所用的時間(機關秒) |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全gc)gc所用時間(機關秒) |
GCT | 從應用程式啟動到采樣時gc用的總時間(機關秒) |
LGCC | 最後一次GC原因 |
GCC | 目前GC原因(No GC 為目前沒有執行GC) |
6. -gcmetacapacity
使用示例
-gcmetacapacity
參數 | 說明 |
---|---|
MCMN | 最小中繼資料容量 |
MCMX | 最大中繼資料容量 |
MC | 目前中繼資料空間大小 |
CCSMN | 最小壓縮類空間大小 |
CCSMX | 最大壓縮類空間大小 |
CCSC | 目前壓縮類空間大小 |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全gc)gc所用時間(s) |
GCT | 從應用程式啟動到采樣時gc用的總時間(s) |
7. -gcnew
使用示例
-gcnew
參數 | 說明 |
---|---|
S0C | 年輕代中第一個survivor(幸存區)的容量 (位元組) |
S1C | 年輕代中第二個survivor(幸存區)的容量 (位元組) |
S0U | 年輕代中第一個survivor(幸存區)目前已使用空間 (位元組) |
S1U | 年輕代中第二個survivor(幸存區)目前已使用空間 (位元組) |
TT | 持有次數限制 |
MTT | 最大持有次數限制 |
DSS | 期望的幸存區大小 |
EC | 年輕代中Eden(伊甸園)的容量 (位元組) |
EU | 年輕代中Eden(伊甸園)目前已使用空間 (位元組) |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
YGCT | 從應用程式啟動到采樣時年輕代中gc所用時間(s) |
8. -gcnewcapacity
使用示例
-gcnewcapacity
參數 | 說明 |
---|---|
NGCMN | 年輕代(young)中初始化(最小)的大小(位元組) |
NGCMX | 年輕代(young)的最大容量 (位元組) |
NGC | 年輕代(young)中目前的容量 (位元組) |
S0CMX | 年輕代中第一個survivor(幸存區)的最大容量 (位元組) |
S0C | 年輕代中第一個survivor(幸存區)的容量 (位元組) |
S1CMX | 年輕代中第二個survivor(幸存區)的最大容量 (位元組) |
S1C | 年輕代中第二個survivor(幸存區)的容量 (位元組) |
ECMX | 年輕代中Eden(伊甸園)的最大容量 (位元組) |
EC | 年輕代中Eden(伊甸園)的容量 (位元組) |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
9. -gcold
使用示例
-gcold
參數 | 說明 |
---|---|
MC | metaspace(元空間)的容量 (位元組) |
MU | metaspace(元空間)目前已使用空間 (位元組) |
CCSC | 壓縮類空間大小 |
CCSU | 壓縮類空間使用大小 |
OC | Old代的容量 (位元組) |
OU | Old代目前已使用空間 (位元組) |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全gc)gc所用時間(s) |
GCT | 從應用程式啟動到采樣時gc用的總時間(s) |
10. -gcoldcapacity
使用示例
-gcoldcapacity
參數 | 說明 |
---|---|
OGCMN | old代中初始化(最小)的大小 (位元組) |
OGCMX | old代的最大容量(位元組) |
OGC | old代目前新生成的容量 (位元組) |
OC | Old代的容量 (位元組) |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全gc)gc所用時間(s) |
GCT | 從應用程式啟動到采樣時gc用的總時間(s) |
11. -gcutil
使用示例
-gcutil
參數 | 說明 |
---|---|
S0 | 年輕代中第一個survivor(幸存區)已使用的占目前容量百分比 |
S1 | 年輕代中第二個survivor(幸存區)已使用的占目前容量百分比 |
E | 年輕代中Eden(伊甸園)已使用的占目前容量百分比 |
O | old代已使用的占目前容量百分比 |
P | perm代已使用的占目前容量百分比 |
YGC | 從應用程式啟動到采樣時年輕代中gc次數 |
YGCT | 從應用程式啟動到采樣時年輕代中gc所用時間(s) |
FGC | 從應用程式啟動到采樣時old代(全gc)gc次數 |
FGCT | 從應用程式啟動到采樣時old代(全gc)gc所用時間(s) |
GCT | 從應用程式啟動到采樣時gc用的總時間(s) |
12. -printcompilation
使用示例
-printcompilation
參數 | 說明 |
---|---|
Compiled | 編譯任務的數目 |
Size | 方法生成的位元組碼的大小 |
Type | 編譯類型 |
Method | 類名和方法名用來辨別編譯的方法。類名使用/做為一個命名空間分隔符。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設定的 |