內存泄露問題排查

1. 發現cpu持續佔用高,定位佔用cpu比較多的進程spa

2. 進一步定位進程裏面具體哪些線程佔用高top -Hp 873線程

3. 上面線程pid轉成16進制,jstack 873找到對應的線程,發現是垃圾回收線程orm

4. 看看爲何垃圾回收這麼頻繁,jstat -gcutil 873 1000 對象

2. 發現內存增加很是快,年老代很快就滿了,頻繁的執行full gc,因此猜想是年輕代中長時間有對象不釋放,直接把內存dump下來用MemoryAnalyzer分析一下 jmap -dump:format=b,file=dump1.hprof 873進程

用MemoryAnalyzer分析找到對應的佔用內存比較多的對象內存

點擊Details後:form

找到了佔用最大的對象, 根據上面的定位分析對應的代碼邏輯,看爲何這個對象沒有被釋放。file

相關文章
相關標籤/搜索