Jstat是JDK自帶的一個輕量級工具,主要用JVM内建的指令對java應用程式的資源和性能進行實時的監控。
基本文法
jstat <option> [-t] [-h] <pid> <interval> <count>
參數解釋:
- option 可以從下面參數中選擇
- -class 顯示ClassLoad的相關資訊;
- -compiler 顯示JIT編譯的相關資訊;
- -gc 顯示和gc相關的堆資訊;
- -gccapacity 顯示各個代的容量以及使用情況;
- -gccause 顯示垃圾回收的相關資訊(通-gcutil),同時顯示最後一次或目前正在發生的垃圾回收的誘因;
- -gcnew 顯示新生代資訊;
- -gcnewcapacity 顯示新生代大小和使用情況;
- -gcold 顯示老年代和永久代的資訊;
- -gcoldcapacity 顯示老年代的大小;
- -gcpermcapacity 顯示永久代的大小;
- -gcutil 顯示垃圾收集資訊;
- -printcompilation輸出JIT編譯的方法資訊;
- -t 可以在列印的列加上Timestamp列,用于顯示系統運作的時間
- -h 可以在周期性資料資料的時候,可以在指定輸出多少行以後輸出一次表頭
- interval 執行每次的間隔時間,機關為毫秒
- count 用于指定輸出多少次記錄,預設則會一直列印
使用說明
首先我們 使用linux指令 ps -ef|grep resin 檢視我要監視程序的pid 23814

-
1、-class (jstat -class pid 1000 5 檢視pid為23814的ClassLoad相關資訊,每秒鐘列印一次,總共列印5次)
- Loaded 加載類的數量
- Bytes 加載類合計大小
- Unloaded 解除安裝類的數量
- Bytes 解除安裝類合計大小
- Time 表示加載和解除安裝類總共的耗時
加載了9276個類,總大小為18045.9byte 解除安裝類0個,總大小為0byte,解除安裝和加載總耗時9.24ms
2、-compiler (Jstat -cpmpiler pid)
- Compiled 表示編譯任務執行的次數
- Failed 表示編譯失敗的次數
- Invalid 表示編譯不可用的次數
- Time 表示編譯的總耗時
- FailedType 表示最後一次編譯的類型
- FailedMethod 表示最後一次編譯失敗的類名和方法名
3、-gc (jstat -gc pid 1000 5 )
- S0C: Survivor0(幸存區0)大小(KB)
- S1C: Survivor1(幸存區1)1大小(KB)
- S0U: Survivor0(幸存區0)已使用大小(KB)
- S1U: Survivor1(幸存區1)已使用大小(KB)
- EC : Eden(伊甸區)大小(KB)
- EU : Eden(伊甸區)已使用大小(KB)
- OC :老年代大小(KB)
- OU : 老年代已使用大小(KB)
- PC : Perm永久代大小(KB)
- PU : Perm永久代已使用大小(KB)
- YGC:新生代GC個數
- YGCT:新生代GC的耗時(秒)
- FGC :Full GC次數
- FGCT:Full GC耗時(秒)
- GCT :GC總耗時(秒)
4、-gccapacity(jstat -gccapacity pid:顯示各個代的容量的資訊)
- NGCMN:新生代最小值(KB)
- NGVMX:新生代最大值(KB)
- NGC:目前新生代大小(KB)
- S0C:同上
- S1C:同上
- EC:同上
- OGCMN:老年代最小值(KB)
- OGCMX:老年代最大值(KB)
- OGC:目前老年代大小(KB)
- OC:同上
- PGCMN:永久代最小值(KB)
- PGCMX:永久代最大值(KB)
- PGC:目前永久代大小(KB)
- PC:同上
- YGC:同上
- FGC:同上
5、-gccause(jstat -gccause pid:顯示最近一次GC的原因)
- LGCC:上一次GC的原因,是G1垃圾回收器回收
- GCC :目前GC的原因
6、-gcnew (jstat -gcnew pid:顯示新生代的詳細資訊)
- TT:新生代到老年代的年齡;
- MTT:新生代到老年代的最大年齡;
- DSS:所需的survivor的大小;
7、-gcnewcapacity(jstat -gcnewcapacity pid:輸出新生代各個區的詳細資訊)
- S0CMX:S0最大空間大小(KB)
- S1CMX:S1最大空間大小(KB)
- ECMX:Eden最大空間大小(KB)
- NGCMX:年輕代最大空間大小(KB)
8、-gcold(jstat -gcold pid:顯示老年代GC的詳細情況)
9、-gcoldcapacity(jstat -gcoldcapacitp pid:輸出老年代的詳細資訊)
10、-gcutil(jstat -gcutil pid:檢視每個代區域使用的百分比情況)