Содержание
Как-то в блоге я уже писал о том, как настроить 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.
Настройка закончена.