MyTetra Share
Делитесь знаниями!
Настройка zRam в Linux
Время создания: 12.01.2021 20:56
Автор: alensav
Текстовые метки: Настройка zRam в Linux
Раздел: MyTetra - Ubuntu_Command
Запись: alensav/MyTetra2/main/base/1610474183tvtquwjn5g/text.html на raw.githubusercontent.com

Настройка zRam в Linux

Инструкции Обновлено: 30 апреля, 2020 10 admin

память , ускорение

Технология zRam ранее известная как compcache - реализована в виде модуля ядра Linux и позволяет сжимать содержимое оперативной памяти, и таким образом увеличивать ее объем в несколько раз. Работает это так: модуль zRam создает сжатое блочное устройство в ОЗУ которое чаще всего используется как swap или монтируется в tmp.

При этом степень сжатия данных получается в среднем 3:1. Это означает что на 1 гигабайт подкачки будет использовано в 333 мегабайт физической памяти. Сейчас оперативная память стоит не так уж дорого, но использование zRam вместо файла подкачки на диске может быть полезным для старых ноутбуков и компьютеров, а также для виртуализации. В этой статье мы рассмотрим как выполняется настройка zRam Linux на примере Ubuntu.

Содержание статьи:

  • Настройка zRam в Linux
    • Шаг 1. Модуль ядра
    • Шаг 2. Настройка Grub
    • Шаг 3. Скрипт запуска и остановки
    • Шаг 4. Тестирование zRam
    • Шаг 5. Настройка сервиса systemd
  • Выводы

Настройка zRam в Linux

Шаг 1. Модуль ядра

Это модуль ядра, а следовательно, важно, чтобы ваше ядро его поддерживало. zRam включен в стандартную поставку начиная с ядра версии 3.14. Вы можете посмотреть вашу версию ядра командой:

uname -r

Проверка информации о модуле ядра:

modinfo zram

Если у вас более старое ядро, вам придется забыть про эту технологию или пересобрать его с этой настройкой. Модуль включается здесь:

Device Drivers --->
[*] Block devices --->
<M> Compressed RAM block device support

Шаг 2. Настройка Grub

Когда модуль загружен надо установить параметр ядра zram.num_devices который указывает максимальное количество сжатых устройств. Например для двух блочных устройств используйте добавьте в переменную GRUB_CMDLINE_LINUX_DEFAULT следующий параметр:

sudo vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT=".... zram.num_devices=2"

Затем обновите конфигурацию Grub и перезагрузите компьютер:

sudo update-grub

Шаг 3. Скрипт запуска и остановки

Чтобы автоматизировать запуск zram желательно написать скрипт, который будет выполнять все необходимые действия. Давайте создадим скрипт, который запускает четыре zRam устройства и подключает их в качестве swap:

sudo vi /usr/local/bin/zram-start.sh

#!/bin/bash
modprobe zram num_devices=2
echo '1024M' > /sys/block/zram0/disksize
echo '1024M' > /sys/block/zram1/disksize
mkswap /dev/zram0
swapon /dev/zram0 -p 10
mkswap /dev/zram1
swapon /dev/zram1 -p 10

Рассмотрим подробнее что означают строчки скрипта. Первая строчка с modprobe активирует модуля ядра на два блочных устройства. Следующие две строчки устанавливают размер для этих устройств в 1 Гб. Размер устанавливается в мегабайтах. Затем, для каждого блочного устройства создаем файловую систему подкачки командой mkswap и активируем его с помощью команды swapon. Теперь создадим скрипт, который выгружает всё это и отключает zram:

sudo vi /usr/local/bin/zram-stop.sh

#!/bin/bash
swapoff /dev/zram0
swapoff /dev/zram1
echo 1 > /sys/block/zram0/reset
echo 1 > /sys/block/zram1/reset
sleep .5
modprobe -r zram

Обоим скриптам надо дать права на выполнение:

sudo chmod ugo+x /usr/local/bin/zram-start.sh
sudo chmod ugo+x /usr/local/bin/zram-stop.sh

Шаг 4. Тестирование zRam

Теперь надо всё протестировать. Запустите zRam выполнив скрипт запуска:

sudo /usr/local/bin/zram-start.sh

Теперь вы можете убедится, что количество подкачки увеличилось на 2 Гб:

free -h

Всё работает, теперь можно проверить работает ли скрипт отключения:

sudo /usr/local/bin/zram-stop.sh

Шаг 5. Настройка сервиса systemd

Чтобы запускать zram по умолчанию нужно создать для него юнит файл systemd. Создайте файл со следующим содержимым:

[Unit]
Description=zRAM block devices swapping
[Service]
Type=oneshot
ExecStart=/usr/local/bin/zram-start.sh
ExecStop=/usr/local/bin/zram-stop.sh
RemainAfterExit=yes
[Install]
sudo systemctl edit --full --force zram.service

WantedBy=multi-user.target

После этого выполните команду daemon-reload, чтобы перечитать конфигурацию systemd:

sudo systemctl daemon-reload

Запустите сервис systemd и добавьте его в автозагрузку:

sudo systemctl start zram
sudo systemctl enable zram

Выводы

В этой небольшой статье мы рассмотрели как включить zram ubuntu. Как видите, в современных версиях дистрибутива, где модуль уже включён в ядро в этом нет ничего сложного. А пользуетесь ли вы какими-либо технологиями сжатия памяти? Напишите в комментариях!

Похожие записи:

Как узнать оперативную память Linux


Так же в этом разделе:
 
MyTetra Share v.0.64
Яндекс индекс цитирования