Увеличение Своп файла (zram) на Armbian

Публикация 13.08.2019

Так уж случилось, что микрокомпьютеры зачастую используют для серьезных задач. Там где нужен выделенный сервер, может справиться плата за 10$. Но не без проблем.

Главная боль - это оператива. Если слабый процессор - это половина беды и можно подождать, то когда кончается оперативка все идет в разнос.

Пример - перенес проект из Yandex Облака на домашнюю сеть. В сети поставил Orange Pi Zero+, на нем запустил Docker. Под докером nodejs, redis, postgres. Само собой, оператива начала таять. Если на чистой системе на холостом ходу 40% свободной, то под клиентской нагрузкой уже 5%. Нагрузка на процессор стала резко расти, начались тормоза вплоть до ребутов.

К счастью есть файл подкачки. По дефолту он имеет размер половину от обьема оперативной памяти. Есть даже убеждение, что его нельзя увеличивать до значений больше размера оперативы, но на практике никаких проблем не возникало.

Изначальный конфиг 512 Мб ОЗУ, 256 мб Своп. Увеличим Своп до 1 Гб.

Своп хранится в файловой системе в виде файлов. Для оптимизации работы с ним его разбивают на отдельный части. В моей orange pi 4 файла по 64 Мб. Расширим их по 256 Мб каждый. Воспользуемся утилитой zramctl.

sudo su # все комманды можно выполнить только под рутом!

swapoff /dev/zram1
zramctl --reset /dev/zram1
zramctl --find --size 256M
mkswap /dev/zram1
swapon /dev/zram1 --priority 1

swapoff /dev/zram2
zramctl --reset /dev/zram2
zramctl --find --size 256M
mkswap /dev/zram2
swapon /dev/zram2 --priority 2

swapoff /dev/zram3
zramctl --reset /dev/zram3
zramctl --find --size 256M
mkswap /dev/zram3
swapon /dev/zram3 --priority 3

swapoff /dev/zram4
zramctl --reset /dev/zram4
zramctl --find --size 256M
mkswap /dev/zram4
swapon /dev/zram4 --priority 4

swapon -s # Отобразим список своп файлов

Результат:

Filename				Type		Size	Used	Priority
/dev/zram1                             	partition	262140	136	1
/dev/zram2                             	partition	262140	0	2
/dev/zram3                             	partition	262140	0	3
/dev/zram4                             	partition	262140	203232	4

Нужно помнить, что после перезагрузки значения ZRAM сбрасываются на дефолтные. Рекомендую прописать конфигурацию в автолоад.

* комментарии публикуются после модерации
10.12.2020 23:41
Здравствуйте!
Приобрёл OPi Zero LTS для маленького домашнего NAS-а. Установил ARMbian и также решил увеличить свап. Да, после перезагрузки настроенный свап снова становится по умолчанию. Прописал в fstab по UUID (UUID=***** none swap sw,pri=1 0 0) - всё равно сбрасывается в дефолт... Хотя при этом там же прописано монтирование RAID-а при запуске, и это работает. Может быть, надо прописать свап как-то по-другому?.. Подскажите, пожалуйста..