Страницы

2015-03-12

Настройка zRam и swap на Ubuntu

Картинка взята от сюда habrahabr.ru/post/172137/
zRAM - модуль позволяет не пользоваться SWAP на HDD или на SSD
Однако zRAM хранит SWAP в RAM и сжимает до 3-х раз!

О zRam можно прочесть на википедии
    zRam — модуль ядра Linux (ранее известный как compcache). Он увеличивает производительность путем предотвращения подкачки страниц на диск, используя сжатое блочное устройство в оперативной памяти, пока не появится необходимость использовать файл подкачки на жёстком диске. Скорость обмена с оперативной памятью быстрее, чем с жёстким диском, следовательно zRam позволяет Linux производить большее число операций подкачки, особенно на старых компьютерах с малым объёмом оперативной памяти.

Весь смысл использовать zRAM а не дискового SWAP виден на слабых нетбуках или на виртуальных машинах DigitalOcean, Amazon EC2 и тд.

Ставим
sudo apt-get install -y zram-config

По дефолту zram-config создаёт количество устройств равное  количеству ядер процессора
Смотрим
sudo swapon -s

Пример ручной настройки
/sbin/modprobe zram num_devices=1
echo 1073741824 > /sys/block/zram0/disksize
/sbin/mkswap /dev/zram0
/sbin/swapon /dev/zram0 -p 10


num_devices - кол-во swap-разделов, обычно надо указывать равное кол-ву ядер процессора
1040646144 - размер swap-раздела в байтах
/dev/zram0 - путь до устройства, таких устройств может быть много, зависит от того что вы указали в num_devices 
swapon ... -p 10 - процент настраивается как и vm.swappiness

Параметр vm.swappiness указывает процент заполнения памяти до момента начала использования swap
По умолчанию это значение равно 60
sysctl vm.swappiness
vm.swappiness = 60

То есть когда заполение памяти превысит 40% нанёт использоваться swap
Менять это значение можно так
sysctl vm.swappiness=10

На самом деле это приоритеты а не % но для понимания сути проще оперировать процентами.

Или же указать в sysct.conf
sudo nano /etc/sysctl.conf
vm.swappiness = 10

Теперь swap не будет использоваться пока не будет заполнено 90% памяти

Внимание!!! 
Например такая СУБД как Oracle использует swap который должен быть RAM*2 не зависимо от количества памяти!!!
Посему, что бы не поймать ORA600 лучше тестировать всё прежде чем применять!!!


Использовал для написания статьи с ресурсов
habrahabr.ru/post/172137/
adw0rd.com/2014/11/24/zram-ubuntu/

Комментариев нет:

Отправить комментарий