В прошлой статье мы включали ZRAM/ZSWAP на Debian. В этой статье разберемся с OpenWRT.
На роутере не стоит использовать SWAP раздел на внутреннем FLASH накопителе: у NOR FLASH сильные ограничения по скорости и ресурсу; у NAND FLASH — по ресурсу. На внешнем FLASH накопителе SWAP для роутера также не имеет смысла из-за ограничений USB: даже использование USB SSD по USB 3 на роутере не дадут минимально приемлемых для SWAP скоростей в 300-500 МБ/с. Соответственно, ZSWAP нам не подходит.
Поэтому установим ZRAM:

# opkg update
# opkg install zram-swap

Создался сервис zram, установился модуль ядра kmod-zram, модуль компрессии kmod-crypto-acompress и модуль алгоритма lzo kmod-lib-lzo. Суммарный объем ~ 200 КБ. По умолчанию ZRAM SWAP ограничен 50% ОЗУ и использует алгоритм lzo. Если на вашем роутере <= 32 МБ ОЗУ, то эти параметры оптимальны. Если ОЗУ больше — используйте lz4. Для этого установите библиотеку алгоритма:

# opkg install kmod-lib-lz4

Если OpenWRT установлен на компьютере с хорошим процессором (i5-i7 третьего-четвертого поколения или лучше) — используйте zstd. Для этого установите библиотеку алгоритма:

# opkg install kmod-lib-zstd

Для настройки ZRAM удобнее использовать Web интерфейс. На вкладке System > System появилась вкладка ZRam Settings:

Открываем и видим два параметра:

У меня на роутере 512 МБ ОЗУ, поэтому размер ZRAM устройства выставляю в 70% — с округлением в меньшую сторону это 320 МБ. 70% безопасно использовать при ОЗУ >= 128МБ. Алгоритм выбираю lz4 — для роутера это оптимальный вариант. Сохраняем изменения. В конфиге системы /etc/config/system видим появившиеся заданные параметры:

Но для их применения требуется перезапустить сервис ZRAM. Сделать это можно на вкладке сервисов System > Startup кнопкой Restart около ZRAM сервиса:

или из консоли:

# service zram restart

Предпочтительней из консоли, чтобы проверить отсутствие ошибок:

Проверяем результат:

$ free

ZRAM SWAP правильного размера появился и функционирует.


Вывод:
Если на вашем роутере <= 32 МБ ОЗУ — используйте ZRAM SWAP с 50% и lzo.
Если >= 64 МБ ОЗУ — 50% и lz4.
Если >= 128 МБ ОЗУ — 70% и lz4.
Для ПК с OpenWRT справедливы те же правила, но при наличии хорошего процессора используйте zstd.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

CAPTCHA ImageChange Image