Plainnotes

Who killed the process: reading the OOM log

2026-10-26 · 2 min readDebug

A service vanished overnight. systemctl status said only killed, and the application log was clean. Check the kernel first:

dmesg -T | grep -i -E 'oom|killed process'
journalctl -k --since '1 day ago' | grep -i oom

A line like Out of memory: Killed process 1234 (java) names the process, PID and RSS. The kernel did it, not the application.

You can contain it with MemoryMax= or protect a critical process with oom_score_adj, but the real question is why memory grew. smem -t -k and /proc/<pid>/smaps_rollup tell you whether it is heap or page cache.