Факт про ядро Linux:
Когда в системе 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
355 ·