内存溢出等问题现场处置步骤
0、说明
遇到现实服务器实例报OOM错误时 尽量按以下步骤保留现场信息 方便后续定位
1、获取进程号
jps -v|grep 关键字
2、创建事故现网文件夹
mkdir {pid}
3、查看磁盘空间是否打满
df -h >{pid}/df_h.txt
4、查看内存空间是否打满
free -m >{pid}/free_m.txt
5、查看io
iostat -d -k 1 10 >{pid}/io.txt
6、查看cpu等其它信息(兜底包含其它信息)
top -M -n 2 -d 3 >{pid}/top.txt 查看top
7、查看是否一直fullgc
jstat -gcutil {pid} 1000 1000 > {pid}/jstat_gcutil.txt
8、得到存活内存分布图
jmap -histo:live {pid} >{pid}/jmap_histo.txt
9、dump当前线程栈到对应文件
jmap -dump:live,file={pid}/jmap_dum {pid}
10、堆快照
jstack {pid} >{pid}/jstack_1.txt 一次堆栈快照 备用
jstack {pid} >{pid}/jstack_2.txt 两次堆栈快照 备用