況的監控。可見,Jstat是輕量級的、專門針對JVM的工具,很是適用。java
語法結構
jstat命令命令格式:
jstat [Options] vmid [interval] [count]工具
參數說明:
Options — 選項,咱們通常使用 -gcutil 查看gc狀況
vmid — VM的進程號,即當前運行的java進程號
interval– 間隔時間,單位爲秒或者毫秒
count — 打印次數,若是缺省則打印無數次對象
示例:
一、jstat -gc pid
能夠顯示gc的信息,查看gc的次數,及時間。
其中最後五項,分別是young gc的次數,young gc的時間,full gc的次數,full gc的時間,gc的總時間。
二、jstat -gccapacity pid
能夠顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小,
如:PGCMN顯示的是最小perm的內存使用量,PGCMX顯示的是perm的內存最大使用量,
PGC是當前新生成的perm內存佔用量,PC是但前perm內存佔用量。
其餘的能夠根據這個類推, OC是old內純的佔用量。進程
三、jstat -gcutil pid
統計gc信息統計。內存
四、jstat -gcnew pid
年輕代對象的信息。ci
五、jstat -gcnewcapacity pid
年輕代對象的信息及其佔用量。it
六、jstat -gcold pid
old代對象的信息。io
七、stat -gcoldcapacity pid
old代對象的信息及其佔用量。編譯
八、jstat -gcpermcapacity pid
perm對象的信息及其佔用量。class
九、jstat -class pid
顯示加載class的數量,及所佔空間等信息。
十、jstat -compiler pid
顯示VM實時編譯的數量等信息。
十一、jstat -printcompilation pid
當前VM執行的信息。
除了以上一個參數外,還能夠同時加上 兩個數字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,還能夠加上-h3每三行顯示一下標題。
結果說明: S0C:年輕代中第一個survivor(倖存區)的容量 (字節) S1C:年輕代中第二個survivor(倖存區)的容量 (字節) S0U:年輕代中第一個survivor(倖存區)目前已使用空間 (字節) S1U:年輕代中第二個survivor(倖存區)目前已使用空間 (字節) EC:年輕代中Eden(伊甸園)的容量 (字節) EU:年輕代中Eden(伊甸園)目前已使用空間 (字節) OC:Old代的容量 (字節) OU:Old代目前已使用空間 (字節) PC:Perm(持久代)的容量 (字節) PU:Perm(持久代)目前已使用空間 (字節) YGC:從應用程序啓動到採樣時年輕代中gc次數 YGCT:從應用程序啓動到採樣時年輕代中gc所用時間(s) FGC:從應用程序啓動到採樣時old代(全gc)gc次數 FGCT:從應用程序啓動到採樣時old代(全gc)gc所用時間(s) GCT:從應用程序啓動到採樣時gc用的總時間(s) NGCMN:年輕代(young)中初始化(最小)的大小 (字節) NGCMX:年輕代(young)的最大容量 (字節) NGC:年輕代(young)中當前的容量 (字節) OGCMN:old代中初始化(最小)的大小 (字節) OGCMX:old代的最大容量 (字節) OGC:old代當前新生成的容量 (字節) PGCMN:perm代中初始化(最小)的大小 (字節) PGCMX:perm代的最大容量 (字節) PGC:perm代當前新生成的容量 (字節) S0:年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比 S1:年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比 E:年輕代中Eden(伊甸園)已使用的佔當前容量百分比 O:old代已使用的佔當前容量百分比 P:perm代已使用的佔當前容量百分比 S0CMX:年輕代中第一個survivor(倖存區)的最大容量 (字節) S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (字節) ECMX:年輕代中Eden(伊甸園)的最大容量 (字節) DSS:當前須要survivor(倖存區)的容量 (字節)(Eden區已滿) TT: 持有次數限制 MTT : 最大持有次數限制