Администрирование• Гайды по выбору

Настройка Swap на Ubuntu и Debian: когда это спасает, а когда убивает производительность

Создаём swap-файл правильно, настраиваем swappiness и разбираемся, почему для СУБД swap — враг, а для маленьких VPS — спасение от OOM Killer.

Обновлено: 2026-10-25T06:00:02.550Z
Время чтения: ~8 мин
Автор: Артём Савельев (DevOps-инженер)
Быстрый ответ & Краткая суть

Swap на VPS с 1–4 ГБ RAM — обязателен (защита от OOM Killer). Создайте swap-файл 1–2 ГБ командами: fallocate, mkswap, swapon. Установите vm.swappiness=10 для серверов с СУБД. Для серверов с 16+ ГБ RAM swap опционален. Никогда не используйте swap как замену RAM — это в 1000× медленнее.

RAM 1–2 ГБSwap 2 ГБ (обязательно)
RAM 4–8 ГБSwap 2–4 ГБ (рекомендуется)
RAM 16+ ГБSwap 1–2 ГБ (страховка)
swappiness10 (СУБД) / 60 (default)
Ключевые выводы и краткая суть
  • Swap спасает от OOM Killer на VPS с малым объёмом RAM (1–2 ГБ). Без swap ядро убивает процессы при нехватке памяти.
  • Для СУБД (PostgreSQL, MySQL) активный swap — катастрофа. Лучше OOM, чем работа СУБД через swap (latency ×1000).
  • Оптимальный swappiness: 10 для серверов с СУБД, 60 (default) для общего назначения, 1 — если swap только как страховка.
  • Размер swap: 1–2 ГБ для VPS с 1–4 ГБ RAM. Для серверов с 16+ ГБ RAM swap не обязателен.

Что такое swap и зачем он серверу

Swap — область на диске, которую ядро Linux использует как «запасную» оперативную память. Когда RAM заканчивается, ядро выгружает неактивные страницы памяти в swap, освобождая место для активных процессов.

Без swap при нехватке RAM срабатывает OOM Killer — ядро принудительно убивает процессы, которые потребляют больше всего памяти. Обычно это ваш веб-сервер или СУБД. Результат — даунтайм.

Со swap система продолжит работать, но заметно медленнее. NVMe SSD даёт ~3 ГБ/с чтения, RAM — ~50 ГБ/с. Разница в 15×. На HDD swap практически убивает систему (8 мс latency vs 0.02 мс у NVMe).

Создание swap-файла: пошаговая инструкция

Современный способ — swap-файл (не раздел). Его проще создать, изменить размер и удалить:

create-swap.sh
# 1. Создаём файл (2 ГБ)
sudo fallocate -l 2G /swapfile

# 2. Права доступа (только root)
sudo chmod 600 /swapfile

# 3. Форматируем как swap
sudo mkswap /swapfile

# 4. Активируем
sudo swapon /swapfile

# 5. Проверяем
swapon --show
free -h

# 6. Автомонтирование при перезагрузке
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

# 7. Настраиваем swappiness (10 для серверов)
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

swappiness: когда ядро начинает свопить

Параметр vm.swappiness (0–200, по умолчанию 60) определяет, насколько агрессивно ядро использует swap. При 0 — swap используется только когда RAM заполнена на 100%. При 100 — ядро активно свопит даже при свободной RAM.

Для серверов с СУБД: swappiness=10. Мы хотим, чтобы PostgreSQL/MySQL работали из RAM, а swap включался только в аварийной ситуации.

Для маленьких VPS без СУБД: swappiness=60 (default) — нормально. Ядро разумно балансирует между RAM и swap.

swappiness=1: swap используется как абсолютная последняя мера. Подходит для серверов с избытком RAM, где swap нужен только как страховка от OOM.

PostgreSQL и swap — плохая комбинацияЕсли PostgreSQL начинает активно свопить shared_buffers, latency запросов вырастает в 100–1000×. Лучше увеличить RAM, чем надеяться на swap. Мониторьте: vmstat 1 — колонка si/so должна быть ~0.
Рекомендованные конфигурации по теме статьи

Проверенные серверы от надежных провайдеров

Весь каталог
Хит цены
Aeza

Aeza

Москва★ 4.6

Shared Start

CPU

1 ядер • 3.3 ГГц

RAM

1 ГБ

Диск

10 ГБ NVMe

Канал

200 Мбит/с

149 ₽/мес

Хит цены
Timeweb Cloud

Timeweb Cloud

Москва★ 4.8

Cloud Start

CPU

1 ядер • 3.3 ГГц

RAM

1 ГБ

Диск

15 ГБ NVMe

Канал

200 Мбит/с

299 ₽/мес

Aeza

Aeza

Москва★ 4.6

Shared Medium

CPU

2 ядер • 3.3 ГГц

RAM

2 ГБ

Диск

30 ГБ NVMe

Канал

200 Мбит/с

299 ₽/мес

Часто задаваемые вопросы (FAQ)

Можно ли использовать swap на NVMe SSD?

Да, NVMe SSD — лучший вариант для swap (низкий latency, высокий IOPS). На HDD swap практически бесполезен из-за высокого latency (8 мс vs 0.02 мс). На SATA SSD — приемлемо.

Сколько swap нужно на VPS с 1 ГБ RAM?

2 ГБ swap — оптимально. Это даст запас от OOM при пиковых нагрузках. Больше 4 ГБ swap при 1 ГБ RAM бессмысленно — если система настолько свопит, нужно увеличивать RAM.