OOM Killer — механизм управления памятью в Linux | Глоссарий FREEHOSTING

OOM Killer

Out of Memory Killer
OOM Killer — OOM Killer — это системный механизм в Linux, который автоматически завершает процессы при нехватке оперативной памяти, чтобы предотвратить крах всей системы.

Определение простыми словами

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

Он работает автоматически, оценивая «вес» каждого процесса на основе различных параметров, включая время работы и расход памяти, чтобы минимизировать ущерб для работы системы.

Сравнение

Параметр OOM Killer Ручное завершение процессов
Момент активации Автоматический при нехватке памяти По инициативе администратора
Критичность Высокая — для сохранения стабильности Зависит от действий пользователя
Выбор жертвы Оценивается алгоритмом ядра По субъективному решению
Влияние на систему Минимизирует сбои Может вызвать нестабильность

Кейсы использования

  • Автоматическое завершение наиболее ресурсоёмких процессов при перегрузке памяти.
  • Предотвращение полной остановки или краха сервера.
  • Поддержка стабильной работы VPS и выделенных серверов под нагрузкой.
  • Использование в облачных средах для управления ресурсами.
  • Негативный пример: неправильно настроенный OOM Killer может завершить критические системные процессы, вызвав потерю данных или остановку важных сервисов.

Технические детали

OOM Killer интегрирован в ядро Linux и срабатывает при исчерпании доступной памяти (RAM + swap). Он вычисляет показатель oom_score для каждого процесса, на основании которого выбирает кандидата для завершения. Менеджер памяти и процесс OOM Killer взаимодействуют через функционалы ядра, обеспечивая своевременную реакцию на дефицит памяти.

cat /proc//oom_score
# Показывает рейтинг процесса для OOM Killer

echo 1000 > /proc//oom_score_adj
# Изменение приоритета выживания процесса (от -1000 до +1000)

Подробности по настройке можно найти в overcommit и балансировке памяти.

Частые вопросы

Что такое OOM Killer?

Это системный механизм Linux, который завершает процессы при критической нехватке памяти.

Можно ли отключить OOM Killer?

Отключение не рекомендуется, но можно настроить параметры через /proc/sys/vm/oom_kill_allocating_task.

Как управлять приоритетом процессов для OOM Killer?

Через изменение значения oom_score_adj для процесса.