jstat統計輸出說明


1、jstat統計維度

#jstat 可以通過 -options 選項,查看系統所支持選項
[root@salt opt]# jstat -options
-class
-compiler
-gc
-gccapacity
-gccause
-gcmetacapacity
-gcnew
-gcnewcapacity
-gcold
-gcoldcapacity
-gcutil
-printcompilation

image


2、詳細說明

jstat –class<pid>

[root@salt opt]# jps
3261 Bootstrap
9389 Jps

[root@saltstack opt]# jstat -class 3261
Loaded  Bytes  Unloaded  Bytes     Time   
  3614  7587.0        0     0.0       2.06

字段解釋:
Loaded:加載了的類的數量
Bytes:加載了的類的大小,單為 Kb
Unloaded:卸載了的類的數量
Bytes:卸載了的類的大小,單為 Kb
Time:花在類的加載及卸載的時間


jstat -compiler <pid>

#顯示 VM 實時編譯的數量等信息。HotSpot 中即時編譯器編譯情況的統計
[root@salt opt]# jstat -compiler 3261
Compiled Failed Invalid   Time   FailedType FailedMethod
    2295      0       0    12.31          0

 
解釋:
Compiled:編譯任務執行的次數
Failed:編譯任務執行失敗的次數
Invalid:編譯任務非法執行的次數
Time:執行編譯花費的時間
FailedType:最后一次編譯失敗的編譯類型
FailedMethod:最后一次編譯失敗的類名及方法名


jstat -gc <pid>

#顯示gc的信息,查看 gc 的次數,及時間
[root@salt opt]# jstat -gc 3261
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
20480.0 25600.0 20459.5  0.0   216064.0 144368.7  75264.0    40355.4   15104.0 14732.0 1792.0 1637.8      8    0.185   1      0.077    0.262


解釋:
S0C:新生代中 Survivor space 中 S0 當前容量的大小(KB)
S1C:新生代中 Survivor space 中 S1 當前容量的大小(KB)
S0U:新生代中 Survivor space 中 S0 容量使用的大小(KB)
S1U:新生代中 Survivor space中S1容量使用的大小(KB)
EC:Eden space 當前容量的大小(KB)
EU:Eden space 容量使用的大小(KB)
OC:Old space 當前容量的大小(KB)
OU:Old space 使用容量的大小(KB)
PC:Permanent space 當前容量的大小(KB)
PU:Permanent space 使用容量的大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
YGCT:從應用程序啟動到采樣時 Young GC 所用的時間(秒)
FGC:從應用程序啟動到采樣時發生 Full GC 的次數
FGCT:從應用程序啟動到采樣時 Full GC 所用的時間(秒)
GCT:T 從應用程序啟動到采樣時用於垃圾回收的總時間(單位秒),它的值等於 YGC+FGC


jstat -gccapacity <pid>

#顯示,VM 內存中三代(young,old,perm)對象的使用和占用大小。新生代、老生代及持久代的存儲容量情況
[root@salt opt]# jstat -gccapacity 3261
 NGCMN    NGCMX     NGC     S0C   S1C       EC      OGCMN      OGCMX       OGC         OC       MCMN     MCMX      MC     CCSMN    CCSMX     CCSC    YGC    FGC 
 20992.0 336896.0 293376.0 20480.0 25600.0 216064.0    42496.0   674816.0    75264.0    75264.0      0.0 1062912.0  15104.0      0.0 1048576.0   1792.0      8     1


解釋:
NGCMN:新生代的最小容量大小(KB)
NGCMX:新生代的最大容量大小(KB)
NGC:當前新生代的容量大小(KB)
S0C:當前新生代中survivor space 0的容量大小(KB)
S1C:當前新生代中survivor space 1的容量大小(KB)
EC:Eden space當前容量的大小(KB)
OGCMN:老生代的最小容量大小(KB)
OGCMX:老生代的最大容量大小(KB)
OGC:當前老生代的容量大小(KB)
OC:當前老生代的空間容量大小(KB)
PGCMN:持久代的最小容量大小(KB)
PGCMX:持久代的最大容量大小(KB)
PGC:當前持久代的容量大小(KB)
PC:當前持久代的空間容量大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
FGC:從應用程序啟動到采樣時發生 Full GC 的次數


jstat -gcutil <pid>

#統計 gc 信息,新生代、老生代及持代垃圾收集的情況
[root@salt opt]# jstat -gcutil 3261 1000 3
  S0     S1     E      O      M     CCS    YGC     YGCT    FGC    FGCT     GCT   
 99.90   0.00  66.82  53.62  97.54  91.40      8    0.185     1    0.077    0.262
 99.90   0.00  66.82  53.62  97.54  91.40      8    0.185     1    0.077    0.262
 99.90   0.00  66.82  53.62  97.54  91.40      8    0.185     1    0.077    0.262


解釋:
S0:Heap上的 Survivor space 0 區已使用空間的百分比
S1:Heap上的 Survivor space 1 區已使用空間的百分比
E:Heap上的 Eden space 區已使用空間的百分比
O:Heap上的 Old space 區已使用空間的百分比
P:Perm space 區已使用空間的百分比
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
YGCT:從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)
FGC:從應用程序啟動到采樣時發生 Full GC 的次數
FGCT:從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
GCT:從應用程序啟動到采樣時用於垃圾回收的總時間(單位秒),它的值等於 YGC+FGC


參數:
3261:PID
1000:1000毫秒(1秒),每隔1秒統計一次
3:統計3次


jstat -gcnew <pid>

#年輕代對象的信息,新生代垃圾收集的情況
[root@salt opt]# jstat -gcnew 3261
 S0C    S1C    S0U    S1U   TT MTT  DSS      EC       EU     YGC     YGCT  
20480.0 25600.0 20459.5    0.0  3  15 25600.0 216064.0 146535.0      8    0.185


解釋:
S0C:當前新生代中 survivor space 0 的容量大小(KB)
S1C:當前新生代中 survivor space 1 的容量大小(KB)
S0U:S0 已經使用的大小(KB)
S1U:S1 已經使用的大小(KB)
TT:Tenuring threshold,要了解這個參數,我們需要了解一點Java內存對象的結構,在Sun JVM中,(除了數組之外的)對象都有兩個機器字
(words)的頭部。第一個字中包含這個對象的標示哈希碼以及其他一些類似鎖狀態和等標識信息,第二個字中包含一個指向對象的類的引用,
其中第二個字節就會被垃圾收集算法使用到。
在新生代中做垃圾收集的時候,每次復制一個對象后,將增加這個對象的收集計數,當一個對象在新生代中被復制了一定次數后,該算法即判定
該對象是長周期的對象,把他移動到老生代,這個閾值叫着tenuring threshold。這個閾值用於表示某個/些在執行批定次數youngGC后還活着的
對象,即使此時新生的的Survior沒有滿,也同樣被認為是長周期對象,將會被移到老生代中。

MTT:Maximum tenuring threshold,用於表示TT的最大值。
DSS:Desired survivor size (KB)
EC:Eden space 當前容量的大小(KB)
EU:Eden space 已經使用的大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
YGCT:從應用程序啟動到采樣時 Young GC 所用的時間(單位秒)


jstat -gcnewcapacity <pid>

#年輕代對象的信息及其占用量,新生代的存儲容量情況
[root@salt opt]# jstat -gcnewcapacity 3261
  NGCMN      NGCMX       NGC      S0CMX     S0C     S1CMX     S1C       ECMX        EC      YGC   FGC 
   20992.0   336896.0   293376.0 112128.0  20480.0 112128.0  25600.0   335872.0   216064.0     8     1

解釋:
NGCMN:新生代的最小容量大小(KB)
NGCMX:新生代的最大容量大小(KB)
NGC:當前新生代的容量大小(KB)
S0CMX:新生代中 SO 的最大容量大小(KB)
S0C:當前新生代中 SO 的容量大小(KB)
S1CMX:新生代中 S1 的最大容量大小(KB)
S1C:當前新生代中 S1 的容量大小(KB)
ECMX:新生代中 Eden 的最大容量大小(KB)
EC:當前新生代中 Eden 的容量大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
FGC:從應用程序啟動到采樣時發生 Full GC 的次數


jstat -gcold <pid>

#old 代對象的信息,老生代及持久代發生 GC 的情況
[root@salt opt]# jstat -gcold 3261
   MC       MU      CCSC     CCSU       OC          OU       YGC    FGC    FGCT     GCT   
 15104.0  14732.0   1792.0   1637.8     75264.0     40355.4      8     1    0.077    0.262


解釋:
PC:當前持久代容量的大小(KB)
PU:持久代使用容量的大小(KB)
OC:當前老年代容量的大小(KB)
OU:老年代使用容量的大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
FGC:從應用程序啟動到采樣時發生 Full GC 的次數
FGCT:從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
GCT:從應用程序啟動到采樣時用於垃圾回收的總時間(單位秒),它的值等於YGC+FGC


jstat -gcoldcapacity <pid>

#old 代對象的信息及其占用量,老生代的存儲容量情況
[root@saltstack opt]# jstat -gcoldcapacity 3261
   OGCMN       OGCMX        OGC         OC       YGC   FGC    FGCT     GCT   
    42496.0    674816.0     75264.0     75264.0     8     1    0.077    0.262


解釋:
OGCMN:老生代的最小容量大小(KB)
OGCMX:老生代的最大容量大小(KB)
OGC:當前老生代的容量大小(KB)
OC:當前新生代的空間容量大小(KB)
YGC:從應用程序啟動到采樣時發生 Young GC 的次數
FGC:從應用程序啟動到采樣時發生 Full GC 的次數
FGCT:從應用程序啟動到采樣時 Full GC 所用的時間(單位秒)
GCT:從應用程序啟動到采樣時用於垃圾回收的總時間(單位秒),它的值等於YGC+FGC


jstat -gcmetacapacity <pid>

#perm 對象的信息及其占用量
[root@saltstack opt]# jstat -gcmetacapacity 3261
   MCMN       MCMX        MC       CCSMN      CCSMX       CCSC     YGC   FGC    FGCT     GCT   
       0.0  1062912.0    15104.0        0.0  1048576.0     1792.0     8     1    0.077    0.262


解釋:
MCMN:最小元空間容量(kB)。
MCMX:最大元空間容量(kB)。
MC:元空間容量(kB)。
CCSMN:壓縮類空間最小容量(kB)。
CCSMX:壓縮類空間最大容量(kB)。
YGC:年輕一代GC事件的數量。
FGC:完整GC事件的數量。
FGCT:完全垃圾收集時間。
GCT:垃圾收集總時間。


jstat -gcpermcapacity Java 8 中已經沒有這個命令了,改為 jstat -gcmetacapacity 了


jstat -printcompilation <pid>

#當前 VM 執行的信息
[root@salt opt]# jstat -printcompilation 3261
Compiled  Size  Type Method
    2335   1032    1 java/lang/Throwable$WrappedPrintWriter println


解釋:
Compiled:編譯任務執行的次數
Size:方法的字節碼所占的字節數
Type:編譯類型
Method:指定確定被編譯方法的類名及方法名,類名中使名“/”而不是“.”做為命名分隔符,方法名是被指定的類中的方法,這兩個字段的格式是由
HotSpot中的“-XX:+PrintComplation”選項確定的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM