Что такое OOM Killer, когда он срабатывает и как выбирает процесс для завершения?
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 с указанием убитого процесса.