Данный способ хорошо поможет тем, у кого на компьютерах установлен небольшой объем оперативной памяти и возникают проблемы с производительностью и «отзывчивостью» операционной системы.
Начиная с версии ядра Linux 3.14 в стандартную поставку включен модуль zRam (ранее известный как compcache).
Как говорится в Википедии:
….увеличивает производительность путем предотвращения подкачки страниц на диск, используя сжатое блочное устройство в оперативной памяти, пока не появится необходимость использовать файл подкачки на жёстком диске. Скорость обмена с оперативной памятью быстрее, чем с жёстким диском, следовательно zRam позволяет Linux производить большее число операций подкачки, особенно на старых компьютерах с малым объёмом оперативной памяти.
zRam активно используется на Ubuntu Nexus 7, Android-устройствах, проектами CyanogenMod. Компания Google кроме Android использует zRam в своей операционной системе ChromeOS.
Использование zRam рекомендуется для нетбуков, старых компьютеров, виртуальных систем (н.р. на VPS от Amazon или DigitalOcean и других) или в различных встраиваемых системах.
Вообще способов применения zRam не ограничиваются только сжатием и уменьшением сбрасываемых в swap данных. Вообще zRam создает блочные устройства (аналог жесткого диска в оперативной памяти) в оперативной памяти. При этом, все данные попадающие в данные блочные устройства сжимаются. В общем, что вы поместите в эти блочные устройства зависит только от вас. Но в большинстве случаев этот модуль и эту технологию применяют именно для swap.
Приступим к настройке.
Исходные данные:
ОС: Ubuntu 14.04 LTE
Для активизации zRam достаточно установить пакет zram-config:
sudo apt-get install zram-config
После установки можно проверить работоспособность:
swapon -s
Если вы видите что-то похожее, то все нормально:
Так как разделы создаются в оперативной памяти, то я не советую вам изменять параметр vm.swappines (изменяется в файле /etc/sysctl.conf ), который часто рекомендуют выставить в значение 10 или вообще 0.
Swappines — это параметр, контролирующий тенденцию ядра перемещать процессы из физической памяти в swap-раздел. По умолчанию в Ubuntu выставлено значение 60, т.е. когда ваша система начинает задействовать более 40% оперативной памяти, то система начинает сбрасывать страницы в swap.
Другими словами. Если параметр vm.swappines выставлен в значение 0, то система не будет использовать swap до тех пор, пока не заполнится вся оперативная память. Если же значение выставлено в 100, то все процессы будут перемещаться в swap, что создаст сильную нагрузку на дисковую подсистему и будут проявляться явные задержки в работе самой ОС и приложений.
Как видно на скриншоте выше, при автоконфигурировании zRam система создала 4 раздела (столько сколько ядер в системе, т.к. операции в zRam однопоточные) и выделил на каждый раздел по 470 Мб (приблизительно), что составляет около 12% ОЗУ.
Если вас по каким-либо причинам не устраивает автоматическое создание zRam-разделов, то можно выполнить конфигурирование вручную.
/sbin/modprobe zram num_devices=4 echo 1073741824 > /sys/block/zram0/disksize echo 1073741824 > /sys/block/zram1/disksize echo 1073741824 > /sys/block/zram2/disksize echo 1073741824 > /sys/block/zram3/disksize /sbin/mkswap /dev/zram0 /sbin/mkswap /dev/zram1 /sbin/mkswap /dev/zram2 /sbin/mkswap /dev/zram3 /sbin/swapon /dev/zram0 -p 10 /sbin/swapon /dev/zram1 -p 10 /sbin/swapon /dev/zram2 -p 10 /sbin/swapon /dev/zram3 -p 10
Первая строка — определяем сколько разделов нужно создать. Обычно создают столько разделов, сколько ядер процессора. В моем случае это 4. Разделы нумеруются от 0. Поэтому номера создаваемых разделов: 0-3.
Строки 2-5, определяют какого размера (в байтах) должны быть zRam разделы. Я определи для всех равный объем (в данном случае 1Гб).
Строки 6-9, создают swap-раздел в созданных блочных устройствах.
Строки 10-11, активируют swap с приоритетом 10. Чем выше приоритет, тем раньше будет использоваться данный раздел. Для дискового swap желательно выставить приоритет значительно ниже чем у zRam разделов.
После всего этого проверяем результат с помощью команды swapon
swapon -s
На этом все, настройка закончена.
comments powered by HyperComments