(1) 某次线上服务3台机器全部宕机,查看日志及监控发现,oom异常
(2) 赶紧登录服务器,做了一次线上heap dump 操作,保留快照文件,以便后续分析问题
① 进入docker容器,docker exec -it xxxx sh
② 执行jps,查看服务进程 jps,
③ 开始做dump文件: jmap -dump:format=b,file=heap.2021-12-28.hprof <pid>
④ 至此,线上快照完毕,导出到本地机器,准备做分析使用
2. 排查过程
1) 我采用的是memory analyzer 分析工具,功能很强大.
① mat下载工具: http://www.eclipse.org/downloads/download.php?file=/mat/1.12.0/rcp/MemoryAnalyzer-1.12.0.20210602-macosx.cocoa.x86_64.dmg
② 我用的是高版本,需要jdk11及以上,顺便我将电脑的jdk1.8 升级到了11,
③ 工具准备就绪,可以开始分析了.
2) 打开mat分析工具
① 菜单栏选择,File -> open File 选择要分析的hprof文件.
② 打开分析文件的时候,一定要选择上leak suspects report 功能,这个功能有助于协助分析问题点所在,对我们是个很好的提示