jvm内存快照dump文件太大,怎么分析

来自凌幽草

1、场景

通常,使用eclipse的mat图形化工具打开dump的时候都会内存溢出.

对于比较小的dump,eclipse可以打开,但一旦dump文件太大,eclipse就有点束手无策。

这时候怎么办呢?可以使用linux下的mat,既Memory Analyzer Tools

2、dump生成

dump可以是内存溢出时让其自动生成,或者手工直接导。配置jvm参数-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/biapp/m.hprof

手工直接导,PID为进程号

jmap -dump:live,format=b,file=m.hprof PID

3、准备工作,下载LINUX的MAT

地址:http://www.eclipse.org/mat/downloads.php

在linux服务器执行命令 uname –m查看版本

下载对应的版本

下载后将包传到linux服务器上解压。

MemoryAnalyzer.ini 配置文件可以修改最大的内存,默认1G基本够用了。

4、在linux执行分析命令

执行命令

./ParseHeapDump.sh m.hprof  org.eclipse.mat.api:suspects org.eclipse.mat.api:overview org.eclipse.mat.api:top_components。

m.hprof就是jvm的dump文件,在mat目录下会生成3份.zip结尾的报告和一些m.相关的文件,将生成的m.hprof相关的文件都下载到windows本地磁盘。

如:

5、打开分析报告

1)使用浏览器

解压缩以.zip结尾的文件,解压后

使用浏览器打开index.html文件内容,查看分析报告

查看Class Histogram一项

发现其中一个类对象占用了7个G,这里的Heap单位都是Byte,自行换算。

Shallow Heap 既对象本身的大小

Retained Heap 对象自身加起直接或间接引用的大小

2)使用eclipse的mat工具

Eclipse需要按照mat工具,安装步骤可以百度,或者参考

https://jingyan.baidu.com/article/cb5d61053562ed005c2fe022.html

如果直接打开dump文件还是会内存溢出,所以可以使用eclipse打开分析报告即可。

使用eclipse-File-Open File打开dump文件,如下:

会提示错误,点击OK忽略错误,然后选择第三项,重新打开之前的运行报告

点击Next,出现如下界面

选择其中的一份报告打开,如m_System_Overview.zip

得到相同的结果

原文地址:https://www.cnblogs.com/But-you/p/10431543.html

时间: 2024-10-02 15:59:48

jvm内存快照dump文件太大,怎么分析的相关文章

beyond compare解决特殊字符无法输出、多sheet页无法对比以及文件太大超出系统内存问题的Excel转txt脚本

' XLS_to_CSV.vbs ' ' Converts an Excel workbook to a comma-separated text file. Requires Microsoft Excel. ' Usage: ' WScript XLS_to_CSV.vbs <input file> <output file> Option Explicit ' MsoAutomationSecurity Const msoAutomationSecurityForceDisa

清理SQL Log 文件太大的方法

在我们日常的数据库运行中,一般数据库文件才几十M ,但ldf 的日志文件就占到了 几个G的空间,所以 有时需要清理一下.下面是运行脚本的语句: declare @db nvarchar(20)set @db='你的数据库文件名'dump transaction @db with no_logbackup log @db with no_logdbcc shrinkdatabase(@db) 清理SQL Log 文件太大的方法

Mysql文件太大导入失败解决办法总结

在使用phpmyadmin导入数据库的时候可能会碰到由于数据库文件太大而无法导入的问题! 英文提示如下:File exceeds the maximum allowed size 如果正在使用的主机可以自定义php.ini的话,就可以通过直接修改这个文件来解决,即通过通过编辑php.ini文件来重新设定上传文件大小的限定,具体操作步骤: 第一步:打开php.ini,找到 upload_max_filesize . memory_limit . post_max_size 这三个参数! 他们所代表

pdf文件太大如何进行压缩,压缩pdf文件的步骤分享

都知道,在工作中,如果一个文件太大的话,下载时间就会比较长,比较耽误我们的时间,转发给别人也会比较麻烦,也不方便使用,此时,我们如果有一个办法能将文件压缩的小一点,就方便我们保存了,也方便我们将文件发送给别人,大大提高了工作的效率.1.我们打开电脑,随意找到一款PDF转换器的软件,将它下载下来,下载过程比较简单,就可以使用它进行转换了. 2.在桌面上打开软件,上面有很多小功能,找到上面的PDF其他操作,鼠标单击一下,下面有好几个功能,我们要找到我们所需要的[PDF压缩]然后点击一下就可以了. 3

Oracle - crfclust.bdb文件太大

今天在检查oracle rac集群时,突然才发现服务器的根目录下面占用了很多空间,照道理不应该出现这种情况,初步猜想可能是哪个日志或跟踪文件太大导致.切换到跟目录,使用du -sh *来一层一层查看到底是哪个文件占用了这么多空间,最后定位到目录/u01/app/11.2.0/grid/crf/db/<hostname>使用ls -lSrh对文件进行排序,发现“罪魁祸首”是crfclust.bdb [[email protected] ~]# df -hFilesystem Size Used

一键解决pdf文件太大如何变小的难题

PDF文件是适用于文件下发,阅读等便捷的电子文件格式,在传输发送的过程中,我们PDF文件较大的情况下,就需要将PDF文件压缩,那么PDF文件太大如何变小呢?对于PDF文件压缩不是太了解的用户可能就想不到好的办法解决,本文将教大家一键解决pdf文件太大如何变小的难题. 1.首先,我们需要了解的是PDF文件进行压缩,我们这里是需要借助到一款叫作迅捷PDF转换器的软件,所以,现在需要做的就是打开浏览器,在电脑上下载安装.软件下载:pdf压缩器http://www.newasp.net/soft/213

怎么解决apache日志文件太大的问题

原文地址:http://un173.blog.51cto.com/8263566/1598346 管理apache服务器有些年头,虽然最近几年被nginx抢了不少风头,但我依然钟爱apache. 喜欢它强劲的并发处理能力,以及forker与worker模式间自由选择的快感,哈哈. 熟悉linux下apache运维的朋友,多少都会遇到过apache日志文件太大的问题,网站刚上线时不会在意到这个问题,因为流量小,自然error.log与access.log文件内容也就少,文件容量不大,因此,配置时也

[转]MySql ibdata1文件太大如何缩小

From : http://blog.chinaunix.net/uid-24373487-id-4223322.html 原文地址:MySql ibdata1文件太大如何缩小 作者:emailwht MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空:truncate table xxx;然后optimize table xxx; 没有效果因为对共享表空间不起作用.mysql ibdata1

VS产生sdf和ipch文件太大处理方案

原地址:http://blog.csdn.net/feidewu/article/details/8395864 使用VS的人一方面享受着它功能的强大,一方面又十分痛恨他生成的文件占用的空间太大了,硬盘吃不消啊! 一个helloworld程序,用DEV ++也就那么几K,但是用VS就要占到几十M,主要是生成.sdf和ipch文件体积太大了.在网上找了一下也没发现有什么优化的方法,倒是可以将sdf和ipch文件集中到另外一处,然后定期清除,这样节省程序文件的空间. 方法: 工具-->选项-->文