問題:
線上在維護的一個項目,在每次項目釋出啟動的時都會觸發一次Full GC 。
排查:
1:結合GC日志檢視發生成Full GC 都是項目剛啟動就會發生一次垃圾整理回收的過程如下圖:

2:結合監控系統檢視名額發現MeataData使用量如下圖:
檢查JVM參數設定發現參數設定為:
-XX:MetaspaceSize=96m, -XX:MaxMetaspaceSize=192m:這個代表元空間初始值為:96m,最大可占用192m,
結合監控系統的名額:系統運作穩定的情況下MeataData的值在130m左右。
問題引起原因:如果元空間使用量一旦達到或者超過-XX:MetaspaceSize=96m初始值,就會進行擴容,擴容時會引起Full GC。
解決問題:
調整jvm參數為:-XX:MetaspaceSize=192m, -XX:MaxMetaspaceSize=192m
驗證:
調整參數後重新釋出項目,釋出後,Gc日志情況如下圖:
通過一段時間的監控問題得到解決。