内存泄露问题排查

原创
2016/06/27 14:47
阅读数 164

1. 发现cpu持续占用高,定位占用cpu比较多的进程

2. 进一步定位进程里面具体哪些线程占用高top -Hp 873

3. 上面线程pid转成16进制,jstack 873找到对应的线程,发现是垃圾回收线程

4. 看看为什么垃圾回收这么频繁,jstat -gcutil 873 1000

2. 发现内存增长非常快,年老代很快就满了,频繁的执行full gc,所以猜测是年轻代中长时间有对象不释放,直接把内存dump下来用MemoryAnalyzer分析一下 jmap -dump:format=b,file=dump1.hprof 873

用MemoryAnalyzer分析找到对应的占用内存比较多的对象

点击Details后:

找到了占用最大的对象, 根据上面的定位分析对应的代码逻辑,看为什么这个对象没有被释放。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
4 收藏
分享
打赏
0 评论
4 收藏
0
分享
返回顶部
顶部