Sobes.tech
Middle
23

Что такое OOM Killer и можно ли его контролировать?

Companies where asked
OZONOZON

Answer from AI

sobes.tech AI

OOM Killer (Out-Of-Memory Killer) — это механизм в ядре Linux, который срабатывает, когда системе не хватает оперативной памяти и swap для продолжения работы. В такой ситуации OOM Killer выбирает и завершает один или несколько процессов, чтобы освободить память и предотвратить крах всей системы.

Контролировать OOM Killer можно несколькими способами:

  • Настройка приоритетов процессов через oom_score_adj — можно задать значение от -1000 (процесс защищён от убийства) до +1000 (процесс с большей вероятностью будет убит).
  • Настройка параметров ядра — например, через /proc/sys/vm/overcommit_memory и /proc/sys/vm/overcommit_ratio можно влиять на поведение выделения памяти.
  • Использование cgroups — ограничить потребление памяти для групп процессов, чтобы избежать срабатывания OOM Killer на уровне всей системы.

Пример изменения приоритета процесса:

# Получить PID процесса
pid=1234
# Установить oom_score_adj в -500 (уменьшить вероятность убийства)
echo -500 > /proc/$pid/oom_score_adj