Linux中JAVA服务器内存占用高(分析解决方法)

21 篇文章 1 订阅

当发现生产环境内存使用非常高,并且居高不下,需要快速定位,分析是什么地方占用内存过高,推荐步骤如下:

1. 首先服务器查看占用内存高的进程是哪一个,查出进程号

top

2. 然后通过下面命令导出堆栈文件

-- 程序内存高dump文件(文件名称必须以 .hprof 后缀结尾)  进程号
jmap -dump:format=b,file=/root/dd1.hprof 452615

注意:只需要改上面的文件名称和对应的进程号即可。 文件必须以 .hprof 后缀结尾。

3. 通过下面网址下载内存分析工具,选择windows版本即可。

https://ftp.yz.yamagata-u.ac.jp/pub/eclipse//mat/1.11.0/rcp/

4.打开工具,file->Open Heap Dump,打开上面2中导出的 .hprof 文件

5.  堆内存文件本身会比较大,上10G很正常,所以要准备一个单独的文件夹存放,并且要保证空间足够,工具在解析的时候会额外生成其他的文件

解析完成如下图:

6.点击上图处,即可查询到占用信息,如下图:

通过上面的步骤后,就能清楚的知道是哪里的代码有问题或者是程序哪里的配置有问题。

最后注意:

当使用上面工具在解析内存文件时,如果工具的内存分配较小的话,会解析出错,建议加大该工具内存配置。

在工具启动同一目录下 文件:MemoryAnalyzer.ini,修改下图中的值即可。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值