dump文件 linux,Linux下快速分析DUMP文件

dump文件传输到本地进行分析, 常常需要大量的等待时间。 使用IBM的eclipse的MAT工具可以直接在服务器上进行快速DUMP分析。

运行环境要求

linux操作系统

JDK8 以上

下载MAT的linux版本

Eclipse的MAT工具下载链接

MAT支持各种操作系统,找到Linux版本下载下来

#运行uname -m 看一下linux是 x86_64还是 x86的帮助你选择下载那个版本。

uname -m

#x86_64

http://iso.mirrors.ustc.edu.cn/eclipse/mat/1.8/rcp/MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip

解压配置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

MAT分析 dump

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

等待结果….

结果会生产如下三个zip文件,很小可以直接拷贝到本机

jmap_Leak_Suspects.zip

jmap_System_Overview.zip

jmap_Top_Components.zip

查看报告结果

有两种查看报告的方法

直接把zip下载到本地,然后解压用浏览器查看index.html

把zip下载到本地, 用MAT可视化工具解析zip

遇到问题

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

问题解决

MAC 如何使用 mat工具

#修改内存大小,默认1G不够用

vi mat.app/Contents/Eclipse/MemoryAnalyzer.ini

运行

sudo mat.app/Contents/MacOS/MemoryAnalyzer

## 1、点击最上面的Overview的 tab

## 2、点击最先面的 Open a Head Dump 就可以选择加载dump文件了

转自: http://www.moheqionglin.com/site/blogs/84/detail.html

经常使用, 故记录于此

### 如何分析 Linux 内核 Dump 文件 #### 工具介绍 为了分析 Linux 内核 dump 文件,通常使用的工具有 `crash` 和其他辅助工具。这些工具能够帮助开发者深入理解内核崩溃的原因以及内存状态。 - **Crash 工具** 是一种强大的交互式故障诊断程序,用于分析 Linux 内核 core dump 文件。它可以解析 vmlinux 符号表并提供丰富的命令来查看内核数据结构、调用栈和其他重要信息[^1]。 #### 使用 Crash 打开 Core Dump 文件 要使用 `crash` 分析核心转储文件,需指定两个主要参数:vmlinux 文件和 vmcore 文件。以下是具体方法: ```bash crash /path/to/vmlinux /path/to/vmcore ``` 其中: - `/path/to/vmlinux` 表示编译时生成的带有调试符号的内核映像文件。 - `/path/to/vmcore` 则是实际的核心转储文件路径。 此命令启动了一个交互式的 shell,在这里可以通过各种内置命令进一步探索系统状态。 #### 常见 Crash 命令及其用途 下面列举了一些常用的 crash 命令及它们的作用: - **bt (Backtrace)** 显示当前线程或所有线程的回溯信息,有助于追踪错误发生前后的函数调用链路。 - **ps (Process Status)** 展示整个系统的进程列表,类似于 top 或 ps 的功能但更详尽。 - **log (System Log Buffer Contents)** 输出 dmesg 缓冲区的内容,这对于发现最近发生的异常事件非常有用。 - **vm (Virtual Memory Information)** 提供虚拟地址空间布局详情,适合研究内存分配情况。 以上只是部分基础指令;实际上还有更多高级选项可以根据需求选用。 #### 配置环境准备 确保安装好必要的软件包之后才能顺利执行上述流程。对于基于 RPM 的发行版来说可能需要如下几个组件: - kernel-debuginfo - crash utility itself 可通过 yum/apt-get 安装相应版本的 debug info packages 来获取完整的 symbol table 支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值