Sobes.tech
Middle+
26

Что такое OOM Killer, когда он срабатывает и как выбирает процесс для завершения?

Companies where asked
OPTIMAL CITY Technologies

Answer from AI

sobes.tech AI

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

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

Выбор процесса происходит на основе оценки «стоимости» завершения:

  • Процессы с большим потреблением памяти имеют больший шанс быть убитыми.
  • Процессы с более низким приоритетом (OOM score) менее защищены.
  • Учитываются время работы процесса, важность, принадлежность к пользователю.

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

Пример просмотра OOM score процесса:

cat /proc/<pid>/oom_score
cat /proc/<pid>/oom_score_adj

Если система начинает испытывать нехватку памяти, в логе ядра (dmesg) появятся сообщения о срабатывании OOM Killer с указанием убитого процесса.