一篇文章教你服务器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 重启
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章