OOM排查流程

2023-01-14  本文已影响0人  修行者12138

假设线上发生了OOM,应急流程如下

步骤1,把实例从服务发现中摘除。

步骤2,jps -v,查看所有java进程,同时打印jvm启动参数。
获取到java进程pid,并且观察启动参数是否配置了OOM时自动dump内存快照。

# OOM时自动dump内存快照
-XX:+HeapDumpOnOutOfMemoryError
# 内存快照存储目录
-XX:HeapDumpPath=/usr/local/app/oom

步骤3,如果未配置自动dump内存快照,或者dump内存快照失败,需要手动dump,命令如下

jmap -dump:format=b,file=/springboot.hprof 替换为自己的PID

步骤4,把hprof文件下载到本地,打开ecplipse的mat(memory analyzer tool)工具,解析hprof文件。
如果file下有open heap dump的选项,直接选择hprof文件打开即可,否则,需要设置*.hprof默认关联mat工具


截屏2023-01-15 下午5.16.58.png

选择leak suspects report


截屏2023-01-15 下午5.20.30.png

点击see stacktrace,可以看到报错的具体行


trace.png
截屏2023-01-15 下午5.30.38.png

点击details>copy>save value to file,可以把对象的值导出到文件,如果文件过大,可以使用visual studio code打开。


details.png 截屏2023-01-15 下午5.23.32.png
上一篇 下一篇

猜你喜欢

热点阅读