Перейти на сайт
База знаний/Начало работы/Настройка swap на VPS. Что делать, если мало оперативки

Настройка swap на VPS. Что делать, если мало оперативки

Зачем нужен swap

Swap это область на диске, которая используется как дополнительная "оперативная память". Когда RAM заканчивается, система переносит неактивные данные в swap, чтобы не убивать процессы.

На VPS с 1-2 ГБ RAM swap практически обязателен. Без него сервер может просто убить ваше приложение, если памяти не хватит.

Сколько swap нужно

RAM сервера Рекомендуемый swap
512 МБ 1 ГБ
1 ГБ 1-2 ГБ
2 ГБ 2 ГБ
4 ГБ 2 ГБ
8+ ГБ 2 ГБ (или не нужен)

Проверка текущего swap

free -h

Если в строке Swap стоят нули, значит swap не настроен.

Ещё можно проверить так:

swapon --show

Создание swap-файла

Шаг 1: Создайте файл нужного размера

Для swap на 2 ГБ:

fallocate -l 2G /swapfile

Если fallocate не работает:

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

Шаг 2: Установите права доступа

chmod 600 /swapfile

Шаг 3: Пометьте файл как swap

mkswap /swapfile

Шаг 4: Включите swap

swapon /swapfile

Шаг 5: Проверьте

free -h

Теперь в строке Swap должен появиться ваш объём.

Автоматическое включение при перезагрузке

Добавьте строку в /etc/fstab:

echo '/swapfile none swap sw 0 0' >> /etc/fstab

Без этого шага swap пропадёт после перезагрузки сервера.

Настройка swappiness

Swappiness определяет, насколько активно система использует swap. Значение от 0 до 100:

  • 0 система использует swap только в крайнем случае
  • 10 хороший вариант для VPS (рекомендуется)
  • 60 значение по умолчанию (слишком агрессивно для сервера)
  • 100 система постоянно сбрасывает данные в swap

Проверить текущее значение

cat /proc/sys/vm/swappiness

Изменить на 10

sysctl vm.swappiness=10

Сохранить на постоянку

echo 'vm.swappiness=10' >> /etc/sysctl.conf

Как увеличить swap

Если текущего swap не хватает:

# Выключить старый swap
swapoff /swapfile

# Создать файл побольше
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

Как удалить swap

swapoff /swapfile
rm /swapfile

И удалите строку с /swapfile из /etc/fstab.

Swap на SSD vs HDD

На SSD swap работает значительно быстрее, но частая запись в swap сокращает ресурс диска. На серверах Datagio используются SSD, поэтому swap будет работать быстро, но не стоит полагаться на него как на замену RAM. Если swap постоянно загружен, лучше перейти на тариф с большим объёмом оперативной памяти.

Swap это не замена RAM, а страховка. Если ваш сервер постоянно использует swap, пора апгрейдить тариф.