OOM排查

当需要排查内存溢出出现的问题时,我们可以设置虚拟机参数:

-XX:+HeapDumpOnOutOfMemeryError
当发送OOM时,会打印出堆内存快照信息。

实例:
(1)配置虚拟机参数

这里为了更快的出现OOM,我把堆内存最大设为了10m

(2)不停的创建对象

(3)发生了OOM

(4)生成了堆快照信息,默认存储位置是项目根目录下

 

(5)使用专业的解析工具打开,我使用的是Eclipse的MemoryAnalyzer,使用该工具打开快照文件。

 


可以点击扇形图,查看出现问题的区域,再点击堆快照信息的树状图

 

 

可以看到是哪个线程造成了OOM,并且可以看到是哪些对象占用内存最大

这样你就可以排查到出现问题的地方,检查代码。

posted @ 2019-08-30 14:25  wdzdeng  阅读(725)  评论(0)    收藏  举报