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