Как создать и настроить файл подкачки (swap) в Linux

Последнее обновление: 06 сентября 2024 г.

Файл подкачки (swap) — это область на диске, используемая для временного хранения данных, которые не помещаются в оперативную память (RAM). Когда оперативная память переполнена, система перемещает неактивные страницы памяти в swap, освобождая RAM для более приоритетных процессов. Это помогает предотвратить зависания системы, но доступ к данным на диске медленнее, чем к данным в RAM. Swap может быть реализован как отдельный раздел на диске или как файл.

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

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

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

sudo swapon --show

Если вывод пустой, значит, swap не активирован.

Также можно проверить общее использование памяти и swap с помощью команды:

free -h

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

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

df -h

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

Для создания swap-файла размером 4 ГБ выполните команду:



sudo fallocate -l 4G /swapfile

Если fallocate не поддерживается, вы можете использовать:



sudo dd if=/dev/zero of=/swapfile bs=1G count=4
Рекомендуется, чтобы размер swap был равен объему оперативной памяти (RAM) или в два раза больше для систем с малым объемом RAM. Например, если у вас 4 ГБ RAM, можно создать swap размером 4 ГБ или 8 ГБ.

Важно установить правильные права доступа к swap-файлу, чтобы только root мог его использовать:



sudo chmod 600 /swapfile

Теперь нужно инициализировать файл как swap:



sudo mkswap /swapfile

После инициализации активируйте swap-файл:



sudo swapon /swapfile

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



sudo swapon --show
free -h

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



/swapfile none swap sw 0 0

Изменение swap

Проверяем активный SWAP



# swapon --show

/swapfile file 256M   0B   -2

Видим, что у нас в /swapfile 256 МБ, а нам нужно 4 ГБ. Как уже писали ранее, проверяем, что на накопителе есть свободное место с помощью команды df -h. 

Далее выключаем имеющийся файл подкачки /swapfile:



swapoff /swapfile

Проверяем с помощью swapon --show. Важно, что при отключении SWAP не должен использоваться системой. В противном случае можно отключить некоторые сервисы, которые потребляют ОЗУ, и после увеличения SWAP включить их обратно.

Меняем размер файла подкачки уже знакомой командой:



dd if=/dev/zero of=/swapfile bs=1G count=4

Далее инструкция такая же, как и при добавлении SWAP, только в нашем случае /swapfile уже имеет правильные права. Просто проверим, что это так:



# ls -la /swapfile

-rw------- 1 root root 2147483648 Dec 18 20:24 /swapfile

Помечаем /swapfile как файл подкачки:



mkswap /swapfile

И активируем SWAP:



swapon /swapfile

Проверяем, что SWAP увеличился, а также проверяем файл /etc/fstab:



# swapon --show

# cat /etc/fstab

Удаление swap

Чтобы удалить swap-файл, сначала отключите его:



sudo swapoff /swapfile

Затем удалите файл:



sudo rm /swapfile

Удалите запись о SWAP в файле /etc/fstab

Полезные советы

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

Используйте команды free -h и top для мониторинга использования памяти и swap.

Оптимизация

Вы можете настроить параметр swappiness, который определяет, как часто система использует swap вместо RAM. Значение по умолчанию — 60. Чтобы изменить его, выполните:

sudo sysctl vm.swappiness=10

Чтобы сделать это изменение постоянным, добавьте строку vm.swappiness=10 в файл /etc/sysctl.conf.

Следуя этой инструкции, вы сможете эффективно управлять swap на вашем Linux-сервере!