4,linux 安裝mat 工具分析HeapDump文件


Widows 分析dump文件的工具太多了,而且都是傻瓜式的點點就好了。
但是生產上分析dump文件的話,還是linux工具比較方便,因為生產上的dump文件一般都至少是GB級別的,這么大的文件拷貝到本機要耗費很長時間,特別是遇到生產事故的時候,時間=金錢。 
更不允許我們把寶貴的拍錯時間浪費到網絡傳輸上面。 
那么linux有什么好的解析dump工具呢? 如何解析 java dump的文件? 這里比較推薦IBM的eclipse的MAT工具。

1,linux操作系統
JDK8 以上

2,下載MAT的linux版本
MAT支持各種操作系統,找到Linux版本下載下來
# 運行uname -m 看一下linux是 x86_64還是 x86的幫助你選擇下載那個版本。
uname -m
#x86_64
axel -n100 -a http://www.eclipse.org/downloads/download.php?file=/mat/1.7/rcp/MemoryAnalyzer-1.7.0.20170613-linux.gtk.x86_64.zip

3,解壓配置MAT基本參數
unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip
## 修改MAT的內存大小, 注意這個大小要根據你dump文件大小來的,如果dump文件是5GB那么 這里最好配>5GB 否則會報MAT內存不足的異常
## 修改MemoryAnalyzer.ini 的 -Xmx6024m 
vi MemoryAnalyzer.ini

jmap dump整個堆
jmap -dump:format=b,file=jmap.info PID

4,MAT分析 dump
 ./ParseHeapDump.sh jmap.info  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components
等待結果....

5,結果會生產如下三個zip文件,很小可以直接拷貝到本機
jmap_Leak_Suspects.zip
jmap_System_Overview.zip
jmap_Top_Components.zip

6,查看報告結果
有兩種查看報告的方法
直接把zip下載到本地,然后解壓用瀏覽器查看index.html
把zip下載到本地, 用MAT可視化工具解析zip

7,遇到問題
Unable to initialize GTK+

遇到這個問題的話,是因為ParseHeapDump.sh 
里面需要調用GTK的一些東西。解決方法:

vi ParseHeapDump.sh
#注釋掉 "$(dirname -- "$0")"/MemoryAnalyzer -consolelog -application org.eclipse.mat.api.parse "$@"這一行
#然后加入下面
#注意plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar要根據你自己本地的文件名做修改調整
java -Xmx4g -Xms4g \
-jar  plugins/org.eclipse.equinox.launcher_1.5.0.v20180512-1130.jar \
-consoleLog -consolelog -application org.eclipse.mat.api.parse "$@"

然后繼續運行

 ./ParseHeapDump.sh jmap.info  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components

問題解決

  


免責聲明!

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



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