内存泄漏—排查问题

内存泄漏—排查问题

top命令输入了,得出了以下结果:

从上图可以看到java服务,内存使用率达到了68.2%,。很显然现在需要jmap命令把heap中的对象占用内存的情况导出到对应的dump文件中。

jmap -dump:format=b,file=java.dump pid

导出来的文件如下所示:

JVM提供的基本命令即可解析此二进制dump文件。命令如下:

jhat java.dump

导出文件的过程,如下所示,当然,也花了好几分钟,也是一个消耗内存的过程:

解析出来heap中竟然有490万个对象,打开对应的链接,具体为127.0.0.1:7000,在浏览器输入此url,页面的结果如下所示:

 

1.     codereview查看大量对象的代码问题,是不是new了许多对象

2.     代码中是不是从数据库查询了上百万数据保存在内存中,一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。QA环境数据量少,到生产一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值