Výkon Raspberry Pi: přidáme ZRAM a měníme parametry jádra

Před několika týdny jsem publikoval přehled Pinebook Pro. Protože Raspberry Pi 4 je také založená na ARM, některé z optimalizací zmíněných v předchozím článku jí úplně vyhovují. Rád bych se podělil o tyto tipy a zjistil, zda se u vás projeví podobná zlepšení výkonu.

Po instalaci Raspberry Pi do mé domácí serverovny jsem si všiml, že v momentech nedostatku operační paměti se stala velmi nevyzpytatelnou a dokonce zamrzala. Abych tento problém vyřešil, přidal jsem ZRAM a provedl několik změn v nastavení jádra.

Aktivace ZRAM na Raspberry Pi

Výkon Raspberry Pi: přidáme ZRAM a měníme parametry jádra

ZRAM vytváří v operační paměti blokové úložiště pojmenováno /dev/zram0 (nebo 1, 2, 3 atd.). Stránky zapsané sem jsou komprimovány a uchovávány v paměti. To umožňuje velmi rychlý vstup-výstup a také uvolňuje paměť díky kompresi.

Raspberry Pi 4 je dodávaná s 1, 2, 4 nebo 8 GB operační paměti. Použiji model s 1 GB, proto si přizpůsobte návod podle svého modelu. S 1 GB bude výchozí swapový soubor (pomalý!) používán méně často. Použil jsem tento skript zram-swap pro instalaci a automatizované nastavení.

Pokyny najdete v repozitáři na odkazu výše. Instalace:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

Pokud chcete upravit konfiguraci:

vi /etc/default/zram-swap

Kromě toho lze ZRAM aktivovat instalací zram-tools. Pokud používáte tuto metodu, nezapomeňte upravit konfiguraci v souboru /etc/default/zramswap, a nastavte přibližně 1 GB ZRAM:

sudo apt install zram-tools

Po instalaci můžete zobrazit statistiky úložiště ZRAM následujícím příkazem:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

Přidáváme parametry jádra pro lepší využití ZRAM

Teď opravíme chování systému, když Raspberry Pi přechází na swap v posledním momentě, což často vede k zamrzání. Přidáme několik řádků do souboru /etc/sysctl.conf a restartujeme.

Tyto řádky 1) odloží nevyhnutelné vyčerpání paměti, zvýšením tlaku na paměťovou cache jádra a 2) dříve začnou připravovat vyčerpání paměti, předem iniciováním swapu. Ale to bude mnohem efektivnější swap komprimované paměti přes ZRAM!

Zde jsou řádky, které je třeba přidat na konec souboru /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

Poté restartujeme systém nebo aktivujeme úpravy následujícím příkazem:

sudo sysctl --system

vm.vfs_cache_pressure=500 zvyšuje tlak na cache, což zvyšuje tendenci jádra k rekultivaci paměti používané pro cachování objektů adresářů a indexů. Budete používat méně paměti po delší dobu. Náhlý pokles výkonu se kompenzuje dřívějším swappováním.

vm.swappiness=100 zvyšuje parametr, jak agresivně jádro bude swappovat stránky paměti, protože nejprve používáme ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — pozadí procesy začnou zapisovat hned při dosažení limitu 1%, ale systém nebude nuceně provádět synchronní vstup/výstup, dokud nedosáhne dirty_ratio 50%.

Tyto čtyři řádky (použité se ZRAM) pomohou zlepšit výkon, pokud máte nevyhnutelně nedostatek operační paměti a začíná přechod na swap, jako u mě. S vědomím této skutečnosti a také se zohledněním trojnásobného zhutnění paměti v ZRAM je lepší začít s tímto swappováním dříve.

Tlak na cache pomáhá, protože vlastně říkáme jádru: „Hele, nemám žádnou další paměť, kterou bych použil na cache, takže se prosím co nejdříve zbav toho, a uchovej pouze nejčastěji používaná/nejdůležitější data.“

I když se sníží cachování, pokud s časem bude většina dostupné paměti obsazena, jádro začne oportunisticky swapovat mnohem dříve, takže procesor (zhutnění) a vstup/výstup swapování nebudou čekat na poslední chvíli a zapojí všechny zdroje najednou, když už bude příliš pozdě. ZRAM používá trochu CPU na zhutnění, ale ve většině systémů s malým objemem paměti to má mnohem menší vliv na výkon než swap bez ZRAM.

Na závěr

Podívejme se ještě jednou na výsledek:

pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi

pi@raspberrypi:~ $ sudo cat /proc/swaps 
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5

264448 v ZRAM — to je téměř jeden gigabyte neskomprimovaných dat. Všechno šlo do ZRAM a nic se nedostalo do mnohem pomalejšího swapovacího souboru. Vyzkoušejte si tato nastavení, fungují na všech modelech Raspberry Pi. Můj nefunkční a zamrzající systém se stal funkčním a stabilním.

V blízké budoucnosti doufám, že se mi podaří pokračovat a aktualizovat tento článek s některými výsledky testování systému před a po instalaci ZRAM. Teď na to prostě nemám čas. Zatím neváhejte provádět své vlastní testy a dejte vědět v komentářích. Raspberry Pi 4 je prostě zvíře s takovými nastaveními. Užijte si to!

K tématu:

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster