MAT对Java Dump的文件的简单分析

JAVA Dump 是当tomcat出现假死状态时,保留当前内存情况下记录二进制文件。使用MAT工具进行分析内存泄漏问题。

第一步: 需要在tomcat的catalina.sh中添加 如下配置
JAVA_OPTS="-Xms8192m -Xmx8192m -XX:PermSize=2048M -XX:MaxNewSize=2048m -XX:MaxPermSize=2048m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=你的文件路径
只要tomcat出现内存泄漏(假死)状态就会保留下内存二进制文件。(当然添加后要重启tomcat)

第二步: 需要下载xxxx.hprof文件,这个可能会很大。

第三步:安装MAT

            下载   https://download.csdn.net/download/cdszdd8/10831451



第四步:导如xxx.hprof文件这个过程比较漫长对了,在使用分析工具之前,一定要找一个比xxxx.hprof文件内存大机器进行分析(我这边分析了一个8G的文件在16G内存的机器上运行分析的)

第五步:导入点击工具file->Open Heap Dump 选择我们到处的.hprof文件(需要等....)

等待完毕后如下图



点击Leak Suspects 



这个是分析出的问题



点击Details如下图



工具定位到线程上



点击线程查看线程情况找出是哪行代码出现的问题



然后在返回上层点击



查看数据返回情况



最后定位到是一个SQL语句由于条件没有控制住导致查询数据800多万数据,都加载到内存占据内存3G多。到此就可以找到问题了。希望对大家有帮助。。




原文:https://blog.csdn.net/cdszdd8/article/details/84846529 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值