Если сервер на Linux начал тормозить из-за нехватки оперативной памяти, это не значит, что нужно переходить на более дорогой тариф с большим объёмом оперативной памяти. Вместо этого можно настроить swap раздел — дополнительная виртуальную память, которая использует ssd диск сервера.
Обычно на арендованных виртуальных серверах, выделенная оперативная память ограничена. Если у вас запущены ресурсоёмкие процессы (например, базы данных, веб-серверы или контейнеры), оперативка может быстро заканчиваться, а система начнёт тормозить или даже завершать процессы с ошибкой OOM (Out of Memory).
Swap решает эту проблему, создавая дополнительное пространство на диске, куда система может временно выгружать неактивные данные из RAM. Это позволяет избежать критических сбоев и продлить жизнь серверу без дополнительных затрат.
Swap раздел на Linux - это аналог файла подчкачки на Windows (pagefile.sys). На macOS тоже есть swap-файлы, но управлять ими вручную не так просто.
В данной статье мы разберем простые подходы для проверки и создания swap файла на Linux.
Для проерки наличия и текущего состояния swap достаточно в ssh консоли выполнить команду swapon --show
.
swapon --show
Если swap включён, вы увидите список активных swap-разделов и файлов. Если команда не выводит ничего, значит swap не настроен.
Чтобы проверить насколько swap используется в реальном времени, достаточно выполнить команду free -h
.
free -h
Она покажет общий объём swap, сколько используется и сколько свободно.
Вы можете вывести данные о swap через файл /proc/meminfo.
Для этого в консоле необходимо выполнить команду cat /proc/meminfo | grep Swap
cat /proc/meminfo | grep Swap
Для настройки swap-файла на 2 ГБ сначала необходимо создать сам файл, после его смонтировать.
sudo fallocate -l 2G /swapfile
Соответственно 2G
можно заменить на нужное значение, например 4G
.
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
fstab
для автоматического монтирования при перезагрузке
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
Эта последовательность команд будет работать на большинстве дистрибутивов Linux, но с некоторыми нюансами.
fallocate
по умолчанию. Вместо этого используйте:
dd if=/dev/zero of=/swapfile bs=1M count=2048
fallocate
может отсутствовать. В таком случае тоже можно использовать dd
.Во всех современных Linux-дистрибутивах команды должны работать без проблем.
Обеспечивает стабильность работы – уменьшает вероятность завершений программ из-за нехватки памяти.
Экономит финансы и время – не нужно сразу переходить на тариф с большей RAM.
Предоставляет гибкость – можно быстро увеличить swap при необходимости.
Использование диска, swap как обычный файл, занимает место на диске.
Swap медленнее, чем оперативная память, поэтому его активность может замедлить работу сервера.
Настройка swap – это быстрый и бюджетный способ расширить память сервера без апгрейда тарифного плана. Если ваш VDS часто испытывает нехватку RAM, попробуйте добавить swap и посмотрите, как изменится производительность.