Что такое OOM Killer в ядре Linux? По каким критериям, включая oom_score, операционная система выбирает Python-бэкенд для принудительного уничтожения при нехватке оперативной памяти на сервере и как предотвратить такое падение?

OOM Killer выбирает процесс для завершения при исчерпании доступной памяти, в том числе в пределах cgroup. На выбор влияют потребление памяти и oom_score_adj, а не язык приложения.

Короткий ответ

Что ответить на собеседовании

OOM Killer выбирает процесс для завершения при исчерпании доступной памяти, в том числе в пределах cgroup. На выбор влияют потребление памяти и oom_score_adj, а не язык приложения.

Подробный разбор

Ответ с пояснениями

OOM Killer выбирает процесс для завершения при исчерпании доступной памяти, в том числе в пределах cgroup. На выбор влияют потребление памяти и oom_score_adj, а не язык приложения.

Оценку можно смотреть в /proc/<pid>/oom_score, настройку — в oom_score_adj. Область выбора зависит от того, где возник дефицит: весь хост или ограниченная группа. Python-бэкенд не имеет специального иммунитета.

Проверяйте kernel log, метрики контейнера, RSS и рост очередей/кешей. Ограничивайте параллелизм, обрабатывайте данные потоково и устраняйте утечки. Снижение score не добавляет памяти, а переносит риск на соседние процессы. Одного рестарта недостаточно: нужны разумные лимиты и запас ресурсов.

Источник: cdn.kernel.org.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее