Swap — место на жестком диске, используемое, когда объем физической оперативной памяти (ОЗУ/RAM) заполнен. Другими словами — это пространство подкачки. В GNU/Linux для подкачки может использоваться как раздел диска, так и файл. В данной статье я расскажу, как создать именно файл подкачки для Ubuntu. Это может быть полезным на сервере, работающем в виртуальной машине, где отсутствует раздел swap.

 

Создание файла подкачки

Дальнейшие команды должны выполняться в терминале.

Создадим файл размером 1 ГБ:

sudo fallocate -l 1G /swap

При необходимости можно заменить 1G на 2G.

Далее нужно задать права доступа на созданный файл /swap так, чтобы он был доступен только пользователю root:

sudo chmod 600 /swap

Форматируем файл для подкачки используя утилиту mkswap:

sudo mkswap /swap

Подключаем файл подкачки (активируем его):

sudo swapon /swap

Чтобы проверить — подключен ли файл можно выполнить команду:

swapon -s

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

free -h

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

sudo nano /etc/fstab

и добавим в конец строку:

/swap swap swap defaults 0 0

Настройка значения swappiness

Swappines — это свойство ядра, отвечающее за частоту использования файла подкачки. Оно определяет то, насколько агрессивно ядро будет обращаться к файлу. Задаваемый диапазон значения от нуля до ста. При низких значениях ядро будет реже обращаться к файлу, а при высоких, соответственно, чаще.

Если говорить подробнее, то значение swappiness определяет процент занятости оперативной памяти после которого будет использована подкачка. Но это не прямое указание на процент, а наоборот — нужно отнять от 100 значение swappiness, чтобы узнать порог процента занятости ОЗУ. Например, если установить значение swappiness равное 60, то нужно отнять от ста — шестьдесят (100-60), получится 40%.

По умолчанию значение swappines установлено на 60. Проверить текущее значение можно с помощью команды:

cat /proc/sys/vm/swappiness

Какое же значение выбрать? Для домашнего ПК, если используется быстрый жесткий диск или SSD, можно оставить значение по умолчанию, но для большей производительности лучше выбрать значение поменьше, например 20. Для сервера лучше сразу выбрать значение поменьше — 10.

Чтобы установить данное значение нужно выполнить команду:

sudo sysctl vm.swappiness=10

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

Откроем файл /etc/sysctl.conf с помощью редактора nano и допишем в конец строку vm.swappiness=10:

sudo nano /etc/sysctl.conf

Как удалить файл подкачки

Если тебе понадобится удалить файл swap, то следует выполнить действия обратные тем, что были описаны выше в статье:

  1. Деактивировать swap: sudo swapoff -v /swap
  2. Удалить из файла /etc/fstab строку /swap swap swap defaults 0 0
  3. Удалить сам созданный файл: sudo rm /swap