Когда я только развернул себе 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 + OEnterCtrl + 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 можно в любой момент увеличить, уменьшить или удалить без переустановки системы.