ZRAM

Настройка zRam в Arch/Manjaro Linux

Как-то в блоге я уже писал о том, как настроить zRam на Raspberry Pi 3. Что это такое и чем оно полезно, можно узнать на Википедии. В этом материале речь пойдёт о том, как настроить zRam в Arch Linux или его варианте для новичков — Manjaro Linux.

Простая установка и настройка с помощью ezzram из AUR

В AUR есть сценарий установки пакета ezzram, который представляет из себя python-скрипт с простым конфигурационным файлом и файлом сервиса для systemd. Устанавливается как обычно любым AUR-хелпером, например yay:

yay -Sa ezzram 

После установки нужно добавить а втозапуск и запустить сервис ezzram:

sudo systemctl enable ezzram.service && sudo systemctl start ezzram.service

Конфигурационный файл лежит по пути /etc/ezzram.conf. В нём всего три пораметра:

  • size — размер раздела zram в мегабайтах
  • algorithm — алгоритм сжатия данных в zram разделе
  • cores — количество используемых ядер ЦП

Алгоритм сжатия по-умолчанию является оптимальным для абсолютного большинства пользователей, размер zram разумно установить в пределах 30-50% от полного объёма ОЗУ, ну а в «cores» указываем количество физических ядер своего центрального процессора. После внесения изменений сохраняем файл и активируем новую конфигурацию перезапуском сервиса:

sudo systemctl restart ezzram.service

Ручная настройка с помощью zramctl

Для тех, кто любит делать всё «вручную».

Zramctl — это скрипт на bash, который поможет в создании и настройке разделов zRam. Установить его можно из AUR, пакет называется zramswap. С помощью yay это можно сделать так:

yay -Sa zramswap

Создание разделов, настройка и включение zRam

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

swapoff -a #Отключаем весь swap в системе
modprobe zram num_devices=1 #Загружаем модуль zram
zramctl -r /dev/zram* #Сбрасываем все (возможно) существующие виртуальные устройства zram
zramctl --find --size 512M #Создаем новое виртуальное устройство zram необходимого размера (в этом примере 512 МБ)
mkswap /dev/zram0 #создаём swap в устройстве
swapon -p 15 /dev/zram0 #Включаем zram как swap с приоритетом 15

Проверить включен ли zRam можно командой:

swapon -s

В ответ должны получить такой вывод:

Имя файла                               Тип             Размер  Исп-но  Приоритет
/dev/zram0                              partition       2097148 36608   15

Если так, то всё работает нормально и zRam в системе включен и настроен правильно.

Теперь можно сделать так, чтобы zRam автоматически включался и настраивался при запуске системы. Один из способов — использовать системный планировщик заданий cron. Т.к. по умолчанию в Arch Linux команды crontab -e, с помощью которой редактируются задачи cron нет, мы добавим её в систему установив пакет cronie.

sudo pacman -S cronie

Теперь привычным образом с помощью crontab создаём задачу cron, которая будет выполняться при каждой загрузке системы. Я редактирую конфиги с помощью nano, так что в моём случае команда редактирования crontab будет выглядеть так:

sudo EDITOR=nano crontab -e

Создаём задание cron, выполняющееся при загрузке системы путём вставки следующей строки:

@reboot swapoff -a && modprobe zram num_devices=1 && zramctl --find --size 2048M && mkswap /dev/zram0 && swapon -p 15 /dev/zram0

Не забываем изменить параметр «—size 2048M» на нужный Вам размер раздела zRam. Сохраняем изменения комбинацией клавиш CTRL+O и закрываем nano — CTRL+X.

Настройка закончена.