Расширяем оперативку с помощью SWAP на Linux

04.04.2025
27
2 минуты

Если сервер на Linux начал тормозить из-за нехватки оперативной памяти, это не значит, что нужно переходить на более дорогой тариф с большим объёмом оперативной памяти. Вместо этого можно настроить swap раздел — дополнительная виртуальную память, которая использует ssd диск сервера.

Как работает swap на сервере

Обычно на арендованных виртуальных серверах, выделенная оперативная память ограничена. Если у вас запущены ресурсоёмкие процессы (например, базы данных, веб-серверы или контейнеры), оперативка может быстро заканчиваться, а система начнёт тормозить или даже завершать процессы с ошибкой OOM (Out of Memory).

Swap решает эту проблему, создавая дополнительное пространство на диске, куда система может временно выгружать неактивные данные из RAM. Это позволяет избежать критических сбоев и продлить жизнь серверу без дополнительных затрат.

Swap раздел на Linux - это аналог файла подчкачки на Windows (pagefile.sys). На macOS тоже есть swap-файлы, но управлять ими вручную не так просто.

В данной статье мы разберем простые подходы для проверки и создания swap файла на Linux.

Проверка состояния swap

Для проерки наличия и текущего состояния swap достаточно в ssh консоли выполнить команду swapon --show.

swapon --show

Если swap включён, вы увидите список активных swap-разделов и файлов. Если команда не выводит ничего, значит swap не настроен.

Проверка через free

Чтобы проверить насколько swap используется в реальном времени, достаточно выполнить команду free -h.

free -h

Она покажет общий объём swap, сколько используется и сколько свободно.

Проверка через meminfo

Вы можете вывести данные о swap через файл /proc/meminfo.

Для этого в консоле необходимо выполнить команду cat /proc/meminfo | grep Swap

cat /proc/meminfo | grep Swap

Настраиваем swap на Linux

Для настройки swap-файла на 2 ГБ сначала необходимо создать сам файл, после его смонтировать.

  1. Создаём файл под swap (2 ГБ)
    sudo fallocate -l 2G /swapfile

    Соответственно 2G можно заменить на нужное значение, например 4G.

  2. Выставляем права доступа
    sudo chmod 600 /swapfile
  3. Создаём swap-область
    sudo mkswap /swapfile
  4. Включаем swap
    sudo swapon /swapfile
  5. Добавляем в fstab для автоматического монтирования при перезагрузке
    echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

Эта последовательность команд будет работать на большинстве дистрибутивов Linux, но с некоторыми нюансами.

Где точно работает

  • Debian, Ubuntu, Linux Mint – все команды работают без изменений.
  • RHEL, CentOS, Fedora – команды полностью совместимы.
  • Arch Linux, Manjaro, EndeavourOS – работает без изменений.
  • openSUSE – тоже поддерживает эти команды.

Где могут быть нюансы

  • Alpine Linux – не поддерживает fallocate по умолчанию. Вместо этого используйте:
    dd if=/dev/zero of=/swapfile bs=1M count=2048
  • Older Linux versions – на очень старых версиях Linux fallocate может отсутствовать. В таком случае тоже можно использовать dd.

Во всех современных Linux-дистрибутивах команды должны работать без проблем.

Что дает swap раздел

  • Обеспечивает стабильность работы – уменьшает вероятность завершений программ из-за нехватки памяти.

  • Экономит финансы и время – не нужно сразу переходить на тариф с большей RAM.

  • Предоставляет гибкость – можно быстро увеличить swap при необходимости.

Минусы swap

  • Использование диска, swap как обычный файл, занимает место на диске.

  • Swap медленнее, чем оперативная память, поэтому его активность может замедлить работу сервера.

Вывод

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

Интересные статьи
Ваш запрос отправлен
Наш менеджер уже увидел ваше письмо, он наберет Вас в ближайшее время.