Ydeevne for Raspberry Pi: tilføj ZRAM og ændre kernelparametre

For et par uger siden offentliggjorde jeg en anmeldelse af Pinebook Pro. Da Raspberry Pi 4 også er baseret på ARM, passer nogle af de optimeringer, der blev nævnt i den forrige artikel, perfekt til den. Jeg vil gerne dele disse tricks og se, om du får de samme forbedringer i ydeevne.

Efter installation af Raspberry Pi i min hjemmeserver lagde jeg mærke til, at den blev meget ufølsom, og endda frøs, i perioder med lavt hukommelsesforbrug. For at løse dette problem tilføjede jeg ZRAM og foretog nogle ændringer i kernelparametrene.

Aktivering af ZRAM på Raspberry Pi

Ydeevne for Raspberry Pi: tilføj ZRAM og ændre kernelparametre

ZRAM opretter et bloklager i hukommelsen med navnet /dev/zram0 (eller 1, 2, 3 osv.). Sider, der skrives derind, komprimeres og gemmes i hukommelsen. Dette muliggør en hurtig ind- og udskrivning samt frigiver hukommelse ved hjælp af komprimering.

Raspberry Pi 4 leveres med 1, 2, 4 eller 8 GB hukommelse. Jeg vil bruge modellen med 1 GB, så juster vejledningen i henhold til din model. Med 1 GB vil den standard swapfil (langsom!) blive brugt sjældnere. Jeg brugte et sådant script zram-swap til installation og automatisk konfiguration.

Instruktionerne findes i depotet linket ovenfor. Installation:

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

Hvis du vil redigere konfigurationen:

vi /etc/default/zram-swap

Derudover kan ZRAM aktiveres ved at installere zram-tools. Hvis du bruger denne metode, skal du sørge for at redigere konfigurationen i filen /etc/default/zramswap, og angive cirka 1 GB ZRAM:

sudo apt install zram-tools

Efter installationen kan du se ZRAM-lagerstatistikken med følgende kommando:

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

Tilføj kernelparametre for bedre brug af ZRAM

Lad os nu forbedre systemets adfærd, når Raspberry Pi skifter til swap i sidste øjeblik, hvilket ofte fører til at den fryser. Vi tilføjer et par linjer i filen /etc/sysctl.conf og genstarter.

Disse linjer 1) udskyder den uundgåelige udtømning af hukommelse, hvilket øger presset på kernelcachen, og 2) begynder tidligere at forberede sig på udtømning af hukommelse, og initierer swap på forhånd. Men dette vil være en langt mere effektiv swap af komprimeret hukommelse via ZRAM!

Disse er linjer, der skal tilføjes i slutningen af filen /etc/sysctl.conf:

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

Derefter genstarter vi systemet eller aktiverer ændringerne med kommandoen:

sudo sysctl --system

vm.vfs_cache_pressure=500 øger trykket på cachen, hvilket gør, at kernen har en større tilbøjelighed til at genopdele hukommelse, der er brugt til caching af katalog- og indexobjekter. Du vil bruge mindre hukommelse over en længere periode. Det pludselige fald i ydeevne mindskes fra at bytte tidligere.

vm.swappiness=100 øger parameteren for, hvor aggressivt kernen vil bytte hukommelsessider, da vi først bruger ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 — baggrundsprocesserne vil begynde at skrive så snart grænsen på 1% er nået, men systemet vil ikke tvinge synkron ind- og uddata, før det når dirty_ratio på 50%.

Disse fire linjer (når de bruges med ZRAM) vil hjælpe med at forbedre ydeevnen, hvis du uundgåeligt løber tør for RAM, og overgangen til swap starter, som jeg gjorde. Vær klar over dette faktum, og med tanke på hukommelseskompression i ZRAM, er det tre gange bedre at starte denne swapping på forhånd.

Trykket på cachen hjælper, fordi vi faktisk siger til kernen: "Hej, lyt, jeg har ikke ekstra hukommelse til at bruge den til cachen, så venligst slip af med det hurtigere og behold kun de mest brugte/vigtige data."

Selv med reduceret caching, hvis størstedelen af den installerede hukommelse er optaget over tid, vil kernen begynde opportunistisk at bytte meget tidligere, så processoren (kompressionen) og swap I/O'en ikke vil vente til det sidste og udnytte alle ressourcer på én gang, når det allerede er for sent. ZRAM bruger lidt CPU til kompression, men i de fleste systemer med lav hukommelse påvirker det ydeevnen meget mindre end at bytte uden ZRAM.

Afslutningsvis

Lad os se resultatet endnu en gang:

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 i ZRAM svarer til næsten en gigabyte ukomprimerede data. Alt gik til ZRAM, og intet kom ind i den meget langsommere swapfil. Prøv disse indstillinger selv, de fungerer på alle modeller af Raspberry Pi. Mit ubrugelige system, der frøs, er blevet til et fungerende og stabilt system.

I den nærmeste fremtid håber jeg at fortsætte og opdatere denne artikel med nogle resultater fra test af systemet før og efter installation af ZRAM. Jeg har bare ikke tiden lige nu. Indtil da, tøv ikke med at udføre dine egne tests og lad mig vide i kommentarerne. Raspberry Pi 4 er virkelig en kraftfuld maskine med disse indstillinger. Nyd det!

Om emnet:

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster