天天看點

jstat檢視統計JVM資訊

jstat文檔位址https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html#BEHHGFAE

1、類裝載資訊

jstat -class 4431 1000 10 其中1000表示每隔1秒鐘執行一次,10表示輸出10次

-class輸出的結果中Loaded表示加載的類的個數,Bytes表示加載了多少K,Unloaded表示解除安裝的類的個數,第三個字段Bytes表示解除安裝了多少K,Time表示花費在類加載和解除安裝的時間

jstat檢視統計JVM資訊

指令具體使用參考https://docs.oracle.com/javase/8/docs/technotes/tools/unix/index.html

jstat檢視統計JVM資訊

2、垃圾收集資訊

參數有:-gc、-gcutil、-gccause、-gcnew、-gcold

指令舉例:jstat -gc 4431 1000 3 

JDK1.8情況下-gc輸出結果的含義 

S0C、S1C、S0U、S1U:S0和S1的總量與使用量

EC、EU:Eden 區總量與使用量

OC、OU:Old區總量與使用量

MC、MU:Metaspace區總量與使用量

CCSC、CCSU:壓縮類空間總量與使用量

YGC、YGCT:YoungGC的次數與時間

FGC、FGCT:FullGC的次數與時間

GCT:總的GC時間

jstat檢視統計JVM資訊

指令具體使用同上述網址

jstat檢視統計JVM資訊

JVM記憶體結構

JVM記憶體分為堆區和非堆區,堆區分為Young區和Old區,Yong區分為Survivor和Eden,Survivor由S0和S1組成,S0和S1一樣大,在同一時間點隻有一個是啟用的,另一個是空的。 JDK1.8非堆區Metaspace中的CCS,當我們啟用短指針的時候,就會存在CCS;CodeCache存放的是JIT的代碼資訊,也就是把Java代碼轉化為Native代碼時就存放在CodeCache中

jstat檢視統計JVM資訊

3、JIT編譯

參數有:-compiler、-printcompilation

指令舉例:jstat -compiler 4431

-compiler輸出結果中Compiled表示完成了多少個編譯的任務 ,Failed表示失敗的,Invalid表示無效的

jstat檢視統計JVM資訊

指令具體使用同上述網址

jstat檢視統計JVM資訊