jvm內存泄露分析方法——jmap


       使用監控工具發現內存使用不斷增加,則有可能存在內存泄露,內存泄露可以使用jmap工具進行分析。jmap命令可以獲得運行中的jvm的堆的快照,從而可以離線分析堆,以檢查內存泄漏,檢查一些嚴重影響性能的大對象的創建,檢查系統中什么對象最多,各種對象所占內存的大小等等,可以使用jmap生成Heap Dump。 

1.使用top命令查看是哪個進程耗的內存比較多。通過快捷鍵 shift+m 對內存進行排序。

2.執行命令打印堆棧信息 堆文件為 aaa.hprof    jmap -dump:live,format=b,file=aaa.hprof 18037

3.使用mat分析工具對步驟2打印的aaa.hprof 文件進行分析找到占用大量內存的線程。為了找到內存泄露,獲取了兩個堆轉儲文件,兩個文件獲取時間間隔是一天(因為內存只是小幅度增長,短時間很難發現問題)。對比兩個文件的對象,通過對比后的結果可以很方便定位內存泄露。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM