天天看點

JVM工具之jstat

jstat是jdk自帶的一個小工具,位于${JAVA_HOME}的bin目錄下,用于檢視JVM中的各項監控資料,主要利用JVM内建的指令對Java應用程式的資源和性能進行實時的指令行的監控,包括了對堆棧、GC等的監控。可見,jstat是非常輕量級的、專門針對JVM的工具。

0. 使用jstat -options檢視目前JVM支援的選項

JVM工具之jstat

說明:

指令名稱 說明

-class

顯示類加載器相關資訊

-compiler

顯示JIT編譯的相關資訊

-gc

顯示堆的gc狀态資訊

--gccapacity

顯示各個代的容量以及使用情況

-gccause

顯示垃圾回收的相關資訊,同時顯示最後一次或目前正在發生的垃圾回收的誘因

-gcmetacapacity

顯示metaspace的大小

-gcnew

顯示新生代gc統計

-gcnewcapacity

顯示新生代大小和使用情況

-gcold

顯示老年代和永久代的資訊

-gcoldcapacity

顯示老區大小

-gcutil

GC統計彙總,顯示垃圾收集資訊

-printcompilation

HotSpot編譯統計

1.

-class

使用示例

JVM工具之jstat
參數 說明
Loaded 已經裝載的類的數量
Bytes 裝載類所占用的位元組數
Unloaded 已經解除安裝類的數量
Bytes 解除安裝類的位元組數
Time 裝載和解除安裝類所花費的時間

2.

-compiler

使用示例

JVM工具之jstat
參數 說明
Compiled 編譯任務執行數量
Failed 編譯任務執行失敗數量
Invalid 編譯任務執行失效數量
Time 編譯任務消耗時間
FailedType 最後一個編譯失敗任務的類型
FailedMethod 最後一個編譯失敗任務所在的類及方法

3.

-gc

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
MCMN 最小中繼資料容量
MCMX 最大中繼資料容量
MC 目前中繼資料空間大小
CCSMN 最小壓縮類空間大小
CCSMX 最大壓縮類空間大小
CCSC 目前壓縮類空間大小
YGC 從應用程式啟動到采樣時年輕代中gc次數
FGC 從應用程式啟動到采樣時old代(全gc)gc次數
FGCT 從應用程式啟動到采樣時old代(全gc)gc所用時間(s)
GCT 從應用程式啟動到采樣時gc用的總時間(s)

7.

-gcnew

使用示例

JVM工具之jstat
參數 說明
S0C 年輕代中第一個survivor(幸存區)的容量 (位元組)
S1C 年輕代中第二個survivor(幸存區)的容量 (位元組)
S0U 年輕代中第一個survivor(幸存區)目前已使用空間 (位元組)
S1U 年輕代中第二個survivor(幸存區)目前已使用空間 (位元組)
TT 持有次數限制
MTT 最大持有次數限制
DSS 期望的幸存區大小
EC 年輕代中Eden(伊甸園)的容量 (位元組)
EU 年輕代中Eden(伊甸園)目前已使用空間 (位元組)
YGC 從應用程式啟動到采樣時年輕代中gc次數
YGCT 從應用程式啟動到采樣時年輕代中gc所用時間(s)

8.

-gcnewcapacity

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
OGCMN old代中初始化(最小)的大小 (位元組)
OGCMX old代的最大容量(位元組)
OGC old代目前新生成的容量 (位元組)
OC Old代的容量 (位元組)
YGC 從應用程式啟動到采樣時年輕代中gc次數
FGC 從應用程式啟動到采樣時old代(全gc)gc次數
FGCT 從應用程式啟動到采樣時old代(全gc)gc所用時間(s)
GCT 從應用程式啟動到采樣時gc用的總時間(s)

11.

-gcutil

使用示例

JVM工具之jstat
參數 說明
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

使用示例

JVM工具之jstat
參數 說明
Compiled 編譯任務的數目
Size 方法生成的位元組碼的大小
Type 編譯類型
Method 類名和方法名用來辨別編譯的方法。類名使用/做為一個命名空間分隔符。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設定的