Когда я только развернул себе VPS с Ubuntu, сервер был абсолютно чистый — ничего лишнего, только система и доступ по SSH под пользователем с sudo. Первое, что я решил сделать — добавить файл подкачки (swap), потому что на VPS с небольшим объёмом оперативной памяти без него система может легко упереться в лимиты и начать тупить или падать.

В этой статье я покажу, как я настроил swap на 2 ГБ самым простым, безопасным и правильным способом — через swap-файл, а не через отдельный раздел. Для VPS это оптимальный вариант.


Зачем вообще нужен swap?

Swap — это файл (или раздел), который система использует как дополнительную виртуальную память, когда заканчивается оперативка. Да, он медленнее RAM, но в критический момент может спасти сервер от зависания или OOM-killer’а.


Шаг 1. Проверяю, есть ли swap на сервере

Для начала я всегда проверяю, не включён ли swap уже по умолчанию. Для этого выполняю команду:

free -h

Если в выводе в строке Swap везде нули — значит, файл подкачки отсутствует, и можно спокойно делать свой.

Дополнительно можно проверить так:

swapon --show

Если команда ничего не выводит — swap точно не активен.


Шаг 2. Создаю swap-файл на 2 ГБ

Теперь создаю файл подкачки размером 2 гигабайта. Самый быстрый способ — через fallocate:

sudo fallocate -l 2G /swapfile

Этот файл будет лежать в корне системы и использоваться исключительно под swap.

Важно: иногда на некоторых файловых системах fallocate может не работать. В таком случае я использую альтернативный способ:

sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

Он медленнее, но работает всегда.


Шаг 3. Выставляю правильные права доступа (очень важно)

Swap-файл должен быть доступен только root’у, иначе система откажется с ним работать. Поэтому я сразу задаю правильные права:

sudo chmod 600 /swapfile

Проверяю:

ls -lh /swapfile

Всё должно выглядеть примерно так:

-rw------- 1 root root 2.0G /swapfile

Если права другие — значит, где-то ошибка.


Шаг 4. Форматирую файл как swap

Теперь превращаю обычный файл в файл подкачки:

sudo mkswap /swapfile

Система помечает файл как swap-область, после этого его уже можно подключать.


Шаг 5. Включаю swap

Активирую файл подкачки командой:

sudo swapon /swapfile

И сразу проверяю, что всё заработало:

free -h

или

swapon --show

Если вижу 2.0G — значит, swap успешно подключён и уже готов к работе


Шаг 6. Делаю swap постоянным (чтобы не пропал после перезагрузки)

По умолчанию после ребута VPS swap отключится, поэтому я обязательно добавляю его в автозагрузку.

Открываю файл fstab:

sudo nano /etc/fstab

И в самый конец добавляю строку:

/swapfile none swap sw 0 0

Сохраняю файл:

  • Ctrl + O
  • Enter
  • Ctrl + X

Теперь swap будет подключаться автоматически при каждом запуске системы.


Шаг 7. Настраиваю swappiness (рекомендую)

По умолчанию Ubuntu довольно активно использует swap, что для VPS не всегда хорошо. Я предпочитаю, чтобы система сначала максимально использовала оперативку.

Смотрю текущее значение:

cat /proc/sys/vm/swappiness

Обычно там 60. Для серверов я ставлю 10:

sudo sysctl vm.swappiness=10

Чтобы это значение сохранилось навсегда, открываю конфиг:

sudo nano /etc/sysctl.conf

И добавляю в конец:

vm.swappiness=10


Итог

В итоге у меня получилось:

  • Ubuntu VPS
  • Swap-файл на 2 ГБ
  • Swap работает сразу
  • Не слетает после перезагрузки
  • Система не душится из-за нехватки памяти

Простой, проверенный и безопасный способ, который я использую на всех своих VPS.

Если нужно — swap можно в любой момент увеличить, уменьшить или удалить без переустановки системы.