Привет, %username%! Есть сервер на который при разворачивании не добавили SWAP раздел и это необходимо исправить. Все как всегда довольно просто.

SWAP - это пространство на диске, которое используется, когда объем физической оперативной памяти заполнен. Когда в системе Linux заканчивается RAM, неактивные страницы перемещаются из RAM в SWAP.

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

Описанное далее было протестировано на системах Linux с Ubuntu 18.04 и CentOS 7, но так же справделиво для любых других дистрибутивов Linux.

Добавляем swap-файл

Выполни следующие действия, чтобы добавить 1GB подкачки на сервер. Если хочешь добавить 2GB вместо 1GB, замените 1G на 2G.

Создай файл, который будет использоваться как swap

sudo fallocate -l 1G /swapfile

Если fallocate не установлен или получено сообщение об ошибке вроде такого: fallocate failed: Operation not supported, то имеет смысл воспользоваться другой командой для создания swap-файла:

sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576

Задай корректные права на swap-файл

Только пользователь root должен иметь права писать в swap-файл. Выполни следующее:

sudo chmod 600 /swapfile

Создание области подкачки

Используй утилиту mkswap для настройки файла в качестве области подкачки Linux:

sudo mkswap /swapfile

Включение SWAP

Для активации раздела подкачки выолни следующую команду:

sudo swapon /swapfile

Для автоматического подключения раздела подкачки после перезагрузки сервера необходимо включить его автоматическое монтирование в файле /etc/fstab:

/swapfile swap swap defaults 0 0

Проверка статуса SWAP-файла

Для проверки статуса раздела подкачки можно использовать следующие команды:

# Вот так
sudo swapon --show

NAME      TYPE  SIZE   USED PRIO
/swapfile file 1024M 507.4M   -1

# Или так
sudo free -h
         total   used   free   shared  buff/cache   available
Mem:      488M   158M    83M     2.3M        246M        217M
Swap:     1.0G   506M   517M

Как настроить значение vm.swappiness

vm.swappiness - это свойство ядра Linux, которое определяет, как скоро система начнет использовать SWAP-раздел. vm.swappiness может принимать значения от 0 до 100. Низкое значение заставит ядро более активно утилизировать оперативную память, в то время как боее высокое значение заставит ядро гораздо чаще обращаться к SWAP-разделу.

По умолчанию значение vm.swappiness равно 60 - это значит, что сброс данных в SWAP будет происходить при заполнении оперативной памяти свыше 40%, что в свою очередь может повлиять на производительность системы в целом и сервисов которые ею предоставляются. Посмотреть текущее значение можно следующим способом:

cat /proc/sys/vm/swappiness
# OUTPUT
60

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

sudo sysctl vm.swappiness=10

Чтобы значение не менялось после перезагрузки системы, необходимо в добавить этот параметр в файл /etc/sysctl.conf:

cat /etc/sysctl.conf
# OUTPUT
vm.swappiness=10

Для отключения SWAP-раздела

Если вам необходимо отключить раздел подкачки в Linux, то вам необходимо выполнить следующие шаги:

Деативировать swap:

sudo swapoff -v /swapfile

Удалить точку автоматического монтирования в системе /swapfile swap swap defaults 0 0 из файла /etc/fstab

Удалить собствено сам файлик:

sudo rm -f /swapfile

Finaly

Собственно всё =) Создание, политика изспользования и удаление файла SWAP делается довольно просто - думаю это видно из статьи.


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