Когда в системе Linux заканчивается память, ядро не зависает.
Оно запускает OOM Killer.
OOM Killer выбирает процесс для завершения, чтобы освободить память.
Каждому процессу присваивается оценка
oom_score (0–1000). Чем выше значение, тем выше вероятность быть убитым.Оценка зависит от:
→ объёма используемой памяти
→ времени работы процесса
→ наличия дочерних процессов (завершение родителя освобождает больше)
На это можно влиять:
echo -17 > /proc/<PID>/oom_adj — защитить процессecho 1000 > /proc/<PID>/oom_score_adj — сделать приоритетной цельюKubernetes использует тот же механизм, когда поды превышают лимиты памяти.
OOMKilled — это значит, что OOM Killer ядра завершил контейнер.
✈️ Linux Ninja