För ett par veckor sedan publicerade jag . Eftersom Raspberry Pi 4 ocksÄ Àr baserad pÄ ARM, passar vissa av de optimeringar som nÀmndes i den tidigare artikeln alldeles utmÀrkt för den. Jag skulle vilja dela med mig av dessa knep och se om ni upplever liknande förbÀttringar i prestanda.
Efter att ha installerat Raspberry Pi i min mÀrkte jag att den blev mycket oresponsiv och till och med frös under perioder av brist pÄ RAM. För att lösa detta problem la jag till ZRAM och gjorde nÄgra Àndringar i kÀrninstÀllningarna.
Aktivering av ZRAM pÄ Raspberry Pi

skapar ett block-lagringsutrymme i RAM-minnet som heter /dev/zram0 (eller 1, 2, 3 etc.). Sidor som skrivs dit komprimeras och sparas i minnet. Detta möjliggör mycket snabb in/ut-lÀsning och frigör minne genom komprimering.
Raspberry Pi 4 levereras med 1, 2, 4 eller 8 GB RAM. Jag kommer att anvÀnda modellen med 1 GB, sÄ justera instruktionerna beroende pÄ din modell. Med 1 GB kommer ZRAMs standardvÀxlingsfil (som Àr lÄngsam!) att anvÀndas mer sÀllan. Jag anvÀnde ett sÄdant skript för att installera och automatiskt konfigurera.
Instruktionerna finns i repot via lÀnken ovan. Installation:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.shOm du vill redigera konfigurationen:
vi /etc/default/zram-swap Dessutom kan du aktivera ZRAM genom att installera zram-tools. Om du anvÀnder denna metod, se till att redigera konfigurationen i filen /etc/default/zramswap, och stÀll in cirka 1 GB ZRAM:
sudo apt install zram-toolsEfter installationen kan du visa statistiken för ZRAM-lagringen med följande kommando:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $LÀgg till kÀrnparametrar för bÀttre anvÀndning av ZRAM
Nu ska vi rÀtta till systemets beteende nÀr Raspberry Pi vÀxlar till vÀxling i sista minuten, vilket ofta leder till fryskador. LÄt oss lÀgga till nÄgra rader i filen /etc/sysctl.conf och starta om.
Dessa rader 1) kommer att skjuta upp den oundvikliga minnesbristen, vilket ökar trycket pÄ kÀrncacheminnet, och 2) börjar tidigare att förbereda sig för minnesbristen, genom att pÄ förhand initiera vÀxlingen. Men detta kommer att vara en mycket mer effektiv vÀxling med komprimerat minne via ZRAM!
HÀr Àr de rader som ska lÀggas till i slutet av filen /etc/sysctl.conf:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50DÀrefter startar vi om systemet eller aktiverar Àndringarna med följande kommando:
sudo sysctl --systemvm.vfs_cache_pressure=500 ökar trycket pÄ cachen, vilket ökar kÀrnans benÀgenhet att Ätervinna minnet som anvÀnds för att cachelagra katalog- och indexobjekt. Du kommer att anvÀnda mindre minne under en lÀngre tidsperiod. Det skarpa prestandafallet motverkas genom att tidigare svapa.
vm.swappiness=100 ökar parametern för hur aggressivt kÀrnan kommer att svapa minnessidor, eftersom vi först anvÀnder ZRAM.
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 â bakgrundsprocesser börjar skriva omedelbart nĂ€r de nĂ„r grĂ€nsen pĂ„ 1%, men systemet tvingar inte synkront in- och utdata förrĂ€n det nĂ„r dirty_ratio pĂ„ 50%.
Dessa fyra rader (nÀr de anvÀnds med ZRAM) kommer att bidra till att förbÀttra prestanda om du har oundvikligen slut pÄ RAM-minnet och börjar svapa, som jag gör. Medveten om detta faktum och med tanke pÄ att minneskomprimeringen i ZRAM fungerar tre gÄnger bÀttre, Àr det bra att börja denna svapning i förvÀg.
Trycket pÄ cachen hjÀlper eftersom vi faktiskt sÀger till kÀrnan: "Hej, lyssna, jag har inget extra minne att anvÀnda för cache, sÄ snÀlla, bli av med det sÄ snart som möjligt och behÄll bara de mest anvÀnda/viktiga data."
Ăven med minskat cachelagring, om större delen av det installerade minnet Ă€r upptaget över tid, kommer kĂ€rnan att börja opportunistisk svap lĂ„ngt tidigare, sĂ„ att processorn (komprimering) och swap-in/ut inte drar ut pĂ„ det till sista minuten och anvĂ€nder alla resurser pĂ„ en gĂ„ng nĂ€r det redan Ă€r för sent. ZRAM anvĂ€nder lite CPU för komprimering, men i de flesta system med liten mĂ€ngd minne pĂ„verkar det prestandan mycket mindre Ă€n svap utan ZRAM.
Avslutningsvis
LÄt oss ta en titt pÄ resultatet igen:
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 â det Ă€r nĂ€stan en gigabyte okomprimerade data. Allt gick till ZRAM och ingenting nĂ„dde den mycket lĂ„ngsammare swap-filen. Prova dessa instĂ€llningar sjĂ€lva, de fungerar pĂ„ alla modeller av Raspberry Pi. Jag gick frĂ„n ett segt, hĂ€ngande system till ett funktionellt och stabilt.
I hope to continue and update this article with some test results from the system before and after installing ZRAM in the near future. Right now, I simply don't have the time for it. In the meantime, feel free to conduct your own tests and let me know in the comments. The Raspberry Pi 4 is a beast with these settings. Enjoy!
PÄ Àmnet:
- (2017)
- (2020)
KĂ€lla: habr.com
