Что такое OOM Killer, по какому принципу он рассчитывает oom_score и как защитить Python-процесс от принудительного уничтожения?

OOM Killer выбирает процесс для завершения при нехватке доступной памяти; учитываются потребление и oom_score_adj. Защита начинается с ограниченного расхода памяти, а не с запрета убивать процесс.

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

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

OOM Killer выбирает процесс для завершения при нехватке доступной памяти; учитываются потребление и oom_score_adj. Защита начинается с ограниченного расхода памяти, а не с запрета убивать процесс.

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

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

OOM Killer выбирает процесс для завершения при нехватке доступной памяти; учитываются потребление и oom_score_adj. Защита начинается с ограниченного расхода памяти, а не с запрета убивать процесс.

Оценка зависит от области нехватки памяти, в том числе cgroup, а не только всей RAM машины. oom_score_adj меняет приоритет; значение −1000 исключает обычный выбор этим механизмом, но требует соответствующих прав и может навредить остальным службам. Лучше ограничивать очереди и workers, анализировать рост памяти и оставлять запас. SIGKILL нельзя перехватить; Python-обработчик исключений от него не спасает.

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

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

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

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

Подробнее