
Swap в Linux – это область на жестком диске или SSD, которую система использует как дополнительную виртуальную память, когда оперативная память заполнена. Она позволяет продолжать работу приложений, предотвращая аварийное завершение процессов из-за нехватки RAM.
Swap может быть представлен в виде отдельного раздела или файла. Раздел обычно создают при установке системы, а файл можно добавить позже без изменения структуры дисков. Размер swap зависит от объема оперативной памяти и задач: для серверов с большим объемом RAM достаточно 2–4 ГБ, для рабочих станций с ограниченной памятью – объем RAM или немного больше.
Использование swap можно контролировать с помощью параметра swappiness. Значение 0 заставляет систему максимально использовать RAM, значение 100 – активно задействовать swap. Настройка swappiness позволяет снизить нагрузку на диск и ускорить работу системы при пиковых нагрузках.
Мониторинг swap необходим для понимания потребления памяти. Команды free -h и swapon -s показывают текущий объем и использование swap, позволяя вовремя корректировать размер или приоритет доступа.
Для чего нужен swap и когда система его использует

Swap служит дополнительной виртуальной памятью для Linux, позволяя системе продолжать работу при нехватке RAM. Когда активная память превышает доступный объем оперативной памяти, ядро перемещает неактивные страницы в swap, освобождая RAM для текущих процессов.
Система использует swap не только при полном заполнении RAM, но и при высоком потреблении памяти отдельными приложениями. Например, при одновременном запуске нескольких виртуальных машин или больших аналитических задач ядро переносит менее активные данные в swap, чтобы предотвратить зависания и сбои.
Swap также применяется для управления кешем и буферами: данные, которые долго не используются, могут быть выгружены на диск, освобождая оперативную память для более приоритетных задач. Рекомендовано иметь объем swap минимум равный половине объема RAM на рабочих станциях и до объема RAM на серверах с ограниченной памятью, чтобы поддерживать стабильность системы.
Непрерывный мониторинг использования swap через free -h или vmstat позволяет своевременно выявлять перегрузку памяти и корректировать swappiness, минимизируя замедление работы при интенсивной загрузке.
Типы swap: файл против раздела и их различия

Swap может быть реализован в виде отдельного раздела на диске или как swap-файл в существующей файловой системе. Раздел выделяется при установке Linux и обычно имеет фиксированный размер, что обеспечивает стабильное и быстрое обращение к swap без фрагментации.
Swap-файл создается внутри существующей файловой системы и может изменяться по размеру без переразметки диска. Он удобен для динамического расширения памяти на уже работающих системах, но может работать медленнее на сильно фрагментированных файловых системах.
При выборе между разделом и файлом стоит учитывать нагрузку и конфигурацию диска. Для серверов с постоянной высокой загрузкой лучше использовать раздел, так как доступ к нему меньше зависит от структуры файловой системы. Для рабочих станций и тестовых систем swap-файл позволяет гибко изменять объем памяти под конкретные задачи.
Рекомендуется проверять скорость и использование swap после создания файла или раздела с помощью swapon -s и free -h, чтобы убедиться, что система корректно использует новый ресурс.
Как проверить текущее использование swap в системе

Для мониторинга использования swap в Linux доступны несколько команд, каждая из которых предоставляет разные детали и уровень информации.
- free -h – показывает общий объем RAM и swap, используемый и свободный. Команда удобна для быстрого анализа нагрузки на память.
- vmstat 1 – отображает статистику памяти и процессов в реальном времени, включая использование swap, количество страниц, перемещаемых на диск и обратно.
- top или htop – интерактивные утилиты, показывающие потребление RAM и swap каждым процессом, что помогает выявлять «тяжелые» приложения.
Рекомендуется регулярно проверять swap при работе с интенсивными приложениями и высокими нагрузками. Если swap используется постоянно или близок к полному объему, стоит рассмотреть увеличение его размера или оптимизацию потребления RAM.
Создание и подключение swap-файла на Linux

Для создания swap-файла в Linux достаточно нескольких команд. Процесс включает выделение файла нужного размера, установку правильных прав доступа и активацию swap.
| Шаг | Команда | Описание |
|---|---|---|
| 1. Создание файла | sudo fallocate -l 2G /swapfile |
Выделяет файл размером 2 ГБ для использования как swap. |
| 2. Установка прав доступа | sudo chmod 600 /swapfile |
Ограничивает доступ к файлу, чтобы предотвратить чтение другими пользователями. |
| 3. Форматирование под swap | sudo mkswap /swapfile |
Инициализирует файл как swap-раздел, готовый к подключению. |
| 4. Активация swap | sudo swapon /swapfile |
Включает использование файла системой в качестве swap. |
| 5. Автоматическое подключение при загрузке | echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab |
Добавляет файл в конфигурацию автозагрузки, чтобы swap активировался после перезагрузки. |
После подключения swap-файла проверку его работы проводят командами swapon -s или free -h. Для увеличения объема swap достаточно создать новый файл большего размера и подключить его аналогично.
Настройка приоритетов swap с помощью swappiness

Проверка текущего значения: cat /proc/sys/vm/swappiness. Обычно по умолчанию стоит 60, что подходит для большинства систем.
Для уменьшения использования swap и повышения скорости откликов можно установить значение 10–30:
sudo sysctl vm.swappiness=20
Чтобы сохранить настройку после перезагрузки, добавляют строку в /etc/sysctl.conf:
vm.swappiness=20
Рекомендации по выбору значения зависят от задач системы: для серверов с большим объемом RAM лучше использовать 10–20, для рабочих станций с ограниченной памятью – 30–40. Постоянный мониторинг через free -h позволяет оценить, насколько корректно выбранная swappiness распределяет нагрузку между RAM и swap.
Как отключить или изменить размер swap без перезагрузки

Для временного отключения swap используется команда sudo swapoff. Например, sudo swapoff /swapfile отключает конкретный swap-файл, позволяя безопасно изменить его размер или переместить.
После отключения swap можно изменить размер файла с помощью fallocate или dd:
sudo fallocate -l 4G /swapfile – увеличивает swap до 4 ГБ. Для уменьшения размера предварительно нужно отключить swap, иначе данные будут потеряны.
После изменения размера необходимо инициализировать swap снова:

sudo mkswap /swapfile
Для активации обновленного swap применяют sudo swapon:
sudo swapon /swapfile
Проверка состояния: swapon -s или free -h показывают новый размер и использование swap без перезагрузки системы.
Вопрос-ответ:
Что такое swap и зачем он нужен в Linux?
Swap — это область на диске, используемая системой как расширение оперативной памяти. Когда RAM заполняется, неактивные данные перемещаются в swap, что позволяет продолжать работу приложений и предотвращает их аварийное завершение.
В чем разница между swap-файлом и swap-разделом?
Swap-раздел создается при разметке диска и имеет фиксированный размер, что обеспечивает стабильный доступ без фрагментации. Swap-файл создается внутри существующей файловой системы и может изменяться по размеру без переразметки, но при высокой фрагментации может работать медленнее.
Как узнать, сколько swap используется в данный момент?
Для проверки используют команды free -h, показывающую общий и используемый объем swap, swapon -s для списка активных swap-ресурсов и vmstat 1 для отображения статистики использования памяти в реальном времени. Эти данные помогают понять нагрузку и при необходимости корректировать swappiness.
Можно ли изменить размер swap без перезагрузки системы?
Да, временно отключив swap с помощью swapoff, можно изменить размер файла или раздела. После этого swap инициализируют снова командой mkswap и подключают через swapon. Проверить состояние и размер нового swap можно командами swapon -s и free -h.
