jstat查看JVM的GC狀況

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選項進行設置的

相關文章
相關標籤/搜索