Výkon Raspberry Pi: pridanie ZRAM a zmena parametrov jadra

Pred pár týždňami som uverejnil príspevok Recenzia Pinebook Pro. Keďže Raspberry Pi 4 je tiež založený na ARM, niektoré optimalizácie spomenuté v predchádzajúcom článku sú preň celkom vhodné. Chcel by som sa podeliť o tieto triky a zistiť, či zaznamenáte rovnaké vylepšenia výkonu.

Po nainštalovaní Raspberry Pi do vášho domáca serverovňa Všimol som si, že vo chvíľach nedostatku pamäte RAM veľmi nereagoval a dokonca zamrzol. Na vyriešenie tohto problému som pridal ZRAM a urobil niekoľko zmien v parametroch jadra.

Aktivácia ZRAM na Raspberry Pi

Výkon Raspberry Pi: pridanie ZRAM a zmena parametrov jadra

ZRAM vytvorí blokové úložisko v RAM s názvom /dev/zram0 (alebo 1, 2, 3 atď.). Stránky tam zapísané sú komprimované a uložené v pamäti. To umožňuje veľmi rýchle I/O a tiež uvoľňuje pamäť pomocou kompresie.

Raspberry Pi 4 prichádza s 1, 2, 4 alebo 8 GB RAM. Budem používať 1 GB model, preto prosím upravte pokyny podľa vášho modelu. S 1 GB ZRAM sa predvolený odkladací súbor (pomaly!) bude používať menej často. Použil som tento skript zram-swap pre inštaláciu a automatickú konfiguráciu.

Pokyny sú uvedené vo vyššie uvedenom úložisku. Inštalácia:

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

Ak chcete upraviť konfiguráciu:

vi /etc/default/zram-swap

Okrem toho môžete aktivovať ZRAM inštaláciou zram-tools. Ak použijete túto metódu, nezabudnite upraviť konfiguráciu v súbore /etc/default/zramswapa nainštalujte približne 1 GB ZRAM:

sudo apt install zram-tools

Po inštalácii si môžete zobraziť štatistiky úložiska ZRAM pomocou nasledujúceho príkazu:

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

Pridanie parametrov jadra pre lepšie využitie ZRAM

Teraz poďme opraviť správanie systému, keď sa Raspberry Pi na poslednú chvíľu prepne na swapovanie, čo často vedie k zamrznutiu. Pridajme do súboru niekoľko riadkov /etc/sysctl.conf a reštartujte.

Tieto riadky 1) oddiali nevyhnutné vyčerpanie pamäte, zvýšenie tlaku na vyrovnávaciu pamäť jadra a 2) sa začínajú pripravovať na vyčerpanie pamäte skôr, čím sa swapovanie vopred spustí. Oveľa efektívnejšie však bude swapovať komprimovanú pamäť cez ZRAM!

Tu sú riadky, ktoré sa majú pridať na koniec súboru /etc/sysctl.conf:

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

Potom reštartujeme systém alebo aktivujeme zmeny nasledujúcim príkazom:

sudo sysctl --system

vm.vfs_cache_pressure=500 zvyšuje tlak vyrovnávacej pamäte, čo zvyšuje tendenciu jadra získavať späť pamäť používanú na vyrovnávanie adresárov a indexovanie objektov. Na dlhší čas spotrebujete menej pamäte. Prudký pokles výkonu neguje skoršia výmena.

vm.swappiness = 100 zvyšuje parameter, ako agresívne bude jadro vymieňať pamäťové stránky, keďže najskôr používame ZRAM.

vm.dirty_background_ratio=1 a vm.dirty_ratio=50 - procesy na pozadí začnú zaznamenávať okamžite po dosiahnutí 1% limitu, ale systém nevynúti synchrónne I/O, kým nedosiahne dirty_ratio 50%.

Tieto štyri riadky (pri použití so ZRAM) pomôžu zlepšiť výkon, ak máte nevyhnutne Pamäť RAM sa minie a začína prechod na swap, ako u mňa. S vedomím tejto skutočnosti a tiež vzhľadom na trojnásobnú kompresiu pamäte v ZRAM je lepšie začať túto výmenu vopred.

Vyvíjanie tlaku na vyrovnávaciu pamäť pomáha, pretože v podstate hovoríme jadru: „Hej, pozri, nemám žiadnu dodatočnú pamäť, ktorú by som mohol použiť pre vyrovnávaciu pamäť, takže sa jej zbavte čo najskôr a uložte len najčastejšie používané/dôležité údaje."

Dokonca aj pri zníženom ukladaní do vyrovnávacej pamäte, ak je časom väčšina nainštalovanej pamäte obsadená, jadro začne príležitostné swapovanie oveľa skôr, takže CPU (kompresia) a swapové I/O nebudú čakať na poslednú chvíľu a použijú všetky zdroje naraz, keď je príliš neskoro. ZRAM používa na kompresiu malý procesor, ale na väčšine systémov s malým množstvom pamäte má oveľa menší vplyv na výkon ako 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 5

264448 v ZRAM je takmer jeden gigabajt nekomprimovaných dát. Všetko išlo do ZRAM a nič nešlo do oveľa pomalšieho stránkovacieho súboru. Vyskúšajte tieto nastavenia sami, fungujú na všetkých modeloch Raspberry Pi. Môj nepoužiteľný, mraziaci systém sa zmenil na funkčný a stabilný.

Dúfam, že v blízkej budúcnosti budem pokračovať a aktualizovať tento článok o nejaké výsledky z testovania systému pred a po inštalácii ZRAM. Teraz na to jednoducho nemám čas. Medzitým si pokojne spustite vlastné testy a dajte mi vedieť v komentároch. Raspberry Pi 4 je s týmito nastaveniami beštia. Užite si to!

Na tému:

Zdroj: hab.com

Pridať komentár