Performanca e Raspberry Pi: shtimi i ZRAM dhe ndryshimi i parametrave të kernelit

Para disa javësh postova Rishikimi i Pinebook Pro. Meqenëse Raspberry Pi 4 është gjithashtu i bazuar në ARM, disa nga optimizimet e përmendura në artikullin e mëparshëm janë mjaft të përshtatshme për të. Unë do të doja të ndaj këto truket dhe të shikoj nëse përjetoni të njëjtat përmirësime të performancës.

Pas instalimit të Raspberry Pi në tuaj dhoma e serverit në shtëpi Vura re që në momentet e mungesës së RAM-it, ai nuk reagonte dhe madje ngriu. Për të zgjidhur këtë problem, shtova ZRAM dhe bëra disa ndryshime në parametrat e kernelit.

Aktivizimi i ZRAM në Raspberry Pi

Performanca e Raspberry Pi: shtimi i ZRAM dhe ndryshimi i parametrave të kernelit

ZRAM krijon një bllok ruajtjeje në RAM me emrin /dev/zram0 (ose 1, 2, 3, etj.). Faqet e shkruara aty janë të ngjeshura dhe të ruajtura në memorie. Kjo mundëson hyrje/dalje shumë të shpejtë dhe gjithashtu çliron memorien përmes kompresimit.

Raspberry Pi 4 vjen me 1, 2, 4 ose 8 GB RAM. Unë do të përdor modelin 1 GB, kështu që ju lutemi rregulloni udhëzimet bazuar në modelin tuaj. Me 1 GB ZRAM, skedari i paracaktuar i shkëmbimit (i ngadalshëm!) do të përdoret më rrallë. Kam përdorur këtë skenar zram-swap për instalim dhe konfigurim automatik.

Udhëzimet jepen në depon e lidhur më sipër. Instalimi:

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

Nëse dëshironi të modifikoni konfigurimin:

vi /etc/default/zram-swap

Përveç kësaj, mund të aktivizoni ZRAM duke instaluar zram-tools. Nëse përdorni këtë metodë, sigurohuni që të modifikoni konfigurimin në dosje /etc/default/zramswap, dhe instaloni rreth 1 GB ZRAM:

sudo apt install zram-tools

Pas instalimit, mund të shikoni statistikat e ruajtjes së ZRAM me komandën e mëposhtme:

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

Shtimi i parametrave të kernelit për përdorim më të mirë të ZRAM

Tani le të rregullojmë sjelljen e sistemit kur Raspberry Pi kalon në shkëmbim në momentin e fundit, gjë që shpesh çon në ngrirje. Le të shtojmë disa rreshta në skedar /etc/sysctl.conf dhe rindizni.

Këto rreshta 1) do të vonojë rraskapitjen e pashmangshme të kujtesës, duke rritur presionin në cache të kernelit dhe 2) ata fillojnë të përgatiten për rraskapitjen e kujtesës më herët, duke filluar shkëmbimin paraprakisht. Por do të jetë shumë më efikase të ndërroni memorien e kompresuar përmes ZRAM!

Këtu janë rreshtat për të shtuar në fund të skedarit /etc/sysctl.conf:

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

Pastaj ne rindizni sistemin ose aktivizojmë ndryshimet me komandën e mëposhtme:

sudo sysctl --system

vm.vfs_cache_pressure=500 rrit presionin e cache-it, gjë që rrit tendencën e kernelit për të rimarrë memorien e përdorur për të ruajtur memorien e dosjeve dhe për të indeksuar objektet. Do të përdorni më pak memorie për një periudhë më të gjatë kohore. Rënia e mprehtë e performancës është mohuar nga shkëmbimi i mëparshëm.

vm. lumturi = 100 rrit parametrin se sa agresivisht do të shkëmbejë kerneli faqet e memories, pasi ne fillimisht po përdorim ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - proceset e sfondit do të fillojnë regjistrimin menjëherë pasi të arrijnë kufirin 1%, por sistemi nuk do të detyrojë hyrjen/daljen sinkrone derisa të arrijë raportin e ndotur prej 50%.

Këto katër rreshta (kur përdoren me ZRAM) do të ndihmojnë në përmirësimin e performancës nëse keni në mënyrë të pashmangshme RAM-i mbaron dhe fillon kalimi në shkëmbim, si i imi. Duke e ditur këtë fakt, dhe gjithashtu duke marrë parasysh kompresimin e kujtesës në ZRAM me tre herë, është më mirë të filloni këtë shkëmbim paraprakisht.

Vënia e presionit në cache ndihmon sepse ne në thelb po i themi kernelit: "Hej, shikoni, nuk kam ndonjë memorie shtesë për të përdorur për cache, kështu që ju lutemi hiqni qafe atë sa më shpejt dhe ruani vetëm ato që përdoren më shpesh/më të rëndësishmet. të dhëna."

Edhe me caching të reduktuar, nëse me kalimin e kohës pjesa më e madhe e memories së instaluar është e zënë, kerneli do të fillojë shkëmbimin oportunist shumë më herët, në mënyrë që CPU (kompresimi) dhe shkëmbimi I/O të mos presin deri në minutën e fundit dhe të përdorin të gjitha burimet menjëherë kur është shumë vonë. ZRAM përdor pak CPU për kompresim, por në shumicën e sistemeve me sasi të vogla memorie ka shumë më pak ndikim në performancë sesa ndërrimi pa ZRAM.

Në përfundim

Le të shohim sërish rezultatin:

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 në ZRAM është pothuajse një gigabajt të dhëna të pakompresuara. Gjithçka shkoi në ZRAM dhe asgjë nuk shkoi në skedarin e faqes shumë më të ngadaltë. Provoni vetë këto cilësime, ato funksionojnë në të gjitha modelet e Raspberry Pi. Sistemi im i papërdorshëm i ngrirjes është kthyer në një sistem funksional dhe të qëndrueshëm.

Në të ardhmen e afërt, shpresoj të vazhdoj dhe përditësoj këtë artikull me disa rezultate nga testimi i sistemit para dhe pas instalimit të ZRAM. Tani thjesht nuk kam kohë për këtë. Ndërkohë, mos ngurroni të bëni testet tuaja dhe më tregoni në komente. Raspberry Pi 4 është një bishë me këto cilësime. Kënaquni!

Mbi këtë temë:

Burimi: www.habr.com

Shto një koment