jstat
能夠查看堆各部分的使用量,以及類加載的數量
jstat全部的參數
> jstat -options
jstat -class pid # 顯示ClassLoad相關信息
jstat -compiler pid # 顯示JIT編譯的相關信息
jstat -gc pid # 顯示和gc相關的堆信息
jstat -gccapacity pid # 顯示各個代的容量以及使用狀況
jstat -gccause pid # 顯示垃圾回收相關信息,同時顯示最後一次或正在發生GC的緣由
jstat -gcmetacapacity pid # 顯示`metaspace`的大小
jstat -gcnew pid # 顯示新生代信息
jstat -gcnewcapacity pid # 顯示新生代大小和使用狀況
jstat -gcold pid # 顯示老年代和永久代的信息
jstat -gcoldcapacity pid # 顯示老年代大小
jstat -gcutil pid # 顯示垃圾收集信息
jstat -printcompilation pid # 輸出JIT編譯的方法信息
jstat -class pid
顯示已加載
class
的數量,和空間佔用狀況
> jstat -class 18378
Loaded Bytes Unloaded Bytes Time
23192 42406.6 4121 5982.8 12.65
Loaded 已裝載類的數量
Bytes 已裝載類佔用的大小
Unloaded 已經卸載類的數量
Bytes 已卸載類佔用的大小
Time 裝載類和卸載類的時間
jstat -compiler pid
顯示JVM實時編譯(JIT)信息
> jstat -compiler 18378
Compiled Failed Invalid Time FailedType FailedMethod
29393 2 0 133.63 1 sun/security/util/math/intpoly/IntegerPolynomialP521 carryReduce
Compiled:編譯數量。
Failed:失敗數量
Invalid:不可用數量
Time:時間
FailedType:失敗類型
FailedMethod:失敗的方法
jstat -gc pid
顯示GC相關信息
jstat -gc 18378
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
19968.0 14336.0 0.0 14268.4 1319936.0 672172.2 344064.0 158500.9 145024.0 110813.5 20608.0 12871.0 247 3.224 5 0.794 4.018
S0C:年輕代中第一個survivor(倖存區)的容量 (字節)
S1C:年輕代中第二個survivor(倖存區)的容量 (字節)
S0U :年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U :年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
EC :年輕代中Eden(伊甸園)的容量 (字節)
EU :年輕代中Eden(伊甸園)目前已使用空間 (字節)
OC :Old代的容量 (字節)
OU :Old代目前已使用空間 (字節)
MC:metaspace(元空間)的容量 (字節)
MU:metaspace(元空間)目前已使用空間 (字節)
YGC :從應用程序啓動到採樣時年輕代中gc次數
YGCT :從應用程序啓動到採樣時年輕代中gc所用時間(s)
FGC :從應用程序啓動到採樣時old代(全gc)gc次數
FGCT :從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
jstat -gccapacity pid
展現JVM三代空間大小
> jstat -gccapacity 18378
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
84992.0 1355776.0 1355776.0 19968.0 14336.0 1319936.0 171008.0 2711552.0 344064.0 344064.0 0.0 1173504.0 145024.0 0.0 1048576.0 20608.0 247 5
NGCMN :年輕代(young)中初始化(最小)的大小(字節)
NGCMX :年輕代(young)的最大容量 (字節)
NGC :年輕代(young)中當前的容量 (字節)
S0C :年輕代中第一個survivor(倖存區)的容量 (字節)
S1C : 年輕代中第二個survivor(倖存區)的容量 (字節)
EC :年輕代中Eden(伊甸園)的容量 (字節)
OGCMN :old代中初始化(最小)的大小 (字節)
OGCMX :old代的最大容量(字節)
OGC:old代當前新生成的容量 (字節)
OC :Old代的容量 (字節)
MCMN:metaspace(元空間)中初始化(最小)的大小 (字節)
MCMX :metaspace(元空間)的最大容量 (字節)
MC :metaspace(元空間)當前新生成的容量 (字節)
CCSMN:最小壓縮類空間大小
CCSMX:最大壓縮類空間大小
CCSC:當前壓縮類空間大小
YGC :從應用程序啓動到採樣時年輕代中gc次數
FGC:從應用程序啓動到採樣時old代(全gc)gc次數
jstat -gcmetacapacity pid
> jstat -gcmetacapacity 18378
MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1173504.0 145024.0 0.0 1048576.0 20608.0 248 5 0.794 4.036
MCMN:最小元數據容量
MCMX:最大元數據容量
MC:當前元數據空間大小
CCSMN:最小壓縮類空間大小
CCSMX:最大壓縮類空間大小
CCSC:當前壓縮類空間大小
YGC :從應用程序啓動到採樣時年輕代中gc次數
FGC :從應用程序啓動到採樣時old代(全gc)gc次數
FGCT :從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
jstat -gcnew pid
年輕代對象信息
> jstat -gcnew 18378
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
19968.0 24576.0 19940.4 0.0 8 15 24576.0 1306624.0 155059.4 248 3.242
S0C :年輕代中第一個survivor(倖存區)的容量 (字節)
S1C :年輕代中第二個survivor(倖存區)的容量 (字節)
S0U :年輕代中第一個survivor(倖存區)目前已使用空間 (字節)
S1U :年輕代中第二個survivor(倖存區)目前已使用空間 (字節)
TT:持有次數限制
MTT:最大持有次數限制
DSS:指望的倖存區大小
EC:年輕代中Eden(伊甸園)的容量 (字節)
EU :年輕代中Eden(伊甸園)目前已使用空間 (字節)
YGC :從應用程序啓動到採樣時年輕代中gc次數
YGCT:從應用程序啓動到採樣時年輕代中gc所用時間(s)
jstat -gcnewcapacity pid
年輕代對象的信息和佔用量
> jstat -gcnewcapacity 18378
NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
84992.0 1355776.0 1355776.0 451584.0 19968.0 451584.0 24576.0 1354752.0 1306624.0 248 5
NGCMN :年輕代(young)中初始化(最小)的大小(字節)
NGCMX :年輕代(young)的最大容量 (字節)
NGC :年輕代(young)中當前的容量 (字節)
S0CMX :年輕代中第一個survivor(倖存區)的最大容量 (字節)
S0C :年輕代中第一個survivor(倖存區)的容量 (字節)
S1CMX :年輕代中第二個survivor(倖存區)的最大容量 (字節)
S1C:年輕代中第二個survivor(倖存區)的容量 (字節)
ECMX:年輕代中Eden(伊甸園)的最大容量 (字節)
EC:年輕代中Eden(伊甸園)的容量 (字節)
YGC:從應用程序啓動到採樣時年輕代中gc次數
FGC:從應用程序啓動到採樣時old代(全gc)gc次數
jstat -gcold pid
old代對象信息
> jstat -gcold 18378
MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
145024.0 111038.1 20608.0 12953.0 344064.0 162323.8 248 5 0.794 4.036
MC :metaspace(元空間)的容量 (字節)
MU:metaspace(元空間)目前已使用空間 (字節)
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
OC:Old代的容量 (字節)
OU:Old代目前已使用空間 (字節)
YGC:從應用程序啓動到採樣時年輕代中gc次數
FGC:從應用程序啓動到採樣時old代(全gc)gc次數
FGCT:從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
jstat -gcoldcapacity pid
old代對象信息及其佔用量
> jstat -gcoldcapacity 18378
OGCMN OGCMX OGC OC YGC FGC FGCT GCT
171008.0 2711552.0 344064.0 344064.0 248 5 0.794 4.036
OGCMN :old代中初始化(最小)的大小 (字節)
OGCMX :old代的最大容量(字節)
OGC :old代當前新生成的容量 (字節)
OC :Old代的容量 (字節)
YGC :從應用程序啓動到採樣時年輕代中gc次數
FGC :從應用程序啓動到採樣時old代(全gc)gc次數
FGCT :從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
jstat -gcutil pid
統計GC信息
> jstat -gcutil 18378
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
99.86 0.00 49.82 47.18 76.57 62.85 248 3.242 5 0.794 4.036
S0 :年輕代中第一個survivor(倖存區)已使用的佔當前容量百分比
S1 :年輕代中第二個survivor(倖存區)已使用的佔當前容量百分比
E :年輕代中Eden(伊甸園)已使用的佔當前容量百分比
O :old代已使用的佔當前容量百分比
P :perm代已使用的佔當前容量百分比
YGC :從應用程序啓動到採樣時年輕代中gc次數
YGCT :從應用程序啓動到採樣時年輕代中gc所用時間(s)
FGC :從應用程序啓動到採樣時old代(全gc)gc次數
FGCT :從應用程序啓動到採樣時old代(全gc)gc所用時間(s)
GCT:從應用程序啓動到採樣時gc用的總時間(s)
jstat -gccause pid
顯示垃圾回收的相關信息(通-gcutil),同時顯示最後一次或當前正在發生的垃圾回收的誘因。
> jstat -gccause 18378
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT LGCC GCC
99.86 0.00 50.26 47.18 76.57 62.85 248 3.242 5 0.794 4.036 Allocation Failure No GC
LGCC:最後一次GC緣由
GCC:當前GC緣由(No GC 爲當前沒有執行GC)
jstat -printcompilation pid
當前JVM執行信息
> jstat -printcompilation 18378
Compiled Size Type Method
29469 44 1 hudson/util/LogTaskListener$LogOutputStream <init>
Compiled :編譯任務的數目
Size :方法生成的字節碼的大小
Type:編譯類型
Method:類名和方法名用來標識編譯的方法。類名使用/作爲一個命名空間分隔符。方法名是給定類中的方法。上述格式是由-XX:+PrintComplation選項進行設置的