Подкачка — это пространство на диске, которое используется, когда объем физической оперативной памяти заполнен. Когда в системе Linux заканчивается ОЗУ, неактивные страницы перемещаются из ОЗУ в пространство подкачки.
Пространство подкачки может иметь форму выделенного раздела подкачки или файла подкачки. В большинстве случаев при запуске Linux на виртуальной машине раздел подкачки отсутствует, поэтому наш единственный вариант — создать файл подкачки.
Это руководство было протестировано на системах Linux с Ubuntu 18.04 и CentOS 7, но должно работать с любым другим дистрибутивом Linux.
Как добавить файл подкачки
Выполните следующие действия, чтобы добавить 1 ГБ подкачки на сервер. Если вы хотите добавить 2 ГБ вместо 1 ГБ, замените 1 1G
на 2 2G
.
- Создайте файл, который будет использоваться для обмена.
sudo fallocate -l 1G /swapfile
Если faillocate
не установлен или вы получаете сообщение об ошибке, говорящее о том, что fallocate failed: Operation not supported
, вы можете использовать следующую команду для создания файла подкачки:
sudo dd if=/dev/zero of=/swapfile bs=1024 count=1048576
- Установите правильные разрешения.
Только пользователь root должен иметь возможность записывать и читать файл подкачки. Чтобы установить правильный тип разрешений:
sudo chmod 600 /swapfile
- Настройте область подкачки.
Используйте утилиту mkswap
, чтобы установить файл в качестве области подкачки Linux:
sudo mkswap /swapfile
- Включить обмен.
Активируйте файл подкачки следующей командой:
sudo swapon /swapfile
Чтобы сделать изменение постоянным, откройте /etc/fstab
и добавьте следующую строку:
/swapfile swap swap defaults 0 0
- Проверьте статус обмена.
Чтобы убедиться, что своп активен, мы можем использовать команду free
или swapon
, как показано ниже:
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
Отрегулируйте значение swappiness
Подкачка — это свойство ядра Linux, которое определяет, как часто система будет использовать пространство подкачки. Swappiness может иметь значение от 0 до 100. Низкое значение заставит ядро стараться избегать свопинга, когда это возможно, в то время как более высокое значение заставит ядро более агрессивно использовать пространство подкачки.
Значение swappiness по умолчанию равно 60
. Вы можете проверить текущее значение swappiness, введя следующую команду:
cat /proc/sys/vm/swappiness
60
Хотя значение подкачки 60 подходит для большинства систем Linux, для рабочих серверов может потребоваться установить более низкое значение.
Например, чтобы установить значение swappiness равным 10, введите:
sudo sysctl vm.swappiness=10
Чтобы этот параметр сохранялся между перезагрузками, добавьте следующую строку в /etc/sysctl.conf
:
sudo nano /etc/sysctl.conf
vm.swappiness=10
Оптимальное значение подкачки зависит от рабочей нагрузки системы и от того, как используется память. Этот параметр необходимо регулировать с небольшими приращениями, чтобы найти оптимальное значение.
Как убрать своп
Если по какой-либо причине вы хотите отключить и удалить файл подкачки, выполните следующие действия:
Сначала отключите своп, набрав:
sudo swapoff -v /swapfile
Удалите запись файла подкачки /swapfile swap swap defaults 0 0
из /etc/fstab
.
Наконец, удалите фактический файл подкачки с помощью команды rm
:
sudo rm /swapfile
Вывод
Вы узнали, как создать файл подкачки, а также активировать и настроить пространство подкачки в вашей системе Linux.