For et par uger siden offentliggjorde jeg . 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 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

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 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.shHvis 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-toolsEfter 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=50Derefter genstarter vi systemet eller aktiverer ændringerne med kommandoen:
sudo sysctl --systemvm.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 5264448 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:
- (2017)
- (2020)
Kilde: habr.com
