线上Java进程OOM被系统杀死问题排查

记录一次线上java进程被系统进程杀死后排查问题的经过。

添加 OOM dump

再启动脚本中添加VM参数添加如下:

1
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/jvm/

故障原因排查

查看是否是OOM原因导致的进程被杀

1
grep "Out of memory" /var/log/messages
1
2
# grep "Out of memory" /var/log/messages
Jun 11 09:31:44 ecs kernel: Out of memory: Kill process 19845 (java) score 389 or sacrifice child

可以看到在9:31的时候19845进程因为Out of memory被kill掉了。

或使用:

1
egrep -i -r 'killed process' /var/log/messages
1
2
egrep -i -r 'killed process' /var/log/messages
Jun 11 09:31:44 ecs kernel: Killed process 19845 (java), UID 1000, total-vm:8437188kB, anon-rss:3111856kB, file-rss:0kB, shmem-rss:0kB

或使用:

1
dmesg -T | grep java

未完待续

线上Java进程OOM被系统杀死问题排查

https://blog.yhan219.com/java-oom/

作者

yhan219

发布于

2021-06-11

更新于

2021-06-11

许可协议