穩定性測試JVM記憶體監控

在weblogic中配置應用啟動引數,加入如下引數來生成gc日誌,供測試進行JVM記憶體分析。

-verbose:gc -XX: PrintGCDetails -XX: PrintGCTimeStamps -Xloggc:/home/ap/epsvc/domains/SVCDOM/servers/mSrv1/logs/gc_mSrv1.log

在非功能穩定性測試案例執行時,分析應用生成的gc日誌來判斷JVM記憶體使用是否正常。使用HPJmeter開啟生成的gc_mSrv1.log,主要檢視Summary和Heap Usage After GC 頁:

1、檢視Summary頁,重點檢視圖1所示兩項引數, 表示GC與Full GC時間佔比,如果超過5%, 首先檢查記憶體配置是否合理 (參考值Heap Size設定一般應用為2G,特殊應用可以配置為4G或更多,Perm Size建議範圍是256M~768M)。如果記憶體配置不合理,可能存在記憶體洩露或導致GC頻繁.

 

圖1 Summary頁資訊

2、 檢視Heap Usage After GC頁,圖2和圖3中黃色點為Fullgc點,需要進行重點關注。

 

圖2  2個小時GC曲線

 

圖3  12小時GC曲線

如果遇到gc日誌檔案較大,可以通過左鍵選中穩定性執行區間然後放大進行檢視。

3、 結果分析:

(1) 正常情況下,gc回收的頻率均勻,full gc 的黃色點按照水平直線分佈。如果full gc後,黃色點有線性增長的趨勢,則說明可能存在記憶體溢位。出現該情況,需要給出特殊說明(如應用存在記憶體資料快取等特點,說明快取資料量的大小,是否有限制或者清理策略等)。

(2) 如果在穩定性測試時間內未發生2次Full GC(黃色點), 說明系統的負載較低 , 有條件的情況下將穩定性測試時間延長,保證至少出現2次Full GC,且2次Full GC後 Heap 記憶體差值小於Heap 總記憶體的20%。