Статья 7 из 75
Начало работы
Как добавить swap на Ubuntu и Debian
Если на VPS мало оперативки, swap спасает от OOM. Как создать и настроить swap на Ubuntu/Debian.
Зачем нужен swap
Заголовок раздела «Зачем нужен swap»Swap это область на диске, которая используется как дополнительная “оперативная память”. Когда RAM заканчивается, система переносит неактивные данные в swap, чтобы не убивать процессы.
На VPS с 1-2 ГБ RAM swap практически обязателен. Без него сервер может просто убить ваше приложение, если памяти не хватит.
Сколько swap нужно
Заголовок раздела «Сколько swap нужно»| RAM сервера | Рекомендуемый swap |
|---|---|
| 512 МБ | 1 ГБ |
| 1 ГБ | 1-2 ГБ |
| 2 ГБ | 2 ГБ |
| 4 ГБ | 2 ГБ |
| 8+ ГБ | 2 ГБ (или не нужен) |
Проверка текущего swap
Заголовок раздела «Проверка текущего swap»free -hЕсли в строке Swap стоят нули, значит swap не настроен.
Ещё можно проверить так:
swapon --showСоздание swap-файла
Заголовок раздела «Создание swap-файла»Шаг 1: Создайте файл нужного размера
Заголовок раздела «Шаг 1: Создайте файл нужного размера»Для swap на 2 ГБ:
fallocate -l 2G /swapfileЕсли fallocate не работает:
dd if=/dev/zero of=/swapfile bs=1M count=2048Шаг 2: Установите права доступа
Заголовок раздела «Шаг 2: Установите права доступа»chmod 600 /swapfileШаг 3: Пометьте файл как swap
Заголовок раздела «Шаг 3: Пометьте файл как swap»mkswap /swapfileШаг 4: Включите swap
Заголовок раздела «Шаг 4: Включите swap»swapon /swapfileШаг 5: Проверьте
Заголовок раздела «Шаг 5: Проверьте»free -hТеперь в строке Swap должен появиться ваш объём.
Автоматическое включение при перезагрузке
Заголовок раздела «Автоматическое включение при перезагрузке»Добавьте строку в /etc/fstab:
echo '/swapfile none swap sw 0 0' >> /etc/fstabБез этого шага swap пропадёт после перезагрузки сервера.
Настройка swappiness
Заголовок раздела «Настройка swappiness»Swappiness определяет, насколько активно система использует swap. Значение от 0 до 100:
- 0 система использует swap только в крайнем случае
- 10 хороший вариант для VPS (рекомендуется)
- 60 значение по умолчанию (слишком агрессивно для сервера)
- 100 система постоянно сбрасывает данные в swap
Проверить текущее значение
Заголовок раздела «Проверить текущее значение»cat /proc/sys/vm/swappinessИзменить на 10
Заголовок раздела «Изменить на 10»sysctl vm.swappiness=10Сохранить на постоянку
Заголовок раздела «Сохранить на постоянку»echo 'vm.swappiness=10' >> /etc/sysctl.confКак увеличить swap
Заголовок раздела «Как увеличить swap»Если текущего swap не хватает:
# Выключить старый swapswapoff /swapfile
# Создать файл побольшеfallocate -l 4G /swapfilechmod 600 /swapfilemkswap /swapfileswapon /swapfileКак удалить swap
Заголовок раздела «Как удалить swap»swapoff /swapfilerm /swapfileИ удалите строку с /swapfile из /etc/fstab.
Swap на SSD vs HDD
Заголовок раздела «Swap на SSD vs HDD»На SSD swap работает значительно быстрее, но частая запись в swap сокращает ресурс диска. На серверах Datagio используются SSD, поэтому swap будет работать быстро, но не стоит полагаться на него как на замену RAM. Если swap постоянно загружен, лучше перейти на тариф с большим объёмом оперативной памяти.
Swap это не замена RAM, а страховка. Если ваш сервер постоянно использует swap, пора апгрейдить тариф.