Performanse Raspberry Pi: dodavanje ZRAM-a i promjena parametara jezgre

Prije nekoliko tjedana sam objavio Pinebook Pro recenzija. Budući da je Raspberry Pi 4 također temeljen na ARM-u, neke od optimizacija spomenutih u prethodnom članku sasvim su prikladne za njega. Želio bih podijeliti ove trikove i vidjeti imate li ista poboljšanja performansi.

Nakon što instalirate Raspberry Pi u svoj kućna poslužiteljska soba Primijetio sam da je u trenucima nedostatka RAM-a vrlo slabo reagirao, pa se čak i smrzavao. Kako bih riješio ovaj problem, dodao sam ZRAM i napravio nekoliko promjena u parametrima kernela.

Aktiviranje ZRAM-a na Raspberry Pi

Performanse Raspberry Pi: dodavanje ZRAM-a i promjena parametara jezgre

ZRAM stvara blok pohranu u RAM-u pod nazivom /dev/zram0 (ili 1, 2, 3, itd.). Stranice koje su ondje napisane komprimiraju se i pohranjuju u memoriju. To omogućuje vrlo brz I/O i također oslobađa memoriju putem kompresije.

Raspberry Pi 4 dolazi s 1, 2, 4 ili 8 GB RAM-a. Koristit ću model od 1 GB, stoga prilagodite upute prema svom modelu. S 1 GB ZRAM-a, zadana swap datoteka (spora!) koristit će se rjeđe. Koristio sam ovu skriptu zram-swap za instalaciju i automatsku konfiguraciju.

Upute se nalaze u repozitoriju na koji je povezana gore. Montaža:

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

Ako želite urediti konfiguraciju:

vi /etc/default/zram-swap

Osim toga, ZRAM možete aktivirati instaliranjem zram-tools. Ako koristite ovu metodu, svakako uredite konfiguraciju u spisu /etc/default/zramswap, i instalirajte oko 1 GB ZRAM-a:

sudo apt install zram-tools

Nakon instalacije možete vidjeti statistiku ZRAM pohrane sljedećom naredbom:

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

Dodavanje parametara jezgre za bolje korištenje ZRAM-a

Sada popravimo ponašanje sustava kada se Raspberry Pi u zadnji trenutak prebaci na swapping, što često dovodi do zamrzavanja. Dodajmo nekoliko redaka u datoteku /etc/sysctl.conf i ponovno pokrenite.

Ove linije 1) odgodit će neizbježno iscrpljivanje pamćenja, povećanje pritiska na predmemoriju kernela i 2) ranije se počinju pripremati za iscrpljenost pamćenja, pokrećući zamjenu unaprijed. Ali bit će puno učinkovitije zamijeniti komprimiranu memoriju kroz ZRAM!

Evo redaka koje treba dodati na kraj datoteke /etc/sysctl.conf:

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

Zatim ponovno pokrećemo sustav ili aktiviramo promjene sljedećom naredbom:

sudo sysctl --system

vm.vfs_cache_pressure=500 povećava pritisak u predmemoriju, što povećava tendenciju kernela da povrati memoriju koja se koristi za predmemoriju direktorija i indeksnih objekata. Dulje ćete koristiti manje memorije. Oštar pad performansi negiran je ranijom zamjenom.

vm.swappiness = 100 povećava parametar koliko će agresivno kernel mijenjati memorijske stranice, budući da prvo koristimo ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - pozadinski procesi će početi snimati odmah nakon dostizanja granice od 1%, ali sustav neće forsirati sinkroni I/O dok ne dosegne dirty_ratio od 50%.

Ova četiri retka (kada se koriste sa ZRAM-om) pomoći će poboljšati performanse ako ih imate neizbježno Ponestaje RAM-a i kreće prijelaz na swap, kao kod mene. Znajući ovu činjenicu, a također uzimajući u obzir kompresiju memorije u ZRAM-u tri puta, bolje je započeti ovu zamjenu unaprijed.

Pritisak na predmemoriju pomaže jer u biti govorimo kernelu: "Hej, gledaj, nemam dodatne memorije za predmemoriju, pa je se riješi što prije i pohranjuj samo najčešće korištene/važne podaci."

Čak i sa smanjenim predmemoriranjem, ako je tijekom vremena većina instalirane memorije zauzeta, kernel će započeti oportunističko mijenjanje puno ranije, tako da CPU (kompresija) i swap I/O neće čekati do posljednjeg trenutka i koristiti sve resurse odjednom kada prekasno je. ZRAM koristi malo CPU-a za kompresiju, ali na većini sustava s malom količinom memorije ima mnogo manji utjecaj na performanse nego swap bez ZRAM-a.

U zaključku

Pogledajmo ponovno rezultat:

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 u ZRAM-u je gotovo jedan gigabajt nekomprimiranih podataka. Sve je otišlo u ZRAM, a ništa nije otišlo u mnogo sporiju datoteku stranice. Isprobajte ove postavke sami, rade na svim Raspberry Pi modelima. Moj neupotrebljivi sustav za zamrzavanje pretvorio se u funkcionalan i stabilan.

Nadam se da ću u bliskoj budućnosti nastaviti i ažurirati ovaj članak s nekim rezultatima testiranja sustava prije i nakon instalacije ZRAM-a. Sada jednostavno nemam vremena za ovo. U međuvremenu, slobodno pokrenite vlastite testove i javite mi u komentarima. Raspberry Pi 4 je zvijer s ovim postavkama. Uživati!

Na temu:

Izvor: www.habr.com

Dodajte komentar