线上排查定位OOM问题的记录

整体思路:把机器上的快照文件下载到本地电脑,用eclipse analyzer打开它,找到是哪一行导致oom。

注:日志里看不到报错信息是因为 还没有来得及记录到日志文件,就down了。
把该文件下载到本地电脑,可以借助xftp等工具下载。
如果想在IDEA里模拟oom,这么设置jvm参数:
-Xms30m -Xmx30m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=C:\Users\cqf\Desktop\oom
线上排查定位OOM问题的记录_第1张图片

1、分析快照文件的工具建议用eclipse analyzer,而不是jdk自带的jvisualvm。jvisualvm特别占内存且功能不够强大无法定位到具体行。
eclipse analyzer的下载地址:http://www.eclipse.org/mat/downloads.php
线上排查定位OOM问题的记录_第2张图片
线上排查定位OOM问题的记录_第3张图片
2、解压缩后,先编辑下这个文件
线上排查定位OOM问题的记录_第4张图片
因为快照文件很大,eclipse analyzer设置的大小阈值也要调成足够大。否则会打不开文件
线上排查定位OOM问题的记录_第5张图片
再双击打开
线上排查定位OOM问题的记录_第6张图片
导入,选择文件
线上排查定位OOM问题的记录_第7张图片
耐心等待至这个页面,点finish
线上排查定位OOM问题的记录_第8张图片
再耐心等待至对话框消失,出现如下界面
点击See stacktrace.,查看堆栈异常。
线上排查定位OOM问题的记录_第9张图片
基本上可以定位是哪一行代码出现oom。

你可能感兴趣的:(java)