OOM Killer

De OOM Killer (Out Of Memory Killer) is een noodmechanisme in de Linux-kernel. Wanneer het systeem geen geheugen meer kan toewijzen en ook swap vol is, kiest de OOM Killer een proces om te beëindigen om geheugen vrij te maken.

Hoe de keuze gemaakt wordt

De kernel berekent voor elk proces een OOM-score (0–1000). Hoe hoger de score, hoe eerder het proces gekozen wordt. De score is gebaseerd op geheugengebruik, hoe lang het proces draait en de ingestelde oom_score_adj.

OOM-score aanpassen

# Score bekijken voor PID 1234
cat /proc/1234/oom_score

# Beschermen tegen OOM Killer (-1000 = nooit doden)
echo -1000 > /proc/1234/oom_score_adj

# Juist eerder doden (500 = hogere kans)
echo 500 > /proc/1234/oom_score_adj

Logberichten

Als de OOM Killer actief is geweest, staat dat in de kernellog:

dmesg | grep -i "oom\|killed process"
journalctl -k | grep -i oom

Voorkomen

  • Meer RAM of swap toevoegen
  • Geheugenlekken in applicaties oplossen
  • Limieten instellen met ulimit of cgroups

Zie ook

linuxgeheugen