Sobes.tech
Назад к вопросам
Senior
5

Как OOM Killer выбирает процесс для убийства? Как считается oom_score?

Компании, где спрашивали
ОТП БанкОТП Банк

Ответ от нейросети

sobes.tech AI

OOM Killer в Linux выбирает процесс для убийства на основе оценки, насколько процесс «виноват» в нехватке памяти. Для этого используется параметр oom_score, который рассчитывается ядром.

oom_score зависит от нескольких факторов:

  • Используемая процессом память (RSS, swap).
  • Время жизни процесса (чем дольше, тем ниже приоритет для убийства).
  • Приоритет процесса (например, процессы с более высоким приоритетом или с флагом oom_score_adj ниже менее вероятно будут убиты).

Чем выше oom_score, тем выше вероятность, что процесс будет выбран для убийства.

Параметр oom_score_adj позволяет вручную корректировать оценку, задавая значение от -1000 (никогда не убивать) до +1000 (максимально вероятно убить).

Таким образом, OOM Killer выбирает процесс с максимальным скором, учитывая память, приоритет и настройки, чтобы минимизировать ущерб системе при освобождении памяти.