- 監視虛擬機各類運行狀態信息,顯示本地或者遠程虛擬機進程中的類裝載、內存、垃圾收集、JIT編譯等運行數據。
- 格式:jstat [ option vmid [interval[s|ms] [count]] ]
- 解釋:本地虛擬機進程,vmid就是本地系統的進程ID。若是是遠程虛擬機進程,vmid格式爲:[protocol:][//]vmid[@hostname[:port]/servername]
- 樣例:jstat -gc 2764 250 20
- 可用選項
- -class 監視類裝載、卸載數量、總空間以及類裝載所耗費的時間
- -gc 監視Java堆情況,包括Eden區、兩個survivor區、老年代、永久代等的容量、已用空間、GC時間合計等信息。
- -gccapacity 監視內容與-gc基本相同,但輸出主要關注Java堆各個區域使用到的最大、最小空間。
- -gcutil 監視內容與-gc基本相同,但輸出主要關注已使用空間佔總空間的百分比。
- -gccause 監視內容與-gcutil功能同樣,可是會額外輸出致使上一次GC產生的緣由。
- -gcnew 監視新生代GC情況。
- -gcnewcapacity 監視內容與-gcnew基本相同,輸出主要關注使用到的最大、最小空間。
- -gcold 監視老年代GC情況。
- -gcoldcapacity 監視內容與-gcold基本相同,輸出主要關注使用到的最大、最小空間。
- -gcmetacapacity 監視元數據區空間使用狀況。
- -compiler 輸出JIT編譯器編譯過的方法、耗時等信息。
- -printcompilation 輸出已經被JIT編譯的方法。
- 其餘選項,可經過
jstat -options
命令查看相應jdk版本的選項
jstat -gc 30140 1000 20
:垃圾回收統計(詳細) S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
12288.0 13824.0 12276.3 0.0 193536.0 66873.3 57344.0 12780.8 33152.0 32327.6 4224.0 4079.4 8 0.087 1 0.045 0.132
- 如下容量單位爲字節
- S0C:年輕代中第一個survivor的容量
- S1C:年輕代中第二個survivor的容量
- S0U:年輕代中第一個survivor目前已使用的空間
- S1U:年輕的中第二個survivor目前已使用的空間
- EC:年輕代中Eden的容量
- EU:年輕代中Eden目前已使用的容量
- OC:老年代的容量
- OU:老年代目前已使用的容量
- MC:方法區容量
- MU:方法區目前已使用的容量
- CCSC:壓縮類空間容量
- CCSU:壓縮類空間目前已使用的容量
- YGC:年輕代垃圾回收次數
- YGCT:年輕代垃圾回收消耗時間
- FGC:Full GC次數
- FGCT:Full GC消耗時間
- GCT:垃圾回收消耗總時間
jstat -gccapacity 30140 1000 20
:堆內存統計 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
43520.0 690688.0 246272.0 12288.0 13824.0 193536.0 87552.0 1381888.0 57344.0 57344.0 0.0 1079296.0 33152.0 0.0 1048576.0 4224.0 8 1
- NGCMN:新生代最小容量
- NGCMX:新生代最大容量
- NGC:新生代目前容量
- S0C:年輕代中第一個survivor的容量
- S1C:年輕代中第二個survivor的容量
- EC:年輕代中Eden的容量
- OGCMN:老年代最小容量
- OGCMX:老年代最大容量
- OGC:老年代目前容量
- OC:老年代目前容量
- MCMN:元數據空間最小容量
- MCMX:元數據空間最大容量
- MC:目前元數據空間大小
- CCSMN:壓縮類空間最小容量
- CCSMX:壓縮類空間最大容量
- CCSC:壓縮類空間目前容量
- YGC:年輕代gc次數
- FGC:Full gc次數
jstat -gcnew 30140 1000 20
:新生代垃圾回收統計 S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
12288.0 13824.0 12276.3 0.0 3 15 13824.0 193536.0 66873.3 8 0.087
- S0C:年輕代中第一個survivor的容量
- S1C:年輕代中第二個survivor的容量
- S0U:年輕代中第一個survivor目前已使用的容量
- S1U:年輕代中第二個survivor目前已使用的容量
- TT:對象在新生代存活的次數
- MTT:對象在新生代存活的最大次數
- DSS:指望的倖存區容量
- EC:年輕代中Eden的容量
- EU:年輕代中Eden目前已使用的容量
- YGC:年輕代gc次數
- YGCT:年輕代gc消耗時間
jstat -gcnewcapacity 30140 1000 20
:新生代內存統計 NGCMN NGCMX NGC S0CMX S0C S1CMX S1C ECMX EC YGC FGC
43520.0 690688.0 246272.0 229888.0 12288.0 229888.0 13824.0 689664.0 193536.0 8 1
- NGCMN:新生代最小容量
- NGCMX:新生代最大容量
- NGC:新生代目前容量
- S0CMX:年輕代中第一個survivor最大容量
- S0C:年輕代中第一個survivor的容量
- S1CMX:年輕代中第二個survivor最大容量
- S1C:年輕代中第二個survivor的容量
- ECMX:年輕代中Eden的最大容量
- EC:年輕代中Eden的容量
- YGC:年輕代gc次數
- FGC:Full gc次數
jstat -gcold 30140 1000 20
:老年代垃圾回收統計 MC MU CCSC CCSU OC OU YGC FGC FGCT GCT
33152.0 32327.6 4224.0 4079.4 57344.0 12780.8 8 1 0.045 0.132
- MC:方法區容量
- MU:方法區目前已使用的容量
- CCSC:壓縮類空間容量
- CCSU:壓縮類空間目前已使用的容量
- OC:老年代的容量
- OU:老年代目前已使用的容量
- YGC:年輕代gc次數
- FGC:Full gc次數
- FGCT:Full GC消耗時間
- GCT:垃圾回收消耗總時間
jstat -gcoldcapacity 30140 1000 20
:老年代內存統計 OGCMN OGCMX OGC OC YGC FGC FGCT GCT
87552.0 1381888.0 57344.0 57344.0 8 1 0.045 0.132
- OGCMN:老年代最小容量
- OGCMX:老年代最大容量
- OGC:老年代目前容量
- OC:老年代目前容量
- YGC:年輕代gc次數
- FGC:Full gc次數
- FGCT:Full GC消耗時間
- GCT:垃圾回收消耗總時間
jstat -gcmetacapacity 30140 1000 20
:元數據空間統計 MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC FGCT GCT
0.0 1079296.0 33152.0 0.0 1048576.0 4224.0 8 1 0.045 0.132
- MCMN:元數據空間最小容量
- MCMX:元數據空間最大容量
- MC:目前元數據空間大小
- CCSMN:壓縮類空間最小容量
- CCSMX:壓縮類空間最大容量
- CCSC:壓縮類空間目前容量
- YGC:年輕代gc次數
- FGC:Full gc次數
- FGCT:Full GC消耗時間
- GCT:垃圾回收消耗總時間
jstat -gcutil 30140 1000 20
:垃圾回收統計(彙總) S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
99.91 0.00 34.55 22.29 97.51 96.58 8 0.087 1 0.045 0.132
- S0:年輕代中第一個survivor區當前使用比例
- S1:年輕代中第二個survivor區當前使用比例
- E:年輕代中Eden使用比例
- O:老年代使用比例
- M:元數據區使用比例
- CCS:壓縮類區使用比例
- YGC:年輕代gc次數
- YGCT:年輕代gc消耗時間
- FGC:Full gc次數
- FGCT:Full GC消耗時間
- GCT:垃圾回收消耗總時間