Raspberry Pi našumas: ZRAM pridėjimas ir branduolio parametrų keitimas

Prieš porą savaičių paskelbiau Pinebook Pro apžvalga. Kadangi „Raspberry Pi 4“ taip pat yra pagrįstas ARM, kai kurie ankstesniame straipsnyje minėti optimizavimai jam yra gana tinkami. Norėčiau pasidalinti šiomis gudrybėmis ir sužinoti, ar jaučiate tokius pat našumo patobulinimus.

Įdiegę Raspberry Pi savo namų serverio patalpa Pastebėjau, kad RAM trūkumo akimirkomis ji labai nereaguoja ir net užstojo. Norėdami išspręsti šią problemą, pridėjau ZRAM ir padariau keletą branduolio parametrų pakeitimų.

ZRAM aktyvinimas Raspberry Pi

Raspberry Pi našumas: ZRAM pridėjimas ir branduolio parametrų keitimas

ZRAM sukuria bloko saugyklą RAM pavadinimu /dev/zram0 (arba 1, 2, 3 ir tt). Ten parašyti puslapiai suglaudinami ir išsaugomi atmintyje. Tai leidžia labai greitai įvesti / išvesti ir taip pat atlaisvina atminties per suspaudimą.

Raspberry Pi 4 yra su 1, 2, 4 arba 8 GB RAM. Naudosiu 1 GB modelį, todėl koreguokite instrukcijas pagal savo modelį. Naudojant 1 GB ZRAM, numatytasis apsikeitimo failas (lėtas!) bus naudojamas rečiau. Aš naudojau šį scenarijų zram-swap montavimui ir automatiniam konfigūravimui.

Instrukcijos pateikiamos anksčiau pateiktoje saugykloje. Montavimas:

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

Jei norite redaguoti konfigūraciją:

vi /etc/default/zram-swap

Be to, įdiegę galite aktyvuoti ZRAM zram-tools. Jei naudojate šį metodą, būtinai redaguokite konfigūraciją faile /etc/default/zramswap, ir įdiekite apie 1 GB ZRAM:

sudo apt install zram-tools

Įdiegę galite peržiūrėti ZRAM saugojimo statistiką naudodami šią komandą:

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

Branduolio parametrų pridėjimas, kad būtų geriau naudojamas ZRAM

Dabar pataisykime sistemos elgseną, kai Raspberry Pi paskutinę akimirką persijungia į keitimą, o tai dažnai sukelia užšalimą. Pridėkime prie failo kelias eilutes /etc/sysctl.conf ir paleiskite iš naujo.

Šios eilutės 1) atidės neišvengiamą atminties išsekimą, padidina branduolio talpyklos spaudimą ir 2) jie anksčiau pradeda ruoštis atminties išsekimui, iš anksto inicijuojant keitimą. Tačiau daug efektyviau bus pakeisti suspaustą atmintį per ZRAM!

Čia yra eilutės, kurias reikia pridėti failo pabaigoje /etc/sysctl.conf:

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

Tada iš naujo paleidžiame sistemą arba suaktyviname pakeitimus naudodami šią komandą:

sudo sysctl --system

vm.vfs_cache_pressure=500 padidina talpyklos spaudimą, o tai padidina branduolio tendenciją atgauti atmintį, naudojamą katalogų ir objektų indeksavimui. Ilgesnį laiką naudosite mažiau atminties. Staigų našumo sumažėjimą paneigia ankstesnis apsikeitimas.

vm.pasikeitimas = 100 padidina parametrą, kaip agresyviai branduolys keis atminties puslapius, nes pirmiausia naudojame ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - foniniai procesai pradės įrašinėti iškart pasiekus 1 % ribą, tačiau sistema neprivers sinchroninio įvesties/išvesties, kol nepasieks 50 % purvino_santykio.

Šios keturios eilutės (kai naudojamos su ZRAM) padės pagerinti našumą, jei turite neišvengiamai RAM baigiasi ir prasideda perėjimas prie apsikeitimo, kaip ir mano. Žinant šį faktą, taip pat atsižvelgiant į atminties suspaudimą ZRAM tris kartus, geriau pradėti šį apsikeitimą iš anksto.

Spaudimas talpyklai padeda, nes mes iš esmės sakome branduoliui: „Ei, žiūrėk, aš neturiu papildomos atminties, kurią galėčiau naudoti talpyklai, todėl atsikratykite jos kuo greičiau ir išsaugokite tik dažniausiai naudojamą/svarbiausią informaciją. duomenis“.

Net ir sumažinus talpyklą, jei laikui bėgant didžioji dalis įdiegtos atminties bus užimta, branduolys pradės oportunistinį keitimąsi daug anksčiau, todėl CPU (glaudinimas) ir apsikeitimo įvestis/išvestis nelauks iki paskutinės minutės ir išnaudos visus išteklius vienu metu, kai Per vėlu. ZRAM suspaudimui naudoja nedaug procesoriaus, tačiau daugumoje sistemų, kuriose yra nedidelis atminties kiekis, jis turi daug mažesnį poveikį našumui nei apsikeitimas be ZRAM.

užbaigiant

Dar kartą pažiūrėkime į 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 ZRAM yra beveik vienas gigabaitas nesuspaustų duomenų. Viskas nuėjo į ZRAM ir niekas nenuėjo į daug lėtesnį puslapio failą. Išbandykite šiuos nustatymus patys, jie veikia visuose Raspberry Pi modeliuose. Mano netinkama naudoti, užšalimo sistema virto funkcionalia ir stabilia.

Netolimoje ateityje tikiuosi tęsti ir atnaujinti šį straipsnį su kai kuriais sistemos testavimo rezultatais prieš ir po ZRAM įdiegimo. Dabar tiesiog neturiu tam laiko. Tuo tarpu nedvejodami atlikite savo testus ir praneškite man komentaruose. Raspberry Pi 4 yra žvėris su šiais nustatymais. Mėgautis!

Šiuo klausimu:

Šaltinis: www.habr.com

Добавить комментарий