查看 java 進程垃圾回收情況
jstat -gcutil 28580 2s 5
- 28580 表示進程號
- 2s 表示每次打印時間間隔為 2 秒
- 5 表示打印五次
- S0 S1 E O M 均表示各個空間使用百分比
- S0 Survivor0區(qū)
- S1 Survivor1區(qū)
- E Eden區(qū)
- O Old 區(qū)
- M MetaSpace(原方法區(qū))
- YGC 新生代垃圾回收執(zhí)行次數(shù)镰吵,edn 區(qū)空間不足時執(zhí)行(執(zhí)行頻率比較高僻族,因為大部分對象的存活壽命較短癞志,在新生代里被回收,性能消耗小蜕乡,耗時短)
- YGCT 新生代垃圾回收總耗時
- FGC 全堆范圍進行垃圾回收次數(shù)侨歉,主要是 old 區(qū)或 metaspace區(qū)空間不足時執(zhí)行(執(zhí)行頻率比較低,性能消耗大简烤,耗時較長)
- FGCT 全堆范圍垃圾回收總耗時
- GCT 垃圾回收總耗時
jstat -gc 28580 2s 5
- 28580 表示進程號
- 2s 表示每次打印時間間隔為 2 秒
- 5 表示打印五次
- S0C S0 Capacity错蝴,即 S0 區(qū)實際空間容量大小
- S0U S0 Used,即 S0 區(qū)實際使用空間大小颓芭,S0U/S0C=S0(第一個圖中的 S0)
- S1C S1U EC EU OC OU MC MU 以此類推
- (S0C+S1C+EC+OC)/1024=MaxHeapSize
(3072+3072+2091008+2097152)/1024=4096顷锰,即最大堆容量為 4096 兆 - MC/1024=71640/1024=69.9,即 MetaSpace 容量大小為 69.9 兆
- 此處看到的 MC 大小與 jvm 參數(shù)中設(shè)置的
-XX:MetaspaceSize
無關(guān)系亡问,-XX:MetaspaceSize
設(shè)置的是擴容閾值
jmap -heap 28580
- From Space 和 To Space 對應(yīng)的就是 S0官紫、S1 區(qū)肛宋,兩區(qū)交替變?yōu)?From 和 To
- NewRatio 默認值是 2,即老年代:新生代=2:1束世,如果手動設(shè)置
-Xmn
酝陈、-XX:NewSize
、-XX:MaxNewSize
毁涉,則比例以手動設(shè)置為準 - SurvivorRatio 默認值是 8沉帮,即 eden:survivor0:survivor1=8:1:1,但 jvm 中內(nèi)存分配策略自適應(yīng)功能默認是開啟的贫堰,實際比例可能不是嚴格的 8:1:1穆壕,通過參數(shù)
-XX:-UseAdaptiveSizePolicy
可以關(guān)閉自適應(yīng),關(guān)閉后就是嚴格的 8:1
-Xms2048m
堆內(nèi)存初始值(建議與 Xmx 設(shè)置一樣的值)-Xmx2048m
堆內(nèi)存最大值-Xmn1024m
新生代初始值(相當于對-XX:newSize其屏、-XX:MaxnewSize同時設(shè)置)-XX:NewSize=512m
新生代初始值(該值需要小于-Xms的值)-XX:MaxNewSize=1024m
新生代最大值(該值需要小于-Xmx的值)-XX:MetaspaceSize=256m
元空間(方法區(qū))擴容閾值(-XX:PermSize jdk7)-XX:MaxMetaspaceSize=256m
元空間最大值(-XX:MaxPermSize jdk7)
Metaspace實際分配的大小是隨著需要逐步擴大的喇勋,每次擴大需要一次FGC,-XX:MetaspaceSize
默認的值比較小偎行,需要頻繁GC擴充到需要的大小川背,為減少預熱影響,可以將-XX:MetaspaceSize
蛤袒,-XX:MaxMetaspaceSize
指定成相同的值熄云。
示例:
-Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
-Xms2048m -Xmx2048m -Xmn1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
-Xms2048m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
推薦使用:
-Xms2048m -Xmx2048m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8