Der Kernel bewertet jeden Prozess mit einem oom_score, vor allem nach Speicherverbrauch, und beendet den mit dem höchsten Wert. Das trifft oft genau den wichtigsten Dienst: die Datenbank, Elasticsearch oder einen Java-Prozess.
Für den Betrieb wirkt es wie ein unerklärlicher Absturz: Der Dienst ist plötzlich weg, die Anwendung meldet nichts. Den Beweis liefert das Kernel-Log mit Zeilen wie Out of memory: Killed process.
Dauerhafte Abhilfe ist nicht, den OOM-Killer abzuschalten, sondern den Verbrauch zu begrenzen: pm.max_children bei PHP-FPM, Buffer-Pool der Datenbank, Speicherlimits per systemd (MemoryMax=) oder mehr RAM. Swap verschafft Zeit, verlangsamt aber stark.
Beispiel
journalctl -k | grep -i 'out of memory'