Java的jstat命令使用詳解


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選項

  1. Loaded:加載的類的數量。
  2. Bytes:加載的類所占用的字節數。
  3. Unloaded:卸載的類的數量。
  4. Bytes:卸載的類所占用的字節數。
  5. Time:執行類加載和卸載操作所花費的時間。

舉個例子:

萬貓學社.png

-compiler選項

  1. Compiled:執行的編譯任務的數量。
  2. Failed:執行編譯任務失敗的數量。
  3. Invalid:執行編譯任務失效的數量。
  4. Time:執行編譯任務所花費的時間。
  5. FailedType:上次編譯失敗的編譯類型。
  6. FailedMethod:上次編譯失敗的類名和方法。

舉個例子:

萬貓學社.png

-gc選項

  1. S0C:年輕代中第一個Survivor區的容量,單位為KB。
  2. S1C:年輕代中第二個Survivor區的容量,單位為KB。
  3. S0U:年輕代中第一個Survivor區已使用大小,單位為KB。
  4. S1U:年輕代中第二個Survivor區已使用大小,單位為KB。
  5. EC:年輕代中Eden區的容量,單位為KB。
  6. EU:年輕代中Eden區已使用大小,單位為KB。
  7. OC:老年代的容量,單位為KB。
  8. OU:老年代已使用大小,單位為KB。
  9. MC:元空間的容量,單位為KB。
  10. MU:元空間已使用大小,單位為KB。
  11. CCSC:壓縮類的容量,單位為KB。
  12. CCSU:壓縮類已使用大小,單位為KB。
  13. YGC:Young GC的次數。
  14. YGCT:Young GC所用的時間。
  15. FGC:Full GC的次數。
  16. FGCT:Full GC的所用的時間。
  17. GCT:GC的所用的總時間。

舉個例子:

萬貓學社.png

-gccapacity選項

  1. NGCMN:年輕代最小的容量,單位為KB。
  2. NGCMX:年輕代最大的容量,單位為KB。
  3. NGC:當前年輕代的容量,單位為KB。
  4. S0C:年輕代中第一個Survivor區的容量,單位為KB。
  5. S1C:年輕代中第二個Survivor區的容量,單位為KB。
  6. EC:年輕代中Eden區的容量,單位為KB。
  7. OGCMN:老年代最小的容量,單位為KB。
  8. OGCMX:老年代最大的容量,單位為KB。
  9. OGC:當前老年代的容量,單位為KB。
  10. OC:當前老年代的容量,單位為KB。
  11. MCMN:元空間最小的容量,單位為KB。
  12. MCMX:元空間最大的容量,單位為KB。
  13. MC:當前元空間的容量,單位為KB。
  14. CCSMN:壓縮類最小的容量,單位為KB。
  15. CCSMX:壓縮類最大的容量,單位為KB。
  16. CCSC:當前壓縮類的容量,單位為KB。
  17. YGC:Young GC的次數。
  18. FGC:Full GC的次數。

舉個例子:

萬貓學社.png

-gcutil選項

  1. S0:年輕代中第一個Survivor區使用大小占當前容量的百分比。
  2. S1:年輕代中第二個Survivor區使用大小占當前容量的百分比。
  3. E:Eden區使用大小占當前容量的百分比。
  4. O:老年代使用大小占當前容量的百分比。
  5. M:元空間使用大小占當前容量的百分比。
  6. CCS:壓縮類使用大小占當前容量的百分比。
  7. YGC:Young GC的次數。
  8. YGCT:Young GC所用的時間。
  9. FGC:Full GC的次數。
  10. FGCT:Full GC的所用的時間。
  11. GCT:GC的所用的總時間。

舉個例子:

萬貓學社.png

-gccause選項

  1. S0:年輕代中第一個Survivor區使用大小占當前容量的百分比。
  2. S1:年輕代中第二個Survivor區使用大小占當前容量的百分比。
  3. E:Eden區使用大小占當前容量的百分比。
  4. O:老年代使用大小占當前容量的百分比。
  5. M:元空間使用大小占當前容量的百分比。
  6. CCS:壓縮類使用大小占當前容量的百分比。
  7. YGC:Young GC的次數。
  8. YGCT:Young GC所用的時間。
  9. FGC:Full GC的次數。
  10. FGCT:Full GC的所用的時間。
  11. GCT:GC的所用的總時間。
  12. LGCC:上次垃圾回收的原因。
  13. GCC:當前垃圾回收的原因。

舉個例子:

萬貓學社.png

-gcnew選項

  1. S0C:年輕代中第一個Survivor區的容量,單位為KB。
  2. S1C:年輕代中第二個Survivor區的容量,單位為KB。
  3. S0U:年輕代中第一個Survivor區已使用大小,單位為KB。
  4. S1U:年輕代中第二個Survivor區已使用大小,單位為KB。
  5. TT:對象在年輕代存活的次數。
  6. MTT:對象在年輕代存活的最大次數
  7. DSS:期望的Survivor區大小,單位為KB。
  8. EC:年輕代中Eden區的容量,單位為KB。
  9. EU:年輕代中Eden區已使用大小,單位為KB。
  10. YGC:Young GC的次數。
  11. YGCT:Young GC所用的時間。

舉個例子:

萬貓學社.png

-gcnewcapacity選項

  1. NGCMN:年輕代最小的容量,單位為KB。
  2. NGCMX:年輕代最大的容量,單位為KB。
  3. NGC:當前年輕代的容量,單位為KB。
  4. S0CMX:年輕代中第一個Survivor區最大的容量,單位為KB。
  5. S0C:年輕代中第一個Survivor區的容量,單位為KB。
  6. S1CMX:年輕代中第二個Survivor區最大的容量,單位為KB。
  7. S1C:年輕代中第二個Survivor區的容量,單位為KB。
  8. ECMX:年輕代中Eden區最大的容量,單位為KB。
  9. EC:年輕代中Eden區的容量,單位為KB。
  10. YGC:Young GC的次數。
  11. FGC:Full GC的次數。

舉個例子:

萬貓學社.png

-gcold選項

  1. MC:元空間的容量,單位為KB。
  2. MU:元空間已使用大小,單位為KB。
  3. CCSC:壓縮類的容量,單位為KB。
  4. CCSU:壓縮類已使用大小,單位為KB。
  5. OC:老年代的容量,單位為KB。
  6. OU:老年代已使用大小,單位為KB。
  7. YGC:Young GC的次數。
  8. FGC:Full GC的次數。
  9. FGCT:Full GC的所用的時間。
  10. GCT:GC的所用的總時間。

舉個例子:

萬貓學社.png

-gcoldcapacity選項

  1. OGCMN:老年代最小的容量,單位為KB。
  2. OGCMX:老年代最大的容量,單位為KB。
  3. OGC:當前老年代的容量,單位為KB。
  4. OC:當前老年代的容量,單位為KB。
  5. YGC:Young GC的次數。
  6. FGC:Full GC的次數。
  7. FGCT:Full GC的所用的時間。
  8. GCT:GC的所用的總時間。

舉個例子:

萬貓學社.png

-gcmetacapacity選項

  1. MCMN:元空間最小的容量,單位為KB。
  2. MCMX:元空間最大的容量,單位為KB。
  3. MC:當前元空間的容量,單位為KB。
  4. CCSMN:壓縮類最小的容量,單位為KB。
  5. CCSMX:壓縮類最大的容量,單位為KB。
  6. YGC:Young GC的次數。
  7. FGC:Full GC的次數。
  8. FGCT:Full GC的所用的時間。
  9. GCT:GC的所用的總時間。

舉個例子:

萬貓學社.png

-printcompilation選項

Compiled:最近編譯方法執行的編譯任務的數量。
Size:最近編譯方法的字節碼的字節數。
Type:最近編譯方法的編譯類型。
Method:最近編譯方法的類名和方法名。

舉個例子:

萬貓學社.png

最后,謝謝你這么帥,還給我點贊關注

微信公眾號:萬貓學社

微信掃描二維碼

關注后回復「電子書」

獲取12本Java必讀技術書籍


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM