jstat(Java Virtual Machine statistics monitoring tool)——查看堆內各個部分的使用量,以及加載類的數量
命令格式:jstat [generalOption | outputOptions vmid [ interval [ s|ms ] [ count ] ] ]
注意:該命令老一點的系統中是不可用,如Windows 98和Windows ME。
注意:下面部分操作截圖中,使用的jdk8版本
generalOption:簡單通用命令行選項 (-help,-options, or -version)
-help:展示命令相關信息
-version:展示版本信息
-options:顯示統計選項的列表。 請參閱下面的輸出選項部分
outputOptions:
-statOption:
class:關於類加載器行爲的統計信息
compiler:HotSpot即時編譯器行爲的統計信息
gc:垃圾回收堆行爲的統計信息
gacapacity:統計內存三代(young、old、permanent)及他們空間信息
gccause:垃圾收集統計(與-gcutil相同)的摘要,以及最後一個和當前(如果適用)垃圾回收事件的cause
gcnew:新生代的統計信息
gcnewcapacity:新生代及其空間使用情況
gcold:老年代和永久代的統計信息
gcoldcapacity:老年代容量的使用情況
gcpermcapacity:永久代容量的使用情況
gcutil:垃圾回收統計
printcompilation:hotSpot編譯器方法統計
-h n:設置隔n行顯示header
-t:第一列顯示一個時間戳,當前時間與jvm啓動時間的時間間隔
-J (option):將選項傳遞給java程序(例如:-J -Xms48m 將啓動內存設置爲48兆字節。 -J通過是一個通用的約定執行用Java編寫的應用程序的底層VM選項)
下面對於statOption做詳細的說明,在使用的過程中,打印的信息表示什麼意思
class:類加載統計
jstat -class 4718
Loaded Bytes Unloaded Bytes Time
3297 6221.3 0 0.0 1.46
Loaded:加載class的數量
Bytes:所佔用空間大小
Unloaded:未加載數量
Bytes:未加載佔用空間
Time:花費在執行類加載和未加載操作上的時間
compiler:HotSpot即時編譯器行爲的統計信息
Compiled:編譯數量
Failed:失敗數量
Invalid:不可用數量
Time:編譯花費的時間
FailedType:最近一次編譯失敗的編譯類型(網上找了一大圈,發現和我這票相關的文章,幾乎內容一模一樣,可就是沒有這個FailedType字段值的解釋,難道真是“天下文章一大抄” ?。無奈,找官方文檔,也沒找出是啥意思。好吧,我也不糾結了,官方文檔地址是:https://docs.oracle.com/javase/6/docs/technotes/tools/share/jstat.html#compiler_option 如果有知道的朋友,請在評論區告訴我,謝謝!)
FailedMethod:最近一次編譯失敗的類名和方法名
gc:垃圾回收堆行爲的統計信息
jstat -gc 4718
圖1
S0C:survivor 0的容量(KB)
S1C:survivor 1的容量(KB)
S0U:survivor 0已使用情況(KB)
S1U:survivor 1已使用情況(KB)
EC:Eden的空間容量(KB)
EU:Eden已使用情況(KB)
OC:老年代空間容量(KB)
OU:老年代已使用大小(KB)
MC:方法區空間容量(KB)
MU:方法區使用大小(KB)
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
YGC:新生代垃圾回收次數
YGCT:新生代垃圾回收消耗時間
FGC:full gc發生次數
FGCT:full gc消耗時間
GCT:垃圾回收消耗總時間
gacapacity:統計內存三代(young、old、permanent)及他們空間使用信息
jstat -gccapacity 4718
圖2
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:當前新生代容量
S0C:survivor 0的容量
S1C:survivor 1的容量
EC:Eden的空間容量
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:當前老年代容量
OC: 當前老年代空間大小
MCMN: 永久代最小容量
MCMX:永久代最大容量
MC:當前元數據空間大小
CCSMN:最小壓縮類空間大小
CCSMX:最大壓縮類空間大小
CCSC:當前壓縮類空間大小
YGC:年輕代gc次數
FGC:老年代GC次數
gcutil:垃圾回收統計
jstat -gcutil 4718 500 10
圖3
S0:survivor 0當前使用比例
S1:survivor 1當前使用比例
E:永久代使用比例
O:老年代使用比例
M:元數據區使用比例
CCS:壓縮使用比例
YGC:新生代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
gccause:垃圾收集統計(與-gcutil相同)的摘要,以及上次和當前(如果適用)垃圾回收事件的cause
jstat -gccause 4718 500 10
圖4
LGCC:上次垃圾回收的cause
GCC:當前垃圾回收的cause
gcnew:新生代統計
jstat -gcnew 4718 500 10
圖5
S0C:survivor 0的容量大小
S1C:survivor 1的容量大小
S0U:survivor 0的使用大小
S1U:survivor 1的使用大小
TT: 對象在新生代存活的次數
MTT: 對象在新生代存活的最大次數
DSS:期望的survivor大小
EC:Eden的容量大小
EU:Eden的使用大小
YGC:新生代垃圾回收次數
YGCT:新生代垃圾回收消耗時間
gcnewcapacity:新生代空間大小統計
jstat -gcnewcapacity 4718 500 10
圖6
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:當前新生代容量
S0CMX:最大survivor 0大小
S0C:當前survivor 0大小
S1CMX:最大survivor 1大小
S1C:當前survivor 1大小
ECMX:最大Eden區空間大小
EC:當前Eden區空間大小
YGC:新生代垃圾回收次數
FGC:老年代回收次數
gcold:老年代和永久代的統計信息
jstat -gcold 4718 500 10
圖7
MC:方法區大小
MU:方法區使用大小
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
OC:老年代大小
OU:老年代使用大小
YGC:新生代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
gcoldcapacity:新生代及其空間使用情況
jstat -gcoldcapacity 4718 500 10
圖8
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:當前老年代大小
OC:老年代大小
YGC:新生代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
gcpermcapacity:永久代容量的使用情況
PGCMN:perm代中最小容量 (KB)
PGCMX:perm代的最大容量 (KB)
PGC:perm代當前新生成的容量 (KB)
PC:Perm(持久代)的容量 (KB)
YGC:從應用程序啓動到採樣時新生代中gc次數
FGC:從應用程序啓動到採樣時老年代(全gc)gc次數
FGCT:從應用程序啓動到採樣時老年代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
printcompilation:hotSpot編譯器方法統計
jstat -printcompilation 4718 500 10
圖9
Compiled:最近編譯方法的數量
Size:最近編譯方法的字節碼數量
Type:最近編譯方法的編譯類型
Method:方法名標識
作者:smallAttr
鏈接:https://www.jianshu.com/p/35dd22216de4
來源:簡書
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。