Před několika týdny jsem publikoval . 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é 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

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 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.shPokud 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-toolsPo 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=50Poté restartujeme systém nebo aktivujeme úpravy následujícím příkazem:
sudo sysctl --systemvm.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 5264448 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:
- (2017)
- (2020)
Zdroj: habr.com
