jstat命令簡介
jstat(Java Virtual Machine Statistics Monitoring Tool)是JDK提供的一個可以監控Java虛擬機器各種執行狀態資訊的命令列工具。它可以顯示Java虛擬機器中的類載入、記憶體、垃圾收集、即時編譯等執行狀態的資訊。
jstat命令引數
命令語法:
jstat generalOptions
jstat outputOptions [-t] [-h<lines>] <vmid> [<interval> [<count>]]
命令引數說明:
generalOptions
:通用選項,如果指定一個通用選項,就不能指定任何其他選項或引數。它包括如下兩個選項:-
-help
:顯示幫助資訊。
-
-options
:顯示outputOptions
引數的列表。
outputOptions
:輸出選項,指定顯示某一種Java虛擬機器資訊。-t
:把時間戳列顯示為輸出的第一列。這個時間戳是從Java虛擬機器的開始執行到現在的秒數。-h n
:每顯示n行顯示一次表頭,其中n為正整數。預設值為 0,即僅在第一行資料顯示一次表頭。vmid
:虛擬機器唯一ID(LVMID,Local Virtual Machine Identifier),如果檢視本機就是Java程式的程式ID。interval
:顯示資訊的時間間隔,單位預設毫秒。也可以指定秒為單位,比如:1s。如果指定了該引數,jstat命令將每個這段時間顯示一次統計資訊。count
:顯示資料的次數,預設值是無窮大,這將導致jstat命令一直顯示統計資訊,直到目標JVM終止或jstat命令終止。
輸出選項
如果不指定通用選項(generalOptions),則可以指定輸出選項(outputOptions)。輸出選項決定jstat命令顯示的內容和格式,具體如下:
-class
:顯示類載入、解除安裝數量、總空間和裝載耗時的統計資訊。-compiler
:顯示即時編譯的方法、耗時等資訊。-gc
:顯示堆各個區域記憶體使用和垃圾回收的統計資訊。-gccapacity
:顯示堆各個區域的容量及其對應的空間的統計資訊。-gcutil
:顯示有關垃圾收集統計資訊的摘要。-gccause
:顯示關於垃圾收集統計資訊的摘要(與-gcutil相同),以及最近和當前垃圾回收的原因。-gcnew
:顯示新生代的垃圾回收統計資訊。-gcnewcapacity
:顯示新生代的大小及其對應的空間的統計資訊。-gcold
: 顯示老年代和元空間的垃圾回收統計資訊。-gcoldcapacity
:顯示老年代的大小統計資訊。-gcmetacapacity
:顯示元空間的大小的統計資訊。-printcompilation
:顯示即時編譯方法的統計資訊。
jstat命令的顯示輸出被格式化為一個表,列用空格分隔。接下來,我來了解一下每條輸出選項的列名。
-class選項
- Loaded:載入的類的數量。
- Bytes:載入的類所佔用的位元組數。
- Unloaded:解除安裝的類的數量。
- Bytes:解除安裝的類所佔用的位元組數。
- Time:執行類載入和解除安裝操作所花費的時間。
舉個例子:
-compiler選項
- Compiled:執行的編譯任務的數量。
- Failed:執行編譯任務失敗的數量。
- Invalid:執行編譯任務失效的數量。
- Time:執行編譯任務所花費的時間。
- FailedType:上次編譯失敗的編譯型別。
- FailedMethod:上次編譯失敗的類名和方法。
舉個例子:
-gc選項
- S0C:年輕代中第一個Survivor區的容量,單位為KB。
- S1C:年輕代中第二個Survivor區的容量,單位為KB。
- S0U:年輕代中第一個Survivor區已使用大小,單位為KB。
- S1U:年輕代中第二個Survivor區已使用大小,單位為KB。
- EC:年輕代中Eden區的容量,單位為KB。
- EU:年輕代中Eden區已使用大小,單位為KB。
- OC:老年代的容量,單位為KB。
- OU:老年代已使用大小,單位為KB。
- MC:元空間的容量,單位為KB。
- MU:元空間已使用大小,單位為KB。
- CCSC:壓縮類的容量,單位為KB。
- CCSU:壓縮類已使用大小,單位為KB。
- YGC:Young GC的次數。
- YGCT:Young GC所用的時間。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
舉個例子:
-gccapacity選項
- NGCMN:年輕代最小的容量,單位為KB。
- NGCMX:年輕代最大的容量,單位為KB。
- NGC:當前年輕代的容量,單位為KB。
- S0C:年輕代中第一個Survivor區的容量,單位為KB。
- S1C:年輕代中第二個Survivor區的容量,單位為KB。
- EC:年輕代中Eden區的容量,單位為KB。
- OGCMN:老年代最小的容量,單位為KB。
- OGCMX:老年代最大的容量,單位為KB。
- OGC:當前老年代的容量,單位為KB。
- OC:當前老年代的容量,單位為KB。
- MCMN:元空間最小的容量,單位為KB。
- MCMX:元空間最大的容量,單位為KB。
- MC:當前元空間的容量,單位為KB。
- CCSMN:壓縮類最小的容量,單位為KB。
- CCSMX:壓縮類最大的容量,單位為KB。
- CCSC:當前壓縮類的容量,單位為KB。
- YGC:Young GC的次數。
- FGC:Full GC的次數。
舉個例子:
-gcutil選項
- S0:年輕代中第一個Survivor區使用大小佔當前容量的百分比。
- S1:年輕代中第二個Survivor區使用大小佔當前容量的百分比。
- E:Eden區使用大小佔當前容量的百分比。
- O:老年代使用大小佔當前容量的百分比。
- M:元空間使用大小佔當前容量的百分比。
- CCS:壓縮類使用大小佔當前容量的百分比。
- YGC:Young GC的次數。
- YGCT:Young GC所用的時間。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
舉個例子:
-gccause選項
- S0:年輕代中第一個Survivor區使用大小佔當前容量的百分比。
- S1:年輕代中第二個Survivor區使用大小佔當前容量的百分比。
- E:Eden區使用大小佔當前容量的百分比。
- O:老年代使用大小佔當前容量的百分比。
- M:元空間使用大小佔當前容量的百分比。
- CCS:壓縮類使用大小佔當前容量的百分比。
- YGC:Young GC的次數。
- YGCT:Young GC所用的時間。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
- LGCC:上次垃圾回收的原因。
- GCC:當前垃圾回收的原因。
舉個例子:
-gcnew選項
- S0C:年輕代中第一個Survivor區的容量,單位為KB。
- S1C:年輕代中第二個Survivor區的容量,單位為KB。
- S0U:年輕代中第一個Survivor區已使用大小,單位為KB。
- S1U:年輕代中第二個Survivor區已使用大小,單位為KB。
- TT:物件在年輕代存活的次數。
- MTT:物件在年輕代存活的最大次數
- DSS:期望的Survivor區大小,單位為KB。
- EC:年輕代中Eden區的容量,單位為KB。
- EU:年輕代中Eden區已使用大小,單位為KB。
- YGC:Young GC的次數。
- YGCT:Young GC所用的時間。
舉個例子:
-gcnewcapacity選項
- NGCMN:年輕代最小的容量,單位為KB。
- NGCMX:年輕代最大的容量,單位為KB。
- NGC:當前年輕代的容量,單位為KB。
- S0CMX:年輕代中第一個Survivor區最大的容量,單位為KB。
- S0C:年輕代中第一個Survivor區的容量,單位為KB。
- S1CMX:年輕代中第二個Survivor區最大的容量,單位為KB。
- S1C:年輕代中第二個Survivor區的容量,單位為KB。
- ECMX:年輕代中Eden區最大的容量,單位為KB。
- EC:年輕代中Eden區的容量,單位為KB。
- YGC:Young GC的次數。
- FGC:Full GC的次數。
舉個例子:
-gcold選項
- MC:元空間的容量,單位為KB。
- MU:元空間已使用大小,單位為KB。
- CCSC:壓縮類的容量,單位為KB。
- CCSU:壓縮類已使用大小,單位為KB。
- OC:老年代的容量,單位為KB。
- OU:老年代已使用大小,單位為KB。
- YGC:Young GC的次數。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
舉個例子:
-gcoldcapacity選項
- OGCMN:老年代最小的容量,單位為KB。
- OGCMX:老年代最大的容量,單位為KB。
- OGC:當前老年代的容量,單位為KB。
- OC:當前老年代的容量,單位為KB。
- YGC:Young GC的次數。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
舉個例子:
-gcmetacapacity選項
- MCMN:元空間最小的容量,單位為KB。
- MCMX:元空間最大的容量,單位為KB。
- MC:當前元空間的容量,單位為KB。
- CCSMN:壓縮類最小的容量,單位為KB。
- CCSMX:壓縮類最大的容量,單位為KB。
- YGC:Young GC的次數。
- FGC:Full GC的次數。
- FGCT:Full GC的所用的時間。
- GCT:GC的所用的總時間。
舉個例子:
-printcompilation選項
Compiled:最近編譯方法執行的編譯任務的數量。
Size:最近編譯方法的位元組碼的位元組數。
Type:最近編譯方法的編譯型別。
Method:最近編譯方法的類名和方法名。
舉個例子:
最後,謝謝你這麼帥,還給我點贊和關注。
微信公眾號:萬貓學社
微信掃描二維碼
關注後回覆「電子書」
獲取12本Java必讀技術書籍