JVM快速找出耗內(nèi)存大對象

問題
當(dāng)我們的java應(yīng)用運行時,突然出現(xiàn)內(nèi)存占用暴增,說明系統(tǒng)中存在長期占用的對象無法回收,或者出現(xiàn)巨大的對象如何快速定位產(chǎn)生的大對象是什么?
找到耗內(nèi)存的進程
top命令查看你的應(yīng)用對應(yīng)的進程ID
1、輸入top命令 然后顯示當(dāng)前系統(tǒng)的整體負(fù)載情況,
2、鍵入m 查看內(nèi)存使用情況


線上服務(wù)器資源情況
3、查到指定的進程編號,如上圖服務(wù)器tomcat進程25085
4、執(zhí)行如下命令: jmap -histo:live 25085 | head -20 查看進程中占用資源最大的前20個對象


這是個人服務(wù)器的一個對象查看結(jié)果
5、上圖為演示命令結(jié)果,非線上服務(wù)器信息(線上信息會有敏感信息)
6、從這20個對象中進行分析,一般情況有問題時,這里會有自己工程內(nèi)的類的大對象,第四列為類名。如果這都無法定位就只能執(zhí)行dump,將內(nèi)存快照保存下來用eclipse的MAT工具進行詳細(xì)分析了
7、知道哪個對象消耗內(nèi)存了,再去定位代碼問題就不難了。
原文地址:http://www.toutiao.com/i6466897103623815694/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容