24 ноября 2014 г. SSD zRAM Ubuntu Linux

Ubuntu. Установка и настройка zRAM

Сегодня, оставлю тут короткую заметку о zRAM, этот модуль позволяет избавится от медленного SWAP на диске или, например, на SSD не желательно использовать SWAP, т.к. это порождает большое количество записи на диск. Однако zRAM не хранит SWAP на самом диске, он хранит их в RAM и сжимает данные до 3-х раз, в этом и есть профит!

Вот что говорит об этом модуле Википедия:

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

Хотя стоимость оперативной памяти сейчас относительно низкая, zRam всё же позволяет получить преимущества на ноутбуках, «слабых» компьютерах, при виртуализации и во встраиваемых системах, использующих флеш-память, которая имеет ограниченное количество циклов перезаписи.

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

Установка zram-config

Попробуйте сначала так:

sudo apt-get install -y zram-config

Если не ругается, то у вас уже есть SWAP в виде zRAM. Ну а если выругается, то надо поставить "linux-image-generic" и перезагрузится, после чего снова попробовать поставить "zram-config":

sudo apt-get install -y linux-image-generic
reboot
... sudo apt-get install -y zram-config
В новых версиях пакета создается сервис-файл для systemd, надо будет запустить сервис вручную:
systemctl start zram-config
После перезагрузки всё запустится уже самостоятельно.

zram-config расчитает кол-во ядер процессора и поставит столько же устройств, можно проверить так:

sudo swapon -s

Ручная установка

Если вам не нравится какой размер SWAP-разделов сделал zram-config, то можете сами создать нужные:

/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 - приоритет, чем больше тем раньше будет использоваться указанный раздел.

После чего проверяете ваши swap-разделы:

sudo swapon -s

Собственно все, дайте новых сил вашим слабым компьютерам на Linux!

Рекомендую почитать

Комментарии

Спасибо, как раз для ноута с SSD

"swapon ... -p 10 - приоритет..."

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

Отлично. У меня хоть и не древний ноут, но результат заметен, когда несколько браузеров открыто со множеством вкладок.

Согласен с Денисом, сразу после установке Ubuntu меняю значение в swappiness на 10, ну а Zram в основном можно использовать для кеша Chromium, Firefox.

Денис, да нет же!

  -p, --priority priority
          Specify the priority of the swap device.  priority  is  a  value
          between  0  and  32767. Higher numbers indicate higher priority.
          See swapon(2) for a full desсription  of  swap  priorities.  Add
          pri=value  to the option field of /etc/fstab for use with swapon
          -a.

более широкое использование zram:
http://vixdevelop.blogspot.ru/2016/09/zraid.html

Помогите пожалуйста! Не получается изменить размер тома.
root@mkpc:/sys/block# /sbin/modprobe zram num_devices=1
root@mkpc:/sys/block# echo 536870912 > /sys/block/zram0/disksize
bash: echo: ошибка записи: Устройство или ресурс занято
root@mkpc:/sys/block# /sbin/mkswap /dev/zram0
mkswap: /dev/zram0: предупреждение: очистка старой сигнатуры swap.
Setting up swapspace version 1, size = 997.5 MiB (1045913600 bytes)
без метки, UUID=ec591a14-097f-45c7-9302-32224660453b
root@mkpc:/sys/block# /sbin/swapon /dev/zram0 -p 10
root@mkpc:/sys/block#

Для изменения размера необходимо выгрузить модуль полностью, и задать размер снова. В вашем случае есть подозрение на то что модуль занят, необходимо создать временный своп на раздел или что то иное, например какойнибудь файл образа, после этого вы сможете заново поменять или настроить своп. Да и не забывайте, что пересоздании раздела подкачки меняется его уникальный идентификатор UUID, который указан у вас в fstab

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

Markdown