一篇文章教你服务器 OOM 后如何快速定位处理问题
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 重启
版权声明: 本文为 InfoQ 作者【】的原创文章。
原文链接:【http://xie.infoq.cn/article/09a3a4fa91de94862db66c023】。文章转载请联系作者。
评论