本文整理了一份OOM內(nèi)存泄露問題速查備忘錄,詳細(xì)見下文。UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
- 借助MAT(Eclipse Memory Analyzer)工具分析dump文件,分析內(nèi)存情況。
- 直接用文本工具打開jstack文件,分析線程占用情況。
- 借助VisualVM更直觀:
UIC28資訊網(wǎng)——每日最新資訊28at.com
3、分析過程
3.1、分析線程棧
直接通過文本工具打開jstack.log,搜索業(yè)務(wù)相關(guān)包名,應(yīng)該大致能定位出問題:UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
3.2、分析內(nèi)存
1. 用MAT工具打開dump文件UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
2. 一般打開Histogram視圖,這樣能快速地發(fā)現(xiàn)問題,也可以打開Leak Suspects(泄露嫌疑),如下圖:UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
尋找這個(gè)對象被哪些地方引用了,如下圖:UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
查看大對象,找出自己業(yè)務(wù)相關(guān)的關(guān)鍵引用:UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
UIC28資訊網(wǎng)——每日最新資訊28at.com
根據(jù)上面GC Roots的結(jié)果,在結(jié)合自身的業(yè)務(wù)代碼排查下,一般都會(huì)找到線索,比如:UIC28資訊網(wǎng)——每日最新資訊28at.com
- 某個(gè)線程遠(yuǎn)程調(diào)用了接口返回的對象,一直被使用未能釋放
- 每次執(zhí)行的數(shù)據(jù)量過大
- 流沒有關(guān)閉
- 死循環(huán) 或者 遞歸次數(shù)太多
- 定時(shí)任務(wù)執(zhí)行頻率過高,在任務(wù)沒執(zhí)行完畢時(shí)又在持續(xù)執(zhí)行,導(dǎo)致積壓了大量對象
- ......
4、總結(jié)
本文整理了一份OOM內(nèi)存泄露問題速查備忘錄。核心內(nèi)容是:UIC28資訊網(wǎng)——每日最新資訊28at.com
- top、free、df三連,然后netstat、jstat工具跟上。
- 緊接著趕緊jmap、jstack保存現(xiàn)場,然后重啟應(yīng)用。
- MAT分析問題,修改問題,重新發(fā)布。
本文鏈接:http://www.www897cc.com/showinfo-26-12678-0.htmlOOM內(nèi)存泄露速查備忘錄
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com
上一篇: 一篇文章帶你了解JavaScript 數(shù)值方法(上篇)
下一篇: 自研多模態(tài)追蹤算法 PICO 為「手柄小型化」找到新思路