Управление своппированием
swappiness
swap
Управление своппированием
Прежде всего надо посмотреть подробности о swap.
cat /proc/swaps
# cat /proc/swaps
Filename Type Size Used Priority
/dev/dm-2 partition 96927740 23506276 -1
или
free -m
# free -m
total used free shared buffers cached
Mem: 386723 346181 40542 13 175 957
-/+ buffers/cache: 345048 41675
Swap: 23383 23383 0
Здесь видно, что 23Gb используется под своппирование, хотя есть 40Gb свободной RAM.
Это могло произойти в том случае, если была пиковая загрузка.
Например, на хост-системе были временно запущены несколько мощных ВМ, которые заняли все свободную RAM, и, тем самым, спровоцировали
переход на своппирование. Затем эти ВМ были удалены, но swap так и остался задействованным.
Это негативно сказывается на производительности работы сервера, т.к. повышает нагрузку на дисковую подсистему хоста.
Чтобы исправить ситуацию, надо paпоследовательно выполнить две операции -
- swapoff /dev/dm-2) выключить своп - при этом все выгруженные из RAM данные вернутся с диска обратно в оперативную память. Делаем командой: swapoff -a (или конкретно по устройству:
- включить своп обратно командой swapon.
Это целесообразно делать только в том случае, если объем свободной RAM больше, чем объем своп-области.
В параметрах ядра есть параметр vm.swappiness, который определяет границу перехода из ОЗУ в дисковый своп.
Он измеряется в процентах. В Ubuntu 14.04 LTS этот параметр имеет дефолтное значение 60.
Это означает, что, как только остается менее 40% свободной оперативной памяти, будет активирован режим своппинга и новые данные начнут перемещаться сразу на дискwa.
vm.swappiness | Описание |
---|---|
0 | ядро будет использовать файл подкачки только в том случае, если значение свободной RAM будет меньше указанного в параметре vm.min_free_kbytes. |
1 | минимальное использование файла подкачки без его отключения |
10 | увеличение производительности при наличии достаточного объема RAM |
60 | значение по умолчанию |
100 | интенсивное использование файла подкачки - не рекомендуется |
В нашем случае лучше изменить параметр vm.swappiness до 10.
Делаем это командой:
Чтобы этот параметр ядра сохранился и после перезагрузки системы, надо добавить этот параметр в файл /etc/sysctl.conf
Добавим строку в конец файла:
aizaro@mail.ru 22.05.2018