Файл подкачки (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-файлу, чтобы только 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-сервере!