jvm调优中,经常使用dump来分析是否存在大对象导致频繁full gc,以下为使用步骤:

一、获得服务进程

二、生成dump文件

jmap -dump:format=b,file=xxx.dump pid

三、下载mat工具

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

注意,12及以上版本需要安装jdk11以上

四、导入dump文件

五、导入后得到如下界面

六、定位大对象(方法一)

  1. 点击上图中Histogram,可显示出每个类产生的实例数量,以及所占用的内存大小;
    Shallow Heap 和 Retained Heap分别表示对象自身不包含引用的大小和对象自身并包含引用的大小。默认的大小单位是 Bytes,可以在 Window - Preferences 菜单中设置单位,图中设置的是KB。

  1. 根据Shallow Heap 和 Retained Heap找出占用最大的对象(下图)

红框内就是我的包路径,这时已经大概知道是什么对象占用了,去项目中检查大概率能定位,我遇到的是一次性查出全部的数据,太多导致。

七、定位大对象(方法二)

点击第五步图中 Leak Suspects 后,MAT会自动分析生成一份报告,通过报告,也能判断出和上一步一样的结果

最后,找到代码位置了,其他就是要分析具体是什么原因导致产生大对象。针对问题进行代码、JVM、业务需求优化。

jvm mat分析dump文件相关推荐

  1. eclipse mat 分析dump文件,打开文件报错,out of memeory

    eclipse mat 分析dump文件,打开文件报错,out of memeory 解决: 1.打开eclipse报out of memeory通用 window-->Preferences- ...

  2. MAT分析dump文件显示大小比jmap查询结果小

    背景 有朋友向我吐槽,她在一台测试机器上调试,使用jmap查看堆内存占用时,发现年轻代+老年代占用的内存,和dump下堆转储文件使用MAT分析显示的内存不一样,百思不得其解.重现现象如下: jmap显 ...

  3. linux使用MAT分析dump文件

    unzip MemoryAnalyzer-1.8.0.20180604-linux.gtk.x86_64.zip 修改MAT的内存大小, 注意这个大小要根据你dump文件大小来的,如果dump文件是5 ...

  4. php代码执行dump文件,使用MAT分析dump文件定位程序问题

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

  5. jprofiler分析dump文件_内存溢出+CPU占用过高:问题排查+解决方案+复盘(超详细分析教程)...

    点击上方 "Java指南者"关注, 星标或置顶一起成长 免费送 1024GB 精品学习资源 来源:https://zhanghan.blog.csdn.net/article/de ...

  6. 使用MAT(Memory Analyzer Tool)工具分析dump文件--转

    原文地址:http://gao-xianglong.iteye.com/blog/2173140?utm_source=tuicool&utm_medium=referral 前言 生产环境中 ...

  7. linux分析mat使用教程,使用MAT(Memory Analyzer Tool)工具分析dump文件

    <使用MAT(Memory Analyzer Tool)工具分析dump文件> 前言 生产环境中,尤其是吃大内存的JVM,一旦出现内存泄露等问题是非常容易引发OutofMemory的,如果 ...

  8. jmap 文件解析_干货分享丨jvm系列:dump文件深度分析

    摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...

  9. 【华为云技术分享】干货分享丨jvm系列:dump文件深度分析

    摘要:java内存dump是jvm运行时内存的一份快照,利用它可以分析是否存在内存浪费,可以检查内存管理是否合理,当发生OOM的时候,可以找出问题的原因.那么dump文件的内容是什么样的呢? JVM ...

最新文章

  1. Errors running builder 'JavaScript Validator' on project
  2. [ARM-assembly]-ARMv8 A64 Quick Reference
  3. 【推荐】年终已至,十张图告诉你15年领取年终奖的正确姿势
  4. 炫界 (667) -(回应骑两小)_为什么那么多人喜欢骑地平线
  5. php网页,想弹出对话框, 消息框 简单代码
  6. 细说HTTP中POST与GET的区别与联系
  7. 面向对象(OOP)基本概念及基本语法
  8. halcon学习之颜色与纹理
  9. JPA自动生成数据库表教程
  10. 第6章 DataNode
  11. 20220925 appreciate和grateful的区别
  12. ctfshow(菜狗杯)
  13. python span()函数_Python正则表达式六种函数实例讲解
  14. 开关为什么要过零检测?内附带代码
  15. org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException: Line 1 in XML document from U
  16. 这届年轻人为什么不过618?
  17. 好久没在线了,恩进修(偷懒)中,hahaha~整理一下
  18. 限免|iOS长截图工具 滚动截屏
  19. 职业访谈计算机学院老师,理想照亮现实 访谈引领未来数学计算机学院举行首届职业生涯人物访谈大赛...
  20. 10本经典JavaScript书籍分层次推荐+打包下载

热门文章

  1. axios下载图片 node_nodejs axios 下载文件
  2. Qt开发Svg Editor分享
  3. ffmpeg推流B站直播
  4. 港澳通行证照片电子版怎么制作?一分钟学会证件照制作
  5. 帆软报表与润乾报表的破解策略
  6. 【线性模型引论】王松桂著 课后习题4.3参考答案
  7. 计算机网络原理复习(一)
  8. 64位windows10安装Sql server 2000
  9. 第六章 盒子模型
  10. html6+树状下拉列表,layui+ztree 树状下拉框