java 如何定位java内存泄漏问题

本文详细介绍了如何在Linux环境下定位Java内存泄漏问题。通过使用JDK的jmap工具导出堆内存文件,然后在本地用Eclipse MemoryAnalyzer分析,找出占用内存较大的对象,从而排查潜在的内存泄漏问题。
摘要由CSDN通过智能技术生成

1、 下载项目中对应的JDK版本。

2、 执行tar -xf jdk-8u262-linux-suse-x64.tar.gz解压jdk。

3、 查找ps命令查找微服务进程ID。

4、 执行./jdk1.8.0_262/bin/jmap -dump:live,format=b,file=dump_memory.bin 1487620命令导出堆内存(dump_memory.bin为导出文件名称,1487620为进程ID号)ps:此处需要注意项目执行的权限。

5、 命令执行完成后,会在/home/ossuser目录下生成堆内存文件dump_memory.bin,并下载到本地机器(安全PC)。

6、 通过https://www.eclipse.org/mat/downloads.php下载MemoryAnalyzer软件。

9、 在本地机器上运行MemoryAnalyzer软件,并通过该软件打开dump_memory.bin文件。MemoryAnalyzer会解析内存数据,耗时预计会有几分钟。

10、内存分析完成后,会提示Memory Leak分析,也可以通过Reports -> Leak Suspects查看内存占用比较大的对象。

11、系统会按照对象占用大小进行排序,如下图:

12、点击Problem Suspect 1中的Details信息查看内存占用,找到内存占用比较大的类,再根据代码确认内存占用是否合理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值