Zram Raspbian 9

Настройка zram в Raspbian 9 на Raspberry Pi 3 Model B+

Одно­плат­ный ком­пью­тер-малют­ка Raspberry Pi 3 Model B+ у меня уже несколь­ко меся­цев, и справ­ля­ет­ся он с нуж­ны­ми мне зада­ча­ми без про­блем. ОЗУ у неё все­го 1 гига­байт, что даже для совре­мен­ных сред­неч­ков-смарт­фо­нов уже мало, и никак её физи­че­ски не уве­ли­чишь. За то про­грамм­но – лег­ко ☺️ Дан­ный пост – замет­ка пре­иму­ще­ствен­но для себя о том, как уве­ли­чить опе­ра­тив­ную память на Raspberry Pi 3, но писал­ся в надеж­де на то, что мно­гим вла­дель­цам мали­ны это тоже будет полез­но 😉 Будем запи­ли­вать Zram в Raspbian 9.

Что такое zram?

Zram – это тех­но­ло­гия, при кото­рой все дан­ные, не поме­ща­ю­щи­е­ся в опе­ра­тив­ной памя­ти (или не нуж­ные там в дан­ный момент) сбра­сы­ва­ют­ся в swap, кото­рый нахо­дит­ся в той же ОЗУ, но дан­ные кото­ро­го сжи­ма­ют­ся совре­мен­ны­ми алго­рит­мо­ми сжа­тия, тем самым умень­шая раз­мер дан­ных более, чем в 3 раза. Подроб­нее мож­но почи­тать здесь. Для мали­ны – то, что надо.

Установка и настройка zram в Raspbian

Кача­ем deb пакет по этой ссыл­ке: http://de.archive.ubuntu.com/ubuntu/pool/universe/z/zram-config/zram-config_0.5_all.deb и уста­нав­ли­ва­ем в систе­му:

wget http://de.archive.ubuntu.com/ubuntu/pool/universe/z/zram-config/zram-config_0.5_all.deb sudo dpkg -i zram-config_0.5_all.deb

Далее редак­ти­ру­ем файл /etc/rc.local. Добав­ля­ем перед стро­кой «exit 0» сле­ду­ю­щее стро­ки:

swapoff -a
modprobe zram num_devices=1
zramctl -r /dev/zram*
zramctl --find --size 512M 
mkswap /dev/zram0 
swapon -p 15 /dev/zram0 

Сохра­ня­ем и пере­за­гру­жа­ем Raspberry Pi.

Проверка работы

Что­бы убе­дить­ся, что zram в систе­ме рабо­та­ет, выпол­ня­ем коман­ду:

sudo zramctl

Если ответ будет такой, зна­чит zram рабо­та­ет:

NAME ALGORITHM DISKSIZE DATA COMPR TOTAL STREAMS MOUNTPOINT
/dev/zram0 lzo 512M 4K 76B 4K 4 [SWAP]

Создание и подключение zram при каждой загрузке системы

Созда­вать раз­дел Zram и мон­ти­ро­вать его вруч­ную после каж­дой пере­за­груз­ки не очень удоб­но. Созда­дим зада­ние cron, кото­рое будет делать это авто­ма­ти­че­ски при каж­дом запус­ке Raspberry Pi. Откры­ва­ем crontab:

sudo crontab -e

Добав­ля­ем стро­ку:

sudo su root -c "swapoff -a && modprobe zram num_devices=1 && zramctl -r /dev/zram* && zramctl --find --size 512M && mkswap /dev/zram0 && swapon -p 15 /dev/zram0"

Не забы­ва­ем поме­нять пара­метр –size на нуж­ный вам раз­мер вир­ту­аль­но­го раз­де­ла zram. Сохра­ня­ем изме­не­ния и закры­ва­ем crontab, для nano это ком­би­на­ции кла­вишь CTRL+O, CTRL+X. Об успеш­ном при­ме­не­нии зада­ний cron опо­ве­стит строч­ка в тер­ми­на­ле «crontab: installing new crontab». Теперь раз­дел zram будет авто­ма­ти­че­ски созда­вать­ся, настра­и­вать­ся и под­клю­чать­ся во вре­мя каж­дой загруз­ки систе­мы.