Где ещё, помимо узлов Kubernetes, отключают swap?

«Где ещё, помимо узлов Kubernetes, отключают swap?» — вопрос из категории Linux, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В DevOps-практике swap отключают в нескольких ключевых сценариях для обеспечения стабильной производительности и предсказуемого поведения систем.

Основные случаи:

  1. Контейнерные среды (Docker/containerd):

    • В production-окружениях для контейнеров, особенно при использовании оркестраторов, чтобы избежать неконтролируемого своппинга, который может привести к деградации всех контейнеров на хосте.
    • Настраивается через параметр --memory-swap=-1 в Docker или в конфигурации daemon.json.
  2. Серверы баз данных:

    • Для таких СУБД, как PostgreSQL, MongoDB, Redis и Elasticsearch, отключение swap является стандартной рекомендацией. Это предотвращает задержки, вызванные подкачкой страниц на диск, что критично для интерактивных транзакций и операций в памяти.
  3. Высокопроизводительные вычисления (HPC) и кластеры:

    • В задачах, где важна максимальная и стабильная скорость вычислений (например, рендеринг, моделирование), swap отключают, чтобы гарантировать, что процессы не будут вытеснены на медленный диск.
  4. Серверы приложений с гарантированным объемом RAM:

    • На серверах с избыточным объемом оперативной памяти, выделенным под конкретное приложение (например, JVM-приложение с фиксированным -Xmx), swap часто отключают, чтобы ОС не могла перемещать страницы, что упрощает анализ использования памяти.

Как отключить в Linux (на примере Ubuntu/CentOS):

# Временно отключить все swap-разделы
sudo swapoff -a

# Постоянно отключить, закомментировав записи в /etc/fstab
sudo sed -i '/swap/ s/^/#/' /etc/fstab

# Или удалить строки, содержащие swap
sudo sed -i '/swap/d' /etc/fstab

Важно: Отключать swap следует только при наличии достаточного объема оперативной памяти и понимании, что при её исчерпании ОС будет завершать процессы через OOM Killer, а не использовать диск как резерв.