首页 > 其他分享 >MemoryAnalyzerTool(mat)分析dump文件

MemoryAnalyzerTool(mat)分析dump文件

时间:2025-01-08 22:44:12浏览次数:1  
标签:mat dump MemoryAnalyzerTool eclipse hprof 版本 org

一、常见需要分析dump文件场景

1.1 fullGC频繁

1.2 堆空间溢出

1.3 元空间溢出

二、准备工具

能分析dump文件的工具很多比如Java自带的jvisualvm、商业软件Jprofile、mat(MemoryAnalyzerTool)、IDEA等,其他软件都需要将dump文件下载到本地分析,当dump文件很大的时候不方便,mat有linux版本可以直接在服务器上生成报告,将报告导入本地分析以及共享给研发人员分析。本文介绍一下mat(Linux)分析dump文件的过程。

2.1 mat与JDK版本对应关系

Memory Analyzer 1.14 及更高版本 JDK17及以上 Memory Analyzer 1.12 及更高版本 JDK11及以上 Memory Analyzer 1.8 至 1.11 需要 Java 1.8 VM 或更高版本的 VM 才能运行   最新版本:https://eclipse.dev/mat/download/ 历史版本:https://eclipse.dev/mat/download/previous/ 0

三、Linux-Mat分析dump流程

3.1 确认应用及环境jdk版本

选择合适版本,本例服务器jdk版本是1.8可以选择mat1.11及之前的版本

0

3.2 获取.hprof文件

3.2.1 被动获取

新版组件一般都默认开启如下启动参数,内存溢出错误时会自动dumpJVM的内存镜像,当系统发生OOM异常时可以检查当前应用文件夹查看是否存在dump文件。
# 当应用发生oom异常时自动dump
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=gc.hprof

3.2.2 主动获取

如果启动命令没有配置以上参数,当发生OOM相关异常的时候,不要立即重启,建议先进行dump处理,操作命令如下:
jps -l ##或者 ps -aux | grep java 找到对应应用的PID

jmap -dump:live,format=b,file=dump.hprof pid   ##file=dump.hprof指定生成dump文件  pid是应用PID

3.3 调整Mat参数

编辑 MemoryAnalyzer.ini,调整mat参数,-Xmx16g一般设置为dump文件大小的二倍左右,如需指定JDK版本 ,在任何 -vmargs 行之前加入(两行)示例如下: 0 示例:
-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
    -vm 
    /home/yangxz/java/bin/java  #指定JDK版本
    -vmargs
    -Xms16g 
    -Xmx16g  #最大堆内存
0

3.4 执行命令生成 zip

nohup ./ParseHeapDump.sh /home/yangxz/test/sdm_oom.hprof org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components & echo $! > pid
命令说明:
nohup ./ParseHeapDump.sh      #后台执行脚本
/home/yangxz/test/sdm_oom.hprof  #dump文件
org.eclipse.mat.api:suspects  # 生成泄漏疑点(Leak Suspects)报告
org.eclipse.mat.api:overview  # 生成堆转储概览报告。
org.eclipse.mat.api:top_components # 生成内存占用最大的组件报告。
生成压缩文件示例: 0 解压后点击Index.html进入报告: 0 报告示例: 0

四、Mat桌面版本分析dump

4.1 下载windows版本mat,并确保本地有安装好Java环境

0 打开后在File里面选择OpenHeapDump打开要分析的hprof文件 0 0  

标签:mat,dump,MemoryAnalyzerTool,eclipse,hprof,版本,org
From: https://www.cnblogs.com/MuXinu/p/18660721

相关文章