使用MAT的命令行工具分析hprof文件

Eclipse Memory Analyzer

對於MAT這個專業的內存泄漏分析工具,大家應該都比較熟悉,用起來很方便,只需要打開Eclipse,然後把jmap或者jvm dump出來的文件拖到Eclipse裏面,就會自動分析,然後以頁面的形式展示出來結果。

在結果裏面可以看到內存總體情況、泄漏嫌疑對象、以及所有對象的內存佔用情況。這對我們找到內存溢出、內存泄漏的元兇幫助很大。

但是對於生產環境,總會遇到這樣的問題,dump出來的文件8g以上,比較大,自己的臺式機或者筆記本的內存根本不夠用。況且Eclipse啓動起來,就佔1個G的內存。

下載MAT

以前一般是直接以插件的形式安裝到Eclipse裏面,其實MAT是可以獨立運行的,我們需要到官網下載獨立包。

這裏寫圖片描述

選擇Linux(x86_64/GTK 2)版本,下載下來,然後到自己的服務器上進行解壓,執行:

unzip mat.zip

配置MAT

解壓之後,需要修改mat的配置文件,打開MemoryAnalyzer.ini文件,修改-Xmx的值,使大於hprof文件的大小,建議是其2倍大小。

-startup
    plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
    --launcher.library
    plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.100.v20110505
    -vmargs
    -Xms16g
    -Xmx16g

執行分析命令

執行如下命令會輸出泄漏嫌疑對象的分析結果,這個結果是比較全面的。

./ParseHeapDump.sh ../today_heap_dump/jvm.hprof org.eclipse.mat.api:suspects

還支持另外兩個分析結果:

org.eclipse.mat.api:overview
org.eclipse.mat.api:top_components 

出結果的速度很快,8G的文件,大概10來分鐘出結果。

運行後,會生成如下的幾個壓縮包,解壓後打開其中的html頁面即可看到結果。

這裏寫圖片描述

發佈了141 篇原創文章 · 獲贊 140 · 訪問量 68萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章