JVM的監控工具之jstat

參考博客:http://www.javashuo.com/article/p-kclaiqxv-ex.htmlhtml

 

jstat(JVMStatisticsMonitoringTool)是用於監視虛擬機各類運行狀態信息的命令行工具。它能夠顯示本地或者遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據,
在沒有GUI圖形界面,只提供了純文本控制檯環境的服務器上,它將是運行期定位虛擬機性能問題的首選工具。服務器

執行jstat的命令:咱們能夠看到能夠跟[option],選項option表明着用戶但願查詢的虛擬機信息,主要分爲3類:類裝載、垃圾收集、運行期編譯情況。能夠跟VMID(惟一進程號),再跟interval和count表明查詢間隔和次數,
若是省略這兩個參說明只查詢一次。ide

 

假設須要每250毫秒查詢一次進程idea進程爲40416垃圾收集情況,一共查詢20次,那命令應當是: jstat  -gc  17312 250 20  工具

 

執行結果中能夠看出,S0C表明是Survivor0區,S1C表明是Survivor1區,C表明是容量的意思,U表明是已使用的意思,EC表明Eden區的容量,EU表明Eden區的使用。OC表明老年代的容量,OU表明老年代的使用。
M表明元數據空間。CCSC和CCSU表明的是壓縮類的容量大小和壓縮類的使用空間大小,YGC的次數,YGCT回收年輕代所需的時間。FGC表明的是Full GC的次數,FGCT表明Full GC的時間,GCT表明垃圾回收整個的時間。性能

 

jstat -options idea

 

能夠列出當前JVM版本支持的選項,常見的有命令行

 

l  class (類加載器) 3d

l  compiler (JIT) htm

l  gc (GC堆狀態) 對象

l  gccapacity (各區大小) 

l  gccause (最近一次GC統計和緣由) 

l  gcnew (新區統計)

l  gcnewcapacity (新區大小)

l  gcold (老區統計)

l  gcoldcapacity (老區大小)

l  gcpermcapacity (永久區大小)

l  gcutil (GC統計彙總)

l  printcompilation (HotSpot編譯統計)

 

查看進程id爲17312 的加載類信息 :jstat -class 17312

顯示列名   具體描述

Loaded   裝載的類的數量
Bytes     裝載類所佔用的字節數
Unloaded  卸載類的數量
Bytes    卸載類的字節數
Time    裝載和卸載類所花費的時間

查看gc發生的緣由:

jstat -gccause 17312  250 20

 

能夠看出當前進程最近一段時間內沒有發生過GC

 

假如咱們來監測新生代,jstat -gcnew 17312  250 20  這個命令就只會列出和新生代相關的部分。

能夠看到老年代 相關的屬性再也不展現

 

假如咱們來監測老年代, jstat -gcold 17312  250 20  這個命令就只會列出和老年代相關的部分。

能夠看到年輕代的相關屬性再也不展現

 

 jstat -compiler <pid>顯示VM實時編譯的數量等信息。

 

顯示列名 具體描述
Compiled 編譯任務執行數量
Failed 編譯任務執行失敗數量
Invalid 編譯任務執行失效數量
Time 編譯任務消耗時間
FailedType 最後一個編譯失敗任務的類型
FailedMethod 最後一個編譯失敗任務所在的類及方法

 

jstat -gccapacity <pid>:能夠顯示,VM內存中三代(young,old,perm)對象的使用和佔用大小

顯示列名 具體描述
NGCMN 年輕代(young)中初始化(最小)的大小(字節)
NGCMX 年輕代(young)的最大容量 (字節)
NGC 年輕代(young)中當前的容量 (字節)
S0C 年輕代中第一個survivor(倖存區)的容量 (字節)
S1C 年輕代中第二個survivor(倖存區)的容量 (字節)
EC 年輕代中Eden(伊甸園)的容量 (字節)
OGCMN old代中初始化(最小)的大小 (字節)
OGCMX old代的最大容量(字節)
OGC old代當前新生成的容量 (字節)
OC Old代的容量 (字節)
PGCMN perm代中初始化(最小)的大小 (字節)
PGCMX perm代的最大容量 (字節)
PGC perm代當前新生成的容量 (字節)
PC Perm(持久代)的容量 (字節)
YGC 從應用程序啓動到採樣時年輕代中gc次數
FGC 從應用程序啓動到採樣時old代(全gc)gc次數

 

jstat -gcutil <pid>:統計gc信息

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)

相關文章
相關標籤/搜索