Перейти к содержимому

Статья 7 из 75

Начало работы

Как добавить swap на Ubuntu и Debian

Если на VPS мало оперативки, swap спасает от OOM. Как создать и настроить swap на Ubuntu/Debian.

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

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

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

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

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

Окно терминала
swapon --show

Для swap на 2 ГБ:

Окно терминала
fallocate -l 2G /swapfile

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

Окно терминала
dd if=/dev/zero of=/swapfile bs=1M count=2048
Окно терминала
chmod 600 /swapfile
Окно терминала
mkswap /swapfile
Окно терминала
swapon /swapfile
Окно терминала
free -h

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

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

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

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

Окно терминала
echo '/swapfile none swap sw 0 0' >> /etc/fstab

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

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

  • 0 система использует swap только в крайнем случае
  • 10 хороший вариант для VPS (рекомендуется)
  • 60 значение по умолчанию (слишком агрессивно для сервера)
  • 100 система постоянно сбрасывает данные в swap
Окно терминала
cat /proc/sys/vm/swappiness
Окно терминала
sysctl vm.swappiness=10
Окно терминала
echo 'vm.swappiness=10' >> /etc/sysctl.conf

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

Окно терминала
# Выключить старый swap
swapoff /swapfile
# Создать файл побольше
fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Окно терминала
swapoff /swapfile
rm /swapfile

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

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

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