记录一次heap.bin文件分析

背景:生产服务运行OA系统服务,用户使用过程中,突然发现服务不能访问,接到用户反馈后,第一时间登陆服务器,发现东方通进程在、端口在,服务器CPU使用率并不高,为不影响用户正常开展业务工作,先将东方通停止,然后再重启,OA应用服务正常。之后对日志文件进行分析,发现应用系统输出的日志中并没有报错日志,但在/opt/soft/tongweb7.0/logs/目录下生成了一个heapxxxxx.bin(xxxx是日期)文件,因此需要对此heap.bin文件进行分析,具体分析过程如下:

声明:程序时启动时就指定了OOM溢出的时候下载bin格式文件:

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/soft/tongweb7.0/logs/heap_$(date +%Y-%m-%d).bin -jar my.jar

也可以生成其他格式的文件:

java -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/opt/soft/tongweb7.0/logs/heap_$(date +%Y-%m-%d).hprof -jar my.jar

一、使用java自带工具jhat分析,查centos7.5默认jdk路径,并进入
请添加图片描述

二、发现此目录下并没有jhat工具,因此上官网下载jdk1.8,因为产生heap.bin文件使用的jdk为1.8。
三、解压
在这里插入图片描述

四、进入jdk1.8目录,找jhat工具

在这里插入图片描述

五、使用jhat工具对heap.bin文件进行分析,但报错

在这里插入图片描述

六、查看jhat工具帮助,猜想应该是给jhat工具指定的内存太小

在这里插入图片描述

七、于是增加内存配置,但由于虚拟机的内存最大只能支持到6G,给jhat工具配置5G内存,执行命令。

在这里插入图片描述

八、但事与愿违,上述命令执行了30分钟,没有结果,因此,另寻他路。经过搜索查询,网上推荐使用MemoryAnalyzer工具,于是官网下载,下载地址为:https://www.eclipse.org/downloads/download.php?file=/mat/1.11.0/rcp/MemoryAnalyzer-1.11.0.20201202-win32.win32.x86_64.zip
在这里插入图片描述

九、下载后,对文件进行验证

在这里插入图片描述

十、SHA512编码一致,大胆解压使用,使用之前对内存做配置,回事工具运行效率。

在这里插入图片描述

十一、双击运行,选择要分析heap文件,运行差不多5分钟,出结果(这取决于电脑的配置,尤其是硬盘的读写速度,因为我的电脑是固态硬盘,所以分析的速度快)。

在这里插入图片描述

十二、根据工具分析结果,向研发人员说明问题猜测,由研发人员对程序进行分析判断,解决问题。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

综合工具分析结果,猜想是PortletBD程序文件有问题,最终,程序员对此文件进行了逻辑分析判断,对此文件进行了更新,问题得以解决。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值