Ответ
Да, OOM Killer (Out-Of-Memory Killer) активируется и работает даже при полном отсутствии swap-пространства. Его задача — аварийное завершение процессов для освобождения оперативной памяти (RAM) при её критической нехватке.
Почему он работает без swap? OOM Killer реагирует на давление в памяти RAM, а не на заполнение swap. Отсутствие swap лишь ускоряет исчерпание физической памяти, что может привести к более раннему срабатыванию OOM Killer.
Практический пример диагностики:
# Проверить, не срабатывал ли OOM Killer (просмотр логов ядра)
sudo dmesg -T | grep -i "killed process"
# Посмотреть текущие настройки управления памятью, влияющие на OOM
cat /proc/sys/vm/overcommit_memory # Стратегия overcommit
cat /proc/sys/vm/panic_on_oom # Вызывать ли панику при OOM (0 - нет, 1 - да)
# Проверить оценку "плохости" (oom_score) для текущих процессов
cat /proc/$(pidof your_process)/oom_score
Для DevOps: В продакшн-среде без swap важно тщательно настраивать лимиты памяти для контейнеров (Docker -m, Kubernetes resources.limits.memory) и мониторить использование RAM, чтобы OOM Killer не завершал критичные сервисы.