Il kernel assegna a ogni processo un oom_score, basato soprattutto sulla memoria usata, e termina quello con il punteggio più alto. Spesso è proprio il servizio più importante: il database, Elasticsearch o un processo Java.
In esercizio sembra un crash inspiegabile: il servizio sparisce e l'applicazione non registra nulla. La prova sta nel log del kernel, con righe come Out of memory: Killed process.
La soluzione duratura non è disattivare l'OOM killer ma limitare i consumi: pm.max_children in PHP-FPM, buffer pool del database, limiti systemd (MemoryMax=) o più RAM. Lo swap fa guadagnare tempo ma rallenta tutto.
Esempio
journalctl -k | grep -i 'out of memory'