Pred pár týždňami som publikoval . Keďže Raspberry Pi 4 je tiež založená na architektúre ARM, niektoré optimalizácie spomenuté v predchádzajúcom článku sú pre ňu vhodné. Chcel by som sa podeliť o tieto triky a zistiť, či sa u vás prejavia podobné zlepšenia výkonu.
Po nainštalovaní Raspberry Pi do svojho som si všimol, že v momentoch nedostatku operačnej pamäte sa stávala veľmi necitlivou a dokonca zamŕzala. Aby som tento problém vyriešil, pridal som ZRAM a vykonal niekoľko zmien v parametroch jadra.
Aktivácia ZRAM na Raspberry Pi

vytvára v operačnej pamäti blokové úložisko s názvom /dev/zram0 (alebo 1, 2, 3 atď.). Stránky zapisované tam sa komprimujú a uchovávajú v pamäti. To umožňuje veľmi rýchlu vstupno-výstupnú operáciu a tiež uvoľňuje pamäť kompresiou.
Raspberry Pi 4 je dodávaná s 1, 2, 4 alebo 8 GB operačnej pamäte. Ja budem používať model s 1 GB, preto si prispôsobte inštrukcie podľa svojej modelu. Pri 1 GB ZRAM sa predvolený swapovací súbor (pomalý!) bude používať menej často. Použil som tento skript na inštaláciu a automatické nastavenie.
Inštrukcie sú uvedené v repozitári na vyššie uvedenom odkaze. Inštalácia:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.shAk chcete upraviť konfiguráciu:
vi /etc/default/zram-swap Okrem toho môžete ZRAM aktivovať inštaláciou zram-tools. Ak používate tento spôsob, určite upravte konfiguráciu v súbore /etc/default/zramswap, a nastavte približne 1 GB ZRAM:
sudo apt install zram-toolsPo inštalácii môžete zobraziť štatistiku úložiska ZRAM nasledujúcou príkazom:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $Pridáme parametre jadra pre lepšie využitie ZRAM
Teraz opravíme správanie systému, keď Raspberry Pi prechádza na swap až v poslednej chvíli, čo často vedie k zamŕzaniu. Pridáme niekoľko riadkov do súboru /etc/sysctl.conf a reštartujeme.
Tieto riadky 1) odsunú nevyhnutný pokles pamäte, zvýšením tlaku na jadrový cache a 2) skôr začnú pripravovať na pokles pamäte, vopred iniciovaním swapovania. Ale to bude oveľa efektívnejšie swapovanie komprimovanej pamäte prostredníctvom ZRAM!
Tu sú riadky, ktoré treba pridať na koniec súboru /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50Potom reštartujeme systém alebo aktivujeme úpravy nasledujúcou príkazom:
sudo sysctl --systemvm.vfs_cache_pressure=500 zvyšuje tlak na cache, čo zvyšuje sklon jadra k rekultivácii pamäte používaného na cacheovanie objektov adresárov a indexov. Budete používať menej pamäte počas dlhšieho časového obdobia. Náhly pokles výkonu sa kompenzuje skôr swapovaním.
vm.swappiness=100 zvyšuje parameter, ako agresívne bude jadro swapovať stránky pamäte, keďže najprv používame ZRAM.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — pozadie procesy začnú zapisovať okamžite po dosiahnutí limitu 1%, ale systém nebude nútene vykonávať synchronný vstup-výstup, kým nedosiahneme dirty_ratio na 50%.
Tieto štyri riadky (v používaní so ZRAM) pomôžu zlepšiť výkon v prípade, ak máte nevyhnutne nedostatok operačnej pamäte a začne sa prechod na swap, ako u mňa. Keďže si som vedomý tejto skutočnosti a taktiež zohľadňujem kompresiu pamäte v ZRAM, je oveľa lepšie začať toto swapovanie skôr.
Tlak na cache pomáha, pretože vlastne hovoríme jadru: "Hej, počúvaj, nemám ďalšiu pamäť, aby som ju mohol používať na cache, preto ťa prosím, zbav sa jej čo najskôr a uchovávaj len najčastejšie používané/dôležité dáta".
Aj pri znížení cacheovania, ak časom bude väčšina nainštalovanej pamäte obsadená, jadro začne oportunistické swapovanie oveľa skôr, tak procesor (kompresia) a vstup/výstup swapovania nebudú čakať na poslednú chvíľu a zaťažovať všetky zdroje naraz, keď už bude príliš neskoro. ZRAM používa trochu CPU na kompresiu, ale v väčšine systémov s malým objemom pamäte to má oveľa menší dopad na výkon než swap bez ZRAM.
Na záver
Pozrime sa ešte raz na výsledok:
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 takmer jeden gigabajt nescompressovaných dát. Všetko sa dostalo do ZRAM a nič nešlo do oveľa pomalšieho swap súboru. Vyskúšajte si tieto nastavenia, fungujú na všetkých modeloch Raspberry Pi. Môj nefunkčný, zamrznutý systém sa stal funkčným a stabilným.
V najbližšej budúcnosti dúfam, že sa mi podarí pokračovať v aktualizácii tohto článku s niektorými výsledkami testovania systému pred a po inštalácii ZRAM. Teraz na to jednoducho nemám čas. A zatiaľ sa nebojte robiť vlastné testy a dajte mi vedieť v komentároch. Raspberry Pi 4 je s takýmito nastaveniami skutočne víťaz. Užite si to!
Na tému:
- (2017)
- (2020)
Zdroj: habr.com
