内存泄露问题排查

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

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

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

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

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

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

点击Details后:form

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

相关文章
相关标签/搜索