OOM-Killer
Linux' letztes Mittel bei Speichermangel: einen Prozess auswählen und beenden, statt das ganze System stillstehen zu lassen.
Hintergrund ist, dass Linux Overcommit erlaubt — der Kernel verspricht mehr Speicher, als er besitzt, weil Programme routinemäßig mehr anfordern, als sie nutzen. Meistens geht das gut. Wenn nicht, ist kein Speicher mehr übrig zu vergeben, und eine Allokation abzulehnen würde Programme an unvorhersehbaren Stellen abstürzen lassen.
Stattdessen wird ein Opfer gewählt. Der oom_score wiegt Speicherverbrauch gegen Laufzeit und Priorität ab, was in der Praxis oft genau den Datenbankprozess trifft, den man am liebsten behalten hätte. Der Wert lässt sich pro Prozess mit oom_score_adj anpassen. In dmesg erscheint die Zeile Out of memory: Killed process — oft die einzige Spur eines Dienstes, der "einfach verschwunden" ist.