Swap — это дополнительная область на диске, которую Linux использует в качестве виртуальной памяти, когда заканчивается свободная оперативная память (RAM).
Многие пользователи узнают о Swap только после того, как сайт начинает работать медленно, появляются ошибки нехватки памяти или сервер неожиданно завершает процессы из-за высокой нагрузки.
В этой статье разберёмся, зачем нужен Swap, когда его стоит использовать и как правильно настроить его на сервере с Ubuntu или Debian.
Что такое Swap
Оперативная память работает значительно быстрее любого SSD или HDD.
Когда свободной RAM становится недостаточно, Linux может временно переносить часть данных в специальный файл или раздел Swap.
Это позволяет системе продолжать работу даже при нехватке памяти.
Важно понимать, что Swap не делает сервер быстрее и не заменяет оперативную память. Его основная задача — предотвратить аварийное завершение процессов при пиковых нагрузках.
Когда нужен Swap
Настройка Swap особенно рекомендуется для:
- VPS с небольшим объёмом RAM;
- серверов с 1–4 ГБ оперативной памяти;
- сайтов на WordPress;
- серверов с базами данных;
- серверов с панелями управления;
- проектов с периодическими скачками нагрузки.
Если на сервере установлено 32–64 ГБ памяти и её использование остаётся низким, необходимость в Swap может быть минимальной.
Проверка наличия Swap
Перед настройкой стоит проверить, используется ли Swap уже сейчас.
Выполните команду:
swapon --show
Если команда не выводит никаких данных, значит Swap отсутствует.
Дополнительно можно проверить использование памяти:
free -h
Пример результата:
total used free
Mem: 2.0G 1.1G 900M
Swap: 0B 0B 0B
Если значение Swap равно нулю, виртуальная память не настроена.
Выбор размера Swap
Универсального правила не существует, но обычно используют следующие значения:
| RAM | Рекомендуемый Swap |
|---|---|
| 1 ГБ | 1–2 ГБ |
| 2 ГБ | 2 ГБ |
| 4 ГБ | 2–4 ГБ |
| 8 ГБ | 4 ГБ |
| 16 ГБ и более | 2–4 ГБ |
Для большинства VPS оптимальным вариантом считается Swap размером 2–4 ГБ.
Создание файла Swap
В данном примере создадим Swap размером 2 ГБ.
Создайте файл:
fallocate -l 2G /swapfile
Если команда fallocate недоступна, используйте:
dd if=/dev/zero of=/swapfile bs=1M count=2048
Проверьте размер файла:
ls -lh /swapfile
Настройка прав доступа
Для безопасности ограничьте доступ к файлу:
chmod 600 /swapfile
Проверить права можно командой:
ls -lh /swapfile
Владелец должен иметь полный доступ, а остальные пользователи — не иметь доступа вовсе.
Создание области Swap
Подготовьте файл:
mkswap /swapfile
Пример успешного результата:
Setting up swapspace version 1
Активация Swap
Включите созданный Swap:
swapon /swapfile
Проверьте результат:
swapon --show
Также можно выполнить:
free -h
Теперь в строке Swap появится выделенный объём памяти.
Автоматическое подключение после перезагрузки
Чтобы Swap подключался автоматически после перезагрузки сервера, откройте файл:
nano /etc/fstab
Добавьте в конец файла строку:
/swapfile none swap sw 0 0
Сохраните изменения.
Проверить конфигурацию можно командой:
mount -a
Если ошибок нет, настройка выполнена правильно.
Настройка параметра swappiness
Linux использует параметр swappiness для определения того, насколько активно система должна использовать Swap.
Проверить текущее значение:
cat /proc/sys/vm/swappiness
Обычно используется значение:
60
Для VPS и веб-серверов чаще рекомендуется значение:
10
или
20
Временно изменить параметр:
sysctl vm.swappiness=10
Чтобы настройка сохранялась после перезагрузки, откройте:
nano /etc/sysctl.conf
Добавьте строку:
vm.swappiness=10
Примените настройки:
sysctl -p
Проверка работы Swap
Проверить использование памяти:
free -h
Проверить активный Swap:
swapon --show
Получить подробную информацию:
cat /proc/swaps
Как отключить Swap
Если необходимо временно отключить Swap:
swapoff /swapfile
Проверить результат:
swapon --show
Как удалить Swap
Отключите Swap:
swapoff /swapfile
Удалите строку из:
/etc/fstab
После этого удалите файл:
rm /swapfile
Частые ошибки
Команда swapon выдаёт ошибку
Проверьте права доступа:
chmod 600 /swapfile
И повторно выполните:
mkswap /swapfile
swapon /swapfile
Недостаточно места на диске
Проверьте свободное пространство:
df -h
Перед созданием Swap убедитесь, что на диске достаточно места.
Сервер остаётся медленным
Swap помогает избежать нехватки памяти, но не заменяет RAM.
Если сервер постоянно использует Swap, возможно, стоит увеличить объём оперативной памяти или оптимизировать приложения.
Рекомендации
Для большинства VPS с 1–4 ГБ RAM рекомендуется:
- создать Swap размером 2–4 ГБ;
- установить значение swappiness 10–20;
- регулярно контролировать использование памяти;
- не использовать Swap как замену оперативной памяти.
Правильно настроенный Swap помогает серверу стабильнее переживать пики нагрузки и снижает вероятность аварийного завершения процессов из-за нехватки памяти.