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

chatgpt/2023/10/4 8:46:05

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.exyb.cn/news/show-5313419.html

如若内容造成侵权/违法违规/事实不符,请联系郑州代理记账网进行投诉反馈,一经查实,立即删除!

相关文章

vue拖拽改变宽度

1.封装组件ResizeBox.vue <template><div ref"resize" class"resize"><div ref"resizeHandle" class"handle-resize" /><slot /></div> </template> <script> export default {name: Resi…

OrderApplication

目录 1 OrderApplication 2 /// 获提交订单页面数据 2.1.1 //设置会员信息 2.1.2 //获取订单商品信息 2.1.3 //获取收货地址 2.1.4 //发票信息 OrderApplication#region web公共方法

MIT 6.S081 Lab Eight -- Lock

MIT 6.S081 Lab Eight -- Lock 引言locksMemory allocator(moderate)代码解析 Buffer cache(hard)代码解析 可选的挑战练习 引言 本文为 MIT 6.S081 2020 操作系统 实验八解析。 MIT 6.S081课程前置基础参考: 基于RISC-V搭建操作系统系列 locks 在本实验中&#xff0c;您将获…

快速了解MyBatis---映射关系多对一

文章目录 映射关系多对一映射关系-官方文档映射关系多对1-基本介绍基本介绍注意细节 映射关系多对1-映射方式映射方式配置Mapper.xml 方式-应用实例注解实现多对1 映射-应用实例 映射关系多对一 映射关系-官方文档 文档地址: https://mybatis.org/mybatis-3/zh/sqlmap-xml.ht…

需求太多处理不过来?MoSCoW模型帮你

一、MoSCoW模型是什么 MoSCoW模型 是在项目管理、软件开发中使用的一种排序优先级的方法&#xff0c;以便开发人员、产品经理、客户对每个需求交付的重要性达成共识。 MoSCoW是一个首字母缩略词&#xff0c;代表&#xff1a; M&#xff08;Must have&#xff09;&#xff1a…

Apipost教程?一篇文章玩转Apipost

你是否经常遇到接口开发过程中的各种问题&#xff1f;或许你曾为接口测试与调试的繁琐流程而烦恼。不要担心&#xff01;今天我将向大家介绍一款功能强大、易于上手的接口测试工具——Apipost&#xff0c;并带你深入了解如何玩转它&#xff0c;轻松实现接口测试与调试。 什么是…

C语言第十二课---------操作符的介绍与使用(下)

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; &#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382;…

基于P2P技术的远距离传输大型文件解决方案

随着互联网的普及和数据存储的快速发展&#xff0c;远距离传输大型文件成为一种常态。传统的文件传输方式&#xff0c;如邮件、FTP等&#xff0c;通常只适用于小型文件的传输&#xff0c;对于大型文件的传输则效率低下并且很容易遇到传输失败的问题。面对这个问题&#xff0c;P…
推荐文章