概述
監控JVM統計信息, 如gc信息, 類加載信息, JIT信息
命令格式: jstat [ generalOption | outputOptions vmid [ interval[s|ms] [ count ] ]
-
generalOption : jstat命令選項,如 -help或-options
-
outputOptions : 包含一個statOption的輸出選項
-
vmid : JVM的id, 即java進程id
-
interval [s|ms]: 監控間隔時間, 單位是秒或毫秒, 不加單位默認爲毫秒
-
count : 表示總共監控多少次, 默認是一直執行
參數
一般參數
- -help : 打印幫助信息
- -options : 展示參數列表
輸出參數
其他參數
- -h n : 每n行展示一次列標題
- -t : 添加一個時間戳列到第一列, 時間戳時間是從JVM啓動開始計算
statOption(靜態參數)
jstat命令最重要的一些參數
-class : 展示類加載信息
列名稱 |
描述 |
Loaded |
加載的class數量 |
Bytes |
加載的class類大小, 單位KB |
Unloaded |
未加載的class數量 |
Bytes |
未加載的class類大小, 單位KB |
-compiler : 展示JVM即時編譯器的一些統計信息
列名稱 |
描述 |
Compiled |
執行的編譯任務的數量 |
Failed |
編譯任務失敗的數量 |
Invalid |
無效編譯任務的數量 |
Time |
用於執行編譯任務的時間, 單位s |
FailedType |
上次編譯失敗的編譯類型 |
FailedMethod |
上次編譯失敗的類名和方法 |
-gc : 展示gc信息, 主要是堆的gc信息
列名稱 |
描述 |
S0C |
當前S0(Survivor 0)空間容量, 單位KB |
S1U |
當前S1(Survivor 1)空間容量, 單位KB |
S0U |
S0空間使用量, 單位KB |
S1U |
S1空間使用量, 單位KB |
EC |
當前Eden區域容量, 單位KB |
EU |
Eden區域使用量, 單位KB |
OC |
當前老年代容量, 單位KB |
OU |
老年代使用量, 單位KB |
MC |
元空間(Metaspace)容量, 單位KB |
MU |
元空間(Metaspace)使用量, 單位KB |
CCSC |
類指針壓縮空間容量, 單位KB |
CCSU |
類指針壓縮空間容量, 單位KB |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
YGCT |
YGC所消耗的時間, 單位s |
FGC |
Full GC發生的次數 |
FGCT |
Full GC消耗的時間, 單位s |
GCT |
所有GC消耗的總時間, 單位s |
-gccapacity : 展示各代(新生代,老年代等)的容量以及相應的空間信息
列名稱 |
描述 |
NGCMN |
新生代最小容量, 單位KB |
NGCMX |
新生代最大容量, 單位KB |
NGC |
當前新生代容量, 單位KB |
S0C |
當前S0空間(survivor 0)容量, 單位KB |
S1C |
當前S1空間(survivor 1)容量, 單位KB |
EC |
當前Eden空間容量, 單位KB |
OGCMN |
老年代最小容量, 單位KB |
OGCMX |
老年代最大容量, 單位KB |
OGC |
當前老年代容量, 單位KB |
OC |
當前老年代容量, 單位KB. ps:這個參數有點費解, 和OGC是一樣的 |
MCMN |
元空間(metaspace )最小容量, 單位KB |
MCMX |
元空間(metaspace )最大容量, 單位KB |
MC |
當前元空間(metaspace )容量, 單位KB |
CCSMN |
CCS(Compressed class space)區域最小容量, 單位KB |
CCSMX |
CCS空間最大容量, 單位KB |
CCSC |
當前CCS空間容量, 單位KB |
YGC |
Young GC(Minor GC)發生次數 |
FGC |
Full GC發生次數 |
-gcutil : 展示gc概要信息
列名稱 |
描述 |
S0 |
S0(Survivor 0)空間使用百分比(相對於當前容量) |
S1 |
S1(Survivor 1)空間使用百分比(相對於當前容量) |
E |
Eden空間使用百分比(相對於當前容量) |
O |
老年代空間使用百分比(相對於當前容量) |
M |
元空間(Metaspace)使用百分比(相對於當前容量) |
CCS |
CCS空間使用百分比 |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
YGCT |
YGC所消耗的時間, 單位s |
FGC |
Full GC發生的次數 |
FGCT |
Full GC消耗的時間, 單位s |
GCT |
所有GC消耗的總時間, 單位s |
-gccause : 展示gc概要信息(類似於gcutil), 展示最後一次和當前gc事件的原因
和gcutil展示信息一樣, 額外增加了兩列LGCC,GCC:
列名稱 |
描述 |
LGCC |
上次GC原因 |
GCC |
當前GC原因 |
-gcnew : 展示新生代gc相關信息
列名稱 |
描述 |
S0C |
當前S0(Survivor 0)空間容量, 單位KB |
S1C |
當前S1(Survivor 1)空間容量, 單位KB |
S0U |
S0空間使用量, 單位KB |
S1U |
S1空間使用量, 單位KB |
TT |
對象在新生代存活的次數 |
MTT |
對象在新生代存活的最大次數 |
DSS |
期望的survivor空間大小, 單位KB |
EC |
當前Eden區域容量, 單位KB |
EU |
Eden區域使用量, 單位KB |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
YGCT |
YGC所消耗的時間, 單位s |
-gcnewcapacity : 展示新生代(new generation)容量及其對應空間
列名稱 |
描述 |
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 |
新生代GC(Minor GC/Young GC)發生的次數 |
FGC |
Full GC發生的次數 |
-gcold : 展示老年代(old generation)以及元空間(metaspace)相關gc信息
列名稱 |
描述 |
MC |
元空間(Metaspace)容量, 單位KB |
MU |
元空間(Metaspace)使用量, 單位KB |
CCSC |
CCS空間容量, 單位KB |
CCSU |
CCS空間使用量, 單位KB |
OC |
當前老年代容量, 單位KB |
OU |
老年代使用量, 單位KB |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
FGC |
Full GC發生的次數 |
FGCT |
Full GC消耗的時間, 單位s |
GCT |
所有GC消耗的總時間(包含YGC和FGC), 單位s |
-gcoldcapacity : 展示老年代容量信息
列名稱 |
描述 |
OGCMN |
老年代最小容量, 單位KB |
OGCMX |
老年代最大容量, 單位KB |
OGC |
當前老年代容量, 單位KB |
OC |
當前老年代容量, 單位KB |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
FGC |
Full GC發生的次數 |
FGCT |
Full GC消耗的時間, 單位s |
GCT |
所有GC消耗的總時間(包含YGC和FGC), 單位s |
-gcmetacapacity : 展示元空間(metaspace)容量信息
列名稱 |
描述 |
MCMN |
元空間(Metaspace)最小容量, 單位KB |
MCMX |
元空間(Metaspace)最大容量, 單位KB |
MC |
當前元空間(Metaspace)容量, 單位KB |
CCSMN |
CCS空間最小容量, 單位KB |
CCSMX |
CCS空間最大容量, 單位KB |
YGC |
新生代GC(Minor GC/Young GC)發生的次數 |
FGC |
Full GC發生的次數 |
FGCT |
Full GC消耗的時間, 單位s |
GCT |
所有GC消耗的總時間(包含YGC和FGC), 單位s |
-printcompilation : 展示編譯方法(JIT)相關信息
列名稱 |
描述 |
Compiled |
由最近編譯的方法執行的編譯任務的數量 |
Size |
最近編譯的方法的字節碼的字節數 |
Type |
最近編譯的方法的編譯類型 |
Method |
標識最近編譯的方法的類名和方法名 |
本文參考jdk官方文檔, 基於JDK8的, 不同的jdk版本可能會有一些差異
官網地址: https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html