作用
jstat的主要作用就是對Java應用程序的資源和性能進行實時監控的命令行工具,主要包括GC情況和Heap Size資源使用情況。
jstat命令格式
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
參數解釋:
- option 常見的都是使用-gcutil查看gc情況,其他可選項見下圖。
- vmid : VM的進程號,即當前運行的java進程號。
- interval : 間隔時間,單位為秒或毫秒
- count:打印次數,如果缺省則打印無數次。
option選項代表着用戶希望查詢的虛擬機信息,主要分為3類:類加載、垃圾收集和運行期編譯狀況。具體選項見下圖:
參數interval和count代表查詢間隔和次數,如果省略這兩個參數,說明只查詢一次。假設需要每250毫秒查詢一次進程5828垃圾收集狀況,一共查詢5次,那命令行如下:
jstat -gc 5828 250 5
垃圾回收統計
查看gc的統計信息,關注點 主要是 已使用/總空間的占比情況。
jstat -gcutil 31798
運行截圖(JDK1.8):
參數含義:
參數 | 描述 |
---|---|
S0 | 年輕代中第一個survivor(幸存區)已使用的占當前容量百分比 |
s1 | 年輕代中第二個survivor(幸存區)已使用的占當前容量百分比 |
E | 年輕代中Eden已使用的占當前容量百分比 |
O | old代已使用的占當前容量百分比 |
M | 元空間(MetaspaceSize)已使用的占當前容量百分比 |
CCS | 壓縮使用比例 |
YGC | 年輕代垃圾回收次數 |
FGC | 老年代垃圾回收次數 |
FGCT | 老年代垃圾回收消耗時間 |
GCT | 垃圾回收消耗總時間 |
堆內存使用情況統計
單位KB。
jstat -gccapacity 3400 20 20
運行截圖(JDK1.8):
參數 | 描述 |
---|---|
NGCMN | 新生代最小容量 |
NGCMX | 新生代最大容量 |
NGC | 當前新生代容量 |
S0C | 第一個幸存區大小 |
S1C | 第二個幸存區的大小 |
EC | 伊甸園區的大小 |
OGCMN | 老年代最小容量 |
OGCMX | 老年代最大容量 |
OGC | 當前老年代大小 |
OC | 當前老年代大小 |
MCMN | 最小元數據容量 |
MCMX | 最大元數據容量 |
MC | 當前元數據空間大小 |
CCSMN | 最小壓縮類空間大小 |
CCSMX | 最大壓縮類空間大小 |
CCSC | 當前壓縮類空間大小 |
YGC | 年輕代gc次數 |
FGC | 老年代GC次數 |
類加載統計
jstat -class 3400 1000 100
參數 | 描述 |
---|---|
Loaded | 加載class的數量 |
Bytes | 所占用空間大小 |
Unloaded | 未加載數量 |
Bytes | 未加載占用空間 |
Time | 時間 |