写点什么

一篇文章教你服务器 OOM 后如何快速定位处理问题

用户头像
关注
发布于: 2020 年 04 月 30 日

0x0 说明

遇到服务器实例报OOM错误时 尽量按以下步骤保留现场信息 方便后续定位



此文以java为例子



0x1 获取进程号

jps -v | grep // 关键字



0x2 创建事故现场文件夹

mkdir {pid}



0x3 查看磁盘空间是否打满

df -h >{pid}/df_h.txt



0x4 查看内存空间是否打满

free -m >{pid}/free_m.txt



0x5 查看io

iostat -d -k 1 10 >{pid}/io.txt



0x6 查看cpu等其它信息(兜底包含其它信息)

top -M -n 2 -d 3 >{pid}/top.txt // 查看top



0x7 查看是否一直fullgc

jstat -gcutil {pid} 1000 1000 > {pid}/jstat_gcutil.txt



0x8 得到存活内存分布图

jmap -histo:live {pid} >{pid}/jmap_histo.txt



0x9 dump当前线程栈到对应文件

jmap -dump:live,file={pid}/jmap_dum {pid}



0x10 堆快照

jstack {pid} >{pid}/jstack_1.txt //一次堆栈快照 备用

jstack {pid} >{pid}/jstack_2.txt //两次堆栈快照 备用



0x11 重启



发布于: 2020 年 04 月 30 日阅读数: 61
用户头像

关注

每一步都算数 2019.07.23 加入

学习Go语言的Java工程师

评论

发布
暂无评论
一篇文章教你服务器OOM后如何快速定位处理问题