SWAP в Linux

Руководство по созданию и настройке SWAP раздела на Linux.

SWAP (своп) — механизм виртуальной памяти в Linux, который позволяет переносить неактивные данные из оперативной памяти (RAM) на диск (HDD или SSD), освобождая ОЗУ для текущих задач. Это спасает систему при нехватке памяти, но замедляет работу, так как диск в десятки тысяч раз медленнее оперативной памяти.

В Linux оперативная память делится на разделы, называемые страницами (pages). Swapping (подкачка) — это процесс копирования страниц памяти в специально выделенную область диска, называемую swap space. Это может быть как отдельный файл, так и раздел жёсткого диска. Совокупный объём физической памяти и раздела подкачки образует доступную виртуальную память.

Зачем нужен SWAP

SWAP выполняет две основные функции:

  • Когда системе требуется больше памяти, чем доступно, ядро выгружает наименее используемые страницы в swap, освобождая место для текущих приложений или процессов.
  • Многие страницы, задействованные приложениями при запуске, больше не используются. Система может выгрузить их в swap, разгружая ОЗУ.

Недостатки SWAP

Основной недостаток — скорость работы. Операции с оперативной памятью выполняются за наносекунды, тогда как с диском — за миллисекунды. Одни и те же действия на диске занимают в десятки тысяч раз больше времени. Следовательно, чем активнее используется swap, тем медленнее работает система.

Примечание

Когда приложения активно используют swap, это заметно замедляет работу. В таких случаях стоит увеличить объём оперативной памяти. Рассмотрите перенос проекта на VPS или выделенный сервер с более гибкими настройками ресурсов.

Типичные симптомы нехватки памяти

Чаще всего от нехватки памяти страдает база данных:

  • Постоянное падение сайта с ошибкой соединения с базой данных (например, из-за сбоя MySQL).
  • В логах /var/log/mysql.log появляется сообщение InnoDB: Fatal error: cannot allocate memory for the buffer pool.
  • Медленный отклик сервера даже при низкой нагрузке CPU.

Даже на SSD операции swap проходят через дисковую подсистему, что увеличивает время отклика.

Если swap активно используется — лучше увеличить объём RAM или оптимизировать проект. Один из вариантов — перейти на более мощный VPS или выделенный сервер.

Проверка наличия swap

Проверьте наличие swap командой:

swapon -s

Пример вывода:

Filename                Type        Size    Used    Priority
/swapfile              file        40956   40956   -1

Дополнительная информация:

free -m

Пример вывода:

              total        used        free      shared  buff/cache   available
Mem:            488         160           7          40         320         259
Swap:            39          39           0

Если swap настроен, он будет использоваться при необходимости.

Создание файла подкачки

Если swap отсутствует, создайте его вручную.

  1. Создайте файл размером 512 МБ:
dd if=/dev/zero of=/swap.file bs=1M count=512

Чтобы изменить размер, скорректируйте значение count.

  1. Установите права доступа, чтобы только root мог читать и писать файл:
chmod 600 /swap.file
  1. Отформатируйте файл под swap:
mkswap /swap.file
  1. Добавьте строку в /etc/fstab, чтобы swap включался при загрузке:
/swap.file      swap            swap    defaults        0       0
  1. Активируйте swap:
swapon /swap.file
  1. После перезагрузки проверьте наличие swap:
free -m

Помощь

Если у вас возникли вопросы или требуется помощь, пожалуйста, свяжитесь с нами через систему тикетов — мы обязательно вам поможем!

Нужна помощь?Наши инженеры бесплатно помогут с любым вопросом за считанные минутыНаписать нам