Задать вопрос
Все статьи / VDS / Создание и настройка виртуальных машин / Как управлять swap в Linux: создание, настройка и оптимизация под...
Найти результаты:
Период:
с:
 
по:
Помощь в поиске

Помощь в поиске

apple banana
Найти записи, которые содержат хотя бы одно из двух слов.

+apple +juice
Найти записи, которые содержат оба слова.

+apple macintosh
Найти записи, которые содержат слово 'apple', но положение записей выше, если они также содержат 'macintosh'.

+apple -macintosh
Найти записи, которые содержат слово 'apple', но не 'macintosh'.

+apple ~macintosh
Найти записи, которые содержат слово 'apple', но если запись также содержит слово 'macintosh', rate it lower than if row does not. Это более "мягкий" чем поиск '+apple -macintosh', для которого наличие 'macintosh' вызывает что записи не будут возвращены вовсе.

+apple +(>turnover <strudel)
Найти записи, которые содержат слова 'apple' и 'turnover', или 'apple' и 'strudel' (в любом порядке), но ранг 'apple turnover' выше чем 'apple strudel'.

apple*
Найти записи, которые содержат такие слова как 'apple', 'apples', 'applesauce', или 'applet'.

"some words"
Найти записи, которые содержат точную фразу 'some words' (например записи содержащие 'some words of wisdom', но не "some noise words").

Как управлять swap в Linux: создание, настройка и оптимизация под нагрузку

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

Что такое swap space и как работает

Swap space – это часть дискового пространства, которую операционная система Linux использует как дополнительную память при нехватке оперативной. Ее также называют областью подкачки, так как в нее временно выгружаются данные из RAM, которые в текущий момент не используются активно. 

Swap не заменяет оперативную память, а помогает системе работать при повышенной нагрузке. 

Она работает так: система следит, какие данные в памяти используются редко, и временно переносит их на диск. Освободившееся место в RAM идёт под новые задачи. Когда нужные данные снова понадобятся, они возвращаются из swap обратно в оперативную память.

Swap можно организовать двумя способами — как отдельный раздел на диске или как специальный файл в файловой системе. У раздела меньше накладных расходов и он работает немного стабильнее, зато файл гораздо удобнее: его легко создать, увеличить или убрать без переразметки диска. При этом Linux одинаково эффективно использует и тот, и другой.

Область напрямую влияет на производительность. Так как доступ к данным на диске значительно медленнее, чем к оперативной памяти, частая подкачка замедляет систему. Но при этом swap спасает ее от зависаний и аварийного закрытия программ, когда памяти не хватает. 

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

Как проверить наличие и использование swap space

Чтобы понять, используется ли swap space в системе и в каком объеме, Linux предоставляет несколько встроенных инструментов. Они позволяют проверить как сам факт наличия области подкачки, так и текущую нагрузку на нее.

Простейший способ – посмотреть сводную информацию о памяти с помощью команды:

free -h

В выводе будет отдельная строка Swap, где отображается общий размер swap space, объем занятой и свободной области. Если все значения равны нулю, область подкачки в системе не настроена или отключена.

Для получения детальной информации именно о подключенных swap-областях используется команда:

swapon --show

Она показывает, какие разделы или файлы используются как swap space, их тип, размер и приоритет. Отсутствие вывода означает, что область подкачки не активна.

Проверить текущую загрузку системы и использование swap space в реальном времени можно с помощью интерактивных утилит. Например, команда:

top

в верхней части экрана отображает общий объем swap и количество занятой памяти. Это удобно для быстрой оценки состояния системы под нагрузкой.

Для более точного анализа активности подкачки применяется команда:

vmstat 1

Она выводит статистику работы виртуальной памяти с заданным интервалом обновления. Столбцы si и so показывают, сколько данных система читает из swap space и записывает в него. Постоянные ненулевые значения указывают на активное использование области подкачки.

Swap-раздел и swap-файл 

Swap в Linux можно организовать двумя способами: выделить отдельный swap-раздел на диске или создать swap-файл внутри существующей файловой системы. Оба варианта выполняют одну задачу – предоставляют системе область подкачки, но отличаются по удобству управления, гибкости и поведению в некоторых сценариях.

Swap-раздел – это отдельная часть диска, которую целиком отводят под подкачку. Он существует независимо от файловой системы и обычно создается при установке Linux. Его размер фиксируется заранее, и если потом понадобится его изменить, это может потребовать сложных операций с разметкой диска, а иногда – даже пересоздания раздела.

Swap-файл – это обычный файл, который размещается внутри уже существующей файловой системы, например ext4 или xfs. Система просто подключает его как область подкачки. Главное преимущество такого подхода – гибкость: файл можно легко создать, увеличить, уменьшить или убрать, не трогая разметку диска. Для большинства современных компьютеров и серверов, включая виртуальные серверы, swap-файл – это простой и практичный выбор.

Основные различия между swap-файлом и swap-разделом сводятся к трем аспектам:

  1. Управление. Swap-файл гораздо удобнее в обслуживании: его можно быстро создать, изменить по размеру или отключить, не затрагивая структуру диска. Swap-раздел, напротив, жестко привязан к разметке диска – изменить его объем сложнее. 
  2. Совместимость и ограничения. Некоторые файловые системы или конфигурации, например Btrfs с сабволумами или системы с активными снапшотами, могут накладывать ограничения на использование swap-файла. В таких случаях swap-раздел работает стабильнее и предсказуемее, так как не зависит от особенностей файловой системы.
  3. Производительность. На современных накопителях, особенно SSD, разница между файлом и разделом практически незаметна. Ядро Linux эффективно обрабатывает оба варианта, а реальная скорость подкачки в первую очередь зависит от скорости диска, а не от типа swap. Однако в теории swap-раздел может быть чуть быстрее, потому что не проходит через слой файловой системы – это может сказаться в старых системах или при экстремальных нагрузках.

Рассмотрим ключевые плюсы и минусы swap-раздела:

Плюсы Минусы

Предсказуемая работа без зависимости от файловой системы

Сложное изменение размера, часто требуется переразметка

Стабильная конфигурация для долгоживущих установок

Риск ошибок при операциях с разделами на рабочей системе

Удобен, когда размер swap известен заранее и редко пересматривается

Труднее перераспределять место на диске без простоя

Хорошо вписывается в строгие схемы разметки и политики администрирования

Не всегда оправдан, если важна быстрая корректировка конфигурации


И swap-файла:

Плюсы Минусы

Гибкое изменение размера без вмешательства в разметку диска

Зависимость от файловой системы и ее особенностей

Быстрое добавление области подкачки на уже работающей системе Возможные ограничения на отдельных ФС и в некоторых режимах (например, со снимками/CoW)
Удобное масштабирование под изменяющуюся нагрузку Требует аккуратной настройки прав доступа и корректного создания файла
Простая миграция: файл можно перенести или пересоздать При заполненном диске может быть сложно выделить место под увеличение swap-файла
Удобен для тестов, временных конфигураций и автоматизации В редких сценариях диагностика проблем может быть менее очевидной


Создание swap-файла

Перед началом стоит проверить, есть ли свободное место на разделе, где планируется файл:

df -h

Далее создайте файл. В современных системах удобно использовать fallocate (если файловая система поддерживает), а если нужно гарантированно выделить блоки на диске – используйте dd.

Способ 1:

sudo fallocate -l 4G /swapfile

Способ 2:

sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress

Затем обязательно выставьте корректные права доступа, чтобы файл был доступен только root:

sudo chmod 600 /swapfile

Разметьте файл как swap и активируйте его:

sudo mkswap /swapfile
sudo swapon /swapfile

Проверьте, что область подкачки подключилась и видна системе:

swapon --show
free -h

Чтобы swap-файл включался автоматически после перезагрузки, добавьте строку в /etc/fstab:

echo ‘/swapfile none swap sw 0 0’ | sudo tee -a /etc/fstab

После этого можно быстро проверить корректность записи (без перезагрузки), перечитав таблицу монтирования:

sudo swapoff /swapfile
sudo swapon -a
swapon --show

Создание swap-раздела

Сначала необходимо определить диск и свободное место под будущий swap-раздел:

lsblk -f

Если раздел под swap уже существует (например, /dev/sda3), переходите к разметке swap. Если раздела нет, его нужно создать любым удобным инструментом разметки. В консольных окружениях чаще всего используют fdisk или parted. 

Пример с fdisk:

sudo cfdisk /dev/sda

Далее логика такая (на примере Ubuntu): 

  1. Выберите свободное место и нажмите New. 
  2. Создайте новый раздел нужного размера. 

  1. Перейдите в Type:

  1. Выберите Linux swap, чтобы указать тип раздела: 

  1. Сохраните изменения через Write, а потом выйдите через Quit.

После этого проверьте, что раздел появился:

lsblk -f

Теперь разметьте созданный раздел как swap (подставьте ваш раздел, например /dev/sda3):

sudo mkswap /dev/sda3

Включите swap-раздел:

sudo swapon /dev/sda3

Проверьте, что область подкачки активна:

swapon --show
free -h

Автоматическое подключение swap

Чтобы область подкачки была доступна системе после каждой перезагрузки, swap нужно автоматическое подключение. В Linux это делается через файл /etc/fstab, который описывает постоянные точки монтирования и системные ресурсы, включая swap.

Перед настройкой убедитесь, что swap уже создан и работает:

swapon --show

Если настраивается swap-раздел, надежнее всего прописывать его через UUID (так система не перепутает раздел при изменении порядка дисков). Узнайте UUID:

sudo blkid

Найдите строку нужного раздела (например, /dev/sda3) и скопируйте значение UUID. Затем откройте /etc/fstab любым редактором, например:

sudo nano /etc/fstab

Добавьте строку (UUID замените на свой):

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0

Если настраивается swap-файл, UUID не нужен – достаточно пути к файлу. Добавьте в /etc/fstab:

/swapfile none swap sw 0 0

После изменений важно проверить корректность конфигурации, не перезагружая систему. Для этого отключите текущий swap и включите все, что прописано в /etc/fstab:

sudo swapoff -a
sudo swapon -a

Проверьте результат:

swapon --show
free -h

Если swapon -a не включил swap, значит в /etc/fstab есть ошибка (опечатка в UUID, неверный путь к файлу, лишние пробелы). В таком случае исправьте запись и повторите проверку.

При необходимости можно управлять порядком использования swap с помощью приоритета. Для этого в строку /etc/fstab добавляют параметр pri=. Пример для swap-раздела:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw,pri=100 0 0

И пример для swap-файла:

/swapfile none swap sw,pri=50 0 0

Чем выше значение pri, тем раньше система будет использовать эту область подкачки при наличии нескольких источников swap.

Мониторинг использования swap

Мониторинг использования swap позволяет вовремя заметить нехватку оперативной памяти и понять, насколько активно система обращается к области подкачки. В Linux для этого есть как простые обзорные инструменты, так и средства более детального анализа.

Для быстрой оценки общего объема и текущего использования используйте:

free -h

Смотрите строку Swap: used показывает, сколько занято, free – сколько доступно. Если used не растет и система не испытывает задержек, это не обязательно проблема.

Чтобы увидеть активные swap-источники (файлы/разделы), их размер и приоритет, выполните:

swapon --show

Для наблюдения в реальном времени удобно использовать top или htop. В top информация о swap отображается в шапке:

top

Если нужен именно показатель активности подкачки, используйте vmstat. Он показывает скорость записи/чтения в swap:

vmstat 1

Ключевые столбцы:

  • si – сколько данных за интервал считано из swap в RAM;
  • so – сколько данных за интервал выгружено из RAM в swap.

Постоянные ненулевые значения si/so в течение длительного времени обычно означают, что системе не хватает оперативной памяти под текущую нагрузку.

Для более детальной статистики виртуальной памяти и подкачки по интервалам подойдет sar (если установлен пакет sysstat):

sar -W 1

Он также показывает интенсивность swap-in/swap-out, но в более удобном для анализа виде и с возможностью смотреть историю.

Отключение swap

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

Перед отключением важно понимать, что все данные, которые сейчас находятся в области подкачки, должны вернуться в оперативную память. Если там не хватит места, система может зависнуть, сильно тормозить или просто не позволит отключить подкачку.

Чтобы посмотреть, какие источники swap активны и сколько они занимают, используйте:

swapon --show
free -h

Отключить конкретный swap-файл или swap-раздел можно командой swapoff с указанием пути или устройства:

sudo swapoff /swapfile 

или

sudo swapoff /dev/sda3

Если нужно отключить все источники swap сразу, пропишите:

sudo swapoff -a

Проверьте, что подкачка действительно не используется:

swapon --show
free -h

Если swap должен оставаться отключенным после перезагрузки, нужно убрать или закомментировать соответствующую строку в /etc/fstab. Для swap-файла это обычно строка вида:

/swapfile none swap sw 0 0

Для swap-раздела – строка с UUID:

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0

Далее проверьте, что система не попытается включить swap автоматически:

sudo swapon -a
swapon --show

Если swap отключен корректно, команда swapon -a не активирует ни одного источника подкачки.

Заключение

Правильно организованный swap помогает системе работать стабильно, особенно когда памяти не хватает.

На что стоит обращать внимание на практике:

  • swap-файл удобен, если нужно быстро изменить размер или добавить подкачку;
  • swap-раздел подходит, если система спланирована заранее и конфигурация стабильна; 
  • важно не только проверять факт наличия swap, но и следить, как активно он используется;
  • отключать swap можно только при достаточном объеме свободной RAM;
  • все настройки лучше прописать в файле /etc/fstab, чтобы они сохранялись после перезагрузки.

Тогда swap перестанет быть аварийной мерой и станет полезным, предсказуемым инструментом, который работает на пользу системе.
 

Предыдущая статья
Как создать облачное хранилище
Следующая статья
Как установить DeepSeek на Linux