jstat用來監控jvm內存各區域運行狀態,格式如下:
jstat 參數 vmid 監聽間隔時間 監聽次數
使用方法如,vmid可以通過jps查詢:
jstat -gc 52113 1000 100
即:監聽進程id爲52113的應用的堆狀況,包含eden、2個survior、old、perm、以及gc的時間等信息。
參數如下:
- -class 監控類裝載、卸載數量、總空間以及裝載類所耗時間;
- -gc 監控應用的堆狀況,包含eden、2個survior、old、perm、以及gc的時間等信息;
- -gccapacity 監控的內容與-gc基本相同,但輸出的是java堆各個區域使用的最大和最小空間;
- -gcutil 監控內容與-gc基本相同,但輸出的都是空間的佔總空間的比例;
- -gccause 與-gcutil一樣,但額外輸出導致上次gc產生的原因;
- -gcnew 監控新生代gc情況;
- -gcnewcapacity 監控內容與-gcnew基本相同,輸出的是最大和最小空間;
- -gcold 監控老年的gc情況;
- -gcoldcapacity 監控內容與-gc基本相同,輸出的是最大和最小空間;
- -gcpermcapacity 輸出永久帶最大和最小空間;
- -compiler 輸出JIT編譯過的方法、耗時等信息;
- -printcompilation 輸出已經被JIT編譯的方法。
下面詳細介紹下jstat每個參數返回結果:
參數-class
Loaded:裝載的類的數量 Bytes:裝載類的字節大小;
Unloaded:卸載的類的數量 Bytes:卸載類的字節大小;
Time:裝載和卸載類所花費的時間。
參數-gc
S0C:新生代第一個survivor(from survivor)的空間大小(字節);
S1C:新生代第二個survivor(to survivor)的空間大小(字節);
S0U:新生代第一個survivor(from survivor)使用空間大小(字節);
S1U:新生代第二個survivor(to survivor)的使用空間大小(字節);
EC:新生代eden空間大小(字節);
EU:新生代eden使用空間大小(字節);
OC:老年代空間大小(字節);
OU:老年代使用空間大小(字節);
PC:永久代空間大小(字節);
PU:永久代使用空間大小(字節);
YGC:minor gc次數;
YGCT:minor gc佔用時間;
FGC:full gc次數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間。
參數-gccapacity
NGCMN:新生代初始化(最小)空間大小(字節);
NGCMX:新生代最大空間大小(字節);
NGC:新生代當前空間大小(字節);
S0C:新生代第一個survivor(from survivor)的空間大小(字節);
S1C:新生代第二個survivor(to survivor)的空間大小(字節);
EC:新生代eden空間大小(字節);
OGCMN:老年代初始化(最小)空間大小(字節);
OGCMX:老年代最大空間大小(字節);
OGC:老年代當前新生成的空間大小 (字節);
OC:老年代空間大小(字節);
PGCMN:永久代初始化(最小)空間大小(字節);
PGCMX:永久代最大空間大小(字節);
PGC:永久代當前新生成的空間大小(字節);
PC:永久代空間大小(字節);
YGC:minor gc次數;
FGC:full gc次數。
參數-gcutil
S0:新生代第一個survivor(from survivor)的使用空間大小(百分比);
S1:新生代第二個survivor(to survivor)的使用空間大小(百分比);
E:新生代eden使用空間大小(百分比);
O:老年代使用空間大小(百分比);
P:永久代使用空間大小(百分比);
YGC:minor gc次數;
YGCT:minor gc佔用時間;
FGC:full gc次數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間。
參數-gccause
S0:新生代第一個survivor(from survivor)的使用空間大小(百分比);
S1:新生代第二個survivor(to survivor)的使用空間大小(百分比);
E:新生代eden使用空間大小(百分比);
O:老年代使用空間大小(百分比);
P:永久代使用空間大小(百分比);
YGC:minor gc次數;
YGCT:minor gc佔用時間;
FGC:full gc次數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間;
LGCC:最後一次垃圾回收的原因;
GCC:本次垃圾回收的原因。
參數-gcnew
S0:新生代第一個survivor(from survivor)的使用空間大小(百分比);
S1:新生代第二個survivor(to survivor)的使用空間大小(百分比);
S0U:新生代第一個survivor(from survivor)使用空間大小(字節);
S1U:新生代第二個survivor(to survivor)的使用空間大小(字節);
TT:對象在新生代存活的次數;
MTT:對象在新生代存活的最大次數;
DSS:期望的survivor大小(字節);
EC:新生代eden空間大小(字節);
EU:新生代eden空間使用的大小(字節);
YGC:minor gc次數;
YGCT:minor gc佔用時間。
參數-gcnewcapacity
NGCMN:新生代初始化(最小)空間大小(字節);
NGCMX:新生代最大空間大小(字節);
NGC:當前新生代空間大小(字節);
S0CMX:新生代第一個survivor(from survivor)的最大空間大小(字節);
S0C:當前新生代第一個survivor(from survivor)的空間大小(字節);
S1CMX:新生代第二個survivor(to survivor)的最大空間大小(字節);
S1C:當前新生代第二個survivor(to survivor)的空間大小(字節);
ECMX:新生代eden最大空間大小(字節);
EC:當前新生代eden空間大小(字節);
YGC:minor gc次數;
FGC:full gc次數。
參數-gcold
PC:永久代空間大小(字節);
PU:永久代使用空間大小(字節);
OC:老年代空間大小(字節);
OU:老年代使用空間大小(字節);
YGC:minor gc次數;
FGC:full gc次數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間。
參數-gcoldcapacity
OGCMN:老年代初始化(最小)空間大小(字節);
OGCMX:老年代最大空間大小(字節);
OGC:老年代當前新生成的空間大小 (字節);
OC:老年代空間大小(字節);
YGC:minor gc數;
FGC:full gc數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間。
參數-gcpermcapacity
PGCMN:永久代初始化(最小)空間大小(字節);
PGCMX:永久代最大空間大小(字節);
PGC:永久代當前新生成的空間大小(字節);
PC:永久代空間大小(字節);
YGC:minor gc數;
FGC:full gc數;
FGCT:full gc佔用時間;
GCT:gc總共佔用時間。
參數-compiler
Compiled:JIT編譯執行次數;
Failed:JIT編譯執行失敗次數;
Invalid:JIT編譯執行失效次數;
Time:JIT編譯執行時間;
FailedType:最後一個JIT編譯失敗類型;
FailedMethod:最後一個JIT編譯失敗的類和方法。
參數-printcompilation
Compiled:JIT編譯執行次數;
Size:方法生成的字節碼大小(字節);
Type:編譯類型;
Method:類名和方法名用來標識編譯的方法。
類名使用/做爲一個命名空間分隔符。
方法名是給定類中的方法。
上述格式是由-XX:+PrintComplation選項進行設置的。