当前位置: 首页 > news >正文

Eclipse memory analyzer 分析GC dump日志定位代码问题

1、问题描述:

        使用命令 jstat -gcutil [pid] 查看JVM GC日志,发现生产系统频繁FullGC,大概几分钟一次,而且系统响应速度变慢很多

        再使用 free -g 查看服务器内存全部占用,猜测是内存溢出了

2、导出dump日志

jmap -dump:live,format=b,file=heap.hprof 18051

使用如上命令导出gc日志,其中18051是java线程ID需要自己查询

执行成功后,会在执行命令的文件夹下面生成 heap.hprof 这个文件

3、本地分析日志

打开 Eclipse memory analyzer 解压文件夹

如果dump日志文件很多,需要修改软件配置大小,修改MemoryAnalyzer.ini文件Xmx参数如下

双击运行软件:

 运行上面文件,打开界面后 点击左上角 file -> Open Heap Dump 选择上面的heap.hprof文件

选择文件,进行分析成功后显示如下界面:

点击上图红框进入泄露页面:

 keywords已经显示代码问题大概,点击下面的details查看详情

 打开可以看到是LIst占用了很大空间,也可以查看Thread Stack,如下图所示

 

 4、服务器直接分析日志

        如果日志文件很大的话,下载到本地需要很多的时间,而且打开也可能会报错,这时候我们可以在服务器直接进行分析,操作步骤如下:

1、上传 Eclipse memory analyzer linux版本到linux服务器,并使用unzip 解压上传后文件,解压后如下图所示

2、复制dump文件到相同文件夹,也可以新建文件夹,因为分析完成后,会生成很多分析文件

3、运行命令执行分析,这里注意需要修改analyzer配置文件设置内存空间大于需要分析的日志文件,这里设置30000M

 运行命令:

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

 分析成功后如下图所示:

 主要文件是途中三个zip文件,下载到本地,解压后打开文件夹里面的.index页面,也会显示分析图,只是没有直接使用软件详细

http://www.lryc.cn/news/98248.html

相关文章:

  • DSA之图(3):图的遍历
  • 从零开始学习 Java:简单易懂的入门指南之for循环(四)
  • Android 之 http/https原理和机制
  • mybatis源码研究、搭建mybatis源码运行的环境
  • 【算法基础:搜索与图论】3.5 求最小生成树算法(PrimKruskal)
  • 扩展Ceph集群实现高可用
  • 代码随想录 DAY45
  • Centos报错:[Errno 12] Cannot allocate memory
  • 手把手教你怎么写顺序表
  • FPGA中RAM的结构理解
  • 家庭用的无线洗地机到底好不好用?2023洗地机品牌排行榜前十名
  • [React]常见Hook实现之useUpdateEffect
  • 为什么视频画质会变差,如何提升视频画质清晰度。
  • 【uni-app2.0】实现登录页记住密码功能
  • IDEA live templates
  • 电子鼻毕业论文
  • 8 | 爬虫解析利器 PyQuery 的使用
  • 2023年 React 最佳学习路线
  • 使用 ChatGPT 进行研究的先进技术
  • Java-API简析_java.net.Proxy类(基于 Latest JDK)(浅析源码)
  • 磁盘问题和解决: fsck,gdisk,fdisk等
  • 基于深度学习的高精度六类海船检测识别系统(PyTorch+Pyside6+YOLOv5模型)
  • 【React Native】学习记录(一)——环境搭建
  • Java 设计模式 - 简单工厂模式 - 创建对象的简便之道
  • C# 事件
  • 网络:TCP/IP协议
  • 在线阅读版:《2023中国软件供应链安全分析报告》全文
  • NLP_文本去重_附Python实现【MinHash和MinHashLSH】算法
  • Excel Power View教程_编程入门自学教程_菜鸟教程-免费教程分享
  • 关于聊天功能,使用input发送消息,不能在input中显示图片解决办法