一,介紹
日常JAVA開發過程中,jvm內存是每個程序員避免不了打交道。
本地debug或者winds都可以用jconsole圖形化查看。
二,docker容器中
隨着docker越來越受歡迎,測試和生產環境使用越來愈多 ,進入容器發現jconsole就不太適用了,這個時候就可以通過jstat看GC情況
1,進入docker
進入方式很多,像樓主公司容器平台直接提供入口
2,查詢jar包運行的pid
jps
3,比如樓主用的deployment.jar,線程是113
可以使用jstat -gc 113
三,參數
1,jstat -gc 113 垃圾回收統計
S0C:第一個幸存區的大小
S1C:第二個幸存區的大小
S0U:第一個幸存區的使用大小
S1U:第二個幸存區的使用大小
EC:伊甸園區的大小
EU:伊甸園區的使用大小
OC:老年代大小
OU:老年代使用大小
MC:方法區大小
MU:方法區使用大小
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
YGC:年輕代垃圾回收次數
YGCT:年輕代垃圾回收消耗時間
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
2,jstat -gccapacity 113 堆內存統計
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:當前新生代容量
S0C:第一個幸存區大小
S1C:第二個幸存區的大小
EC:伊甸園區的大小
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:當前老年代大小
OC:當前老年代大小
MCMN:最小元數據容量
MCMX:最大元數據容量
MC:當前元數據空間大小
CCSMN:最小壓縮類空間大小
CCSMX:最大壓縮類空間大小
CCSC:當前壓縮類空間大小
YGC:年輕代gc次數
FGC:老年代GC次數
3,jstat -gcnew 113 新生代垃圾回收統計
S0C:第一個幸存區大小
S1C:第二個幸存區的大小
S0U:第一個幸存區的使用大小
S1U:第二個幸存區的使用大小
TT:對象在新生代存活的次數
MTT:對象在新生代存活的最大次數
DSS:期望的幸存區大小
EC:伊甸園區的大小
EU:伊甸園區的使用大小
YGC:年輕代垃圾回收次數
YGCT:年輕代垃圾回收消耗時間
4,jstat -gcnewcapacity 113 新生代內存統計
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:當前新生代容量
S0CMX:最大幸存1區大小
S0C:當前幸存1區大小
S1CMX:最大幸存2區大小
S1C:當前幸存2區大小
ECMX:最大伊甸園區大小
EC:當前伊甸園區大小
YGC:年輕代垃圾回收次數
FGC:老年代回收次數
5,jstat -gcold 113 老年代垃圾回收統計
MC:方法區大小
MU:方法區使用大小
CCSC:壓縮類空間大小
CCSU:壓縮類空間使用大小
OC:老年代大小
OU:老年代使用大小
YGC:年輕代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
6,jstat -gcoldcapacity 113 老年代內存統計
OGCMN:老年代最小容量
OGCMX:老年代最大容量
OGC:當前老年代大小
OC:老年代大小
YGC:年輕代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間
7,jstat -gcutil 113 總的垃圾回收統計
S0:幸存1區當前使用比例
S1:幸存2區當前使用比例
E:伊甸園區使用比例
O:老年代使用比例
M:元數據區使用比例
CCS:壓縮使用比例
YGC:年輕代垃圾回收次數
FGC:老年代垃圾回收次數
FGCT:老年代垃圾回收消耗時間
GCT:垃圾回收消耗總時間