======Swap в linux======
{{description>Создать Swap – раздел подкачки в linux}}
Swap – раздел подкачки в linux. Свап используется операционной системой при недостаточом количестве оперативной памяти. Т.е. вместо записи данных в оперативную память, если она практически вся заполнена, данные помещаются на жёсткий диск (свап-раздел). При этом производительность сервера как правило падает (по крайней мере если жёсткий диск не SSD) по причине того, что работа с оперативной памятью происходит гораздо быстрее записи/считывания с жёсткого диска, на котором и располагается файл подкачки (Swap).
\\
Чтобы проверить, настроен ли раздел подкачки
swapon -s
Для выключения swap в linux (Ubuntu) без перезагрузки системы нужно воспользоваться командой:
sudo swapoff -a
Дожидаемся выполнения команды swapoff. Затем включаем swap:
sudo swapon -a
Можно комбинировать команды, следующие команды выгрузят всё из свап, а затем снова сделают возможным использование свап, т.е. по сути освободят/очистят swap-раздел:
sudo swapoff -a && sudo swapon -a
Если при выключении swap sudo swapoff -a возникает ошибка: Невозможно выделить память, то проблему можно решить перезагрузкой.
Очистить (освободить) swap в linux
swapoff -a && swapon -a
sudo swapoff -a && sudo swapon -a
Узнать, используется ли swap
Команда
free -m
Также можно посмотреть сколько используется swap используя утилиты
top
или
htop.
Как добавить файл подкачки
Выполните следующие действия, чтобы добавить 1 ГБ свопа на ваш сервер. Если вы хотите добавить 2 ГБ вместо 1 ГБ, замените 1Gна 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файл и добавьте следующую строку:
/etc/fstab
/swapfile swap swap defaults 0 0
Чтобы убедиться, что своп активен, используйте команду илиswapon , как показано ниже:free
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. Низкое значение заставит ядро стараться избегать свопинга, когда это возможно, в то время как более высокое значение заставит ядро более агрессивно использовать пространство подкачки.
Значение подкачки по умолчанию равно 60. Вы можете проверить текущее значение подкачки, введя следующую команду:
cat /proc/sys/vm/swappiness
60
Хотя значение подкачки 60 подходит для большинства систем Linux, для рабочих серверов может потребоваться установить более низкое значение.
Например, чтобы установить значение swappiness равным 10, вы должны выполнить следующую sysctl команду:
sudo sysctl vm.swappiness=10
Чтобы сделать этот параметр постоянным при перезагрузке, добавьте в /etc/sysctl.confфайл следующую строку:
/etc/sysctl.conf
vm.swappiness=10
Оптимальное значение swappiness зависит от рабочей нагрузки вашей системы и от того, как используется память. Вы должны настроить этот параметр небольшими шагами, чтобы найти оптимальное значение.
Как удалить файл подкачки
Если по какой-либо причине вы хотите деактивировать и удалить файл подкачки, выполните следующие действия:
Сначала отключите своп, набрав:
sudo swapoff -v /swapfile
Удалите запись файла подкачки /swapfile swap swap defaults 0 0из /etc/fstabфайла.
Наконец, удалите фактический файл подкачки с помощью rm команды:
sudo rm /swapfile