Prestanda för Raspberry Pi: vi lÀgger till ZRAM och Àndrar kÀrninstÀllningarna

För ett par veckor sedan publicerade jag en recension av Pinebook Pro. 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 hemmaserver 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

Prestanda för Raspberry Pi: vi lÀgger till ZRAM och Àndrar kÀrninstÀllningarna

ZRAM 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 zram-swap 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.sh

Om 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-tools

Efter 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=50

DÀrefter startar vi om systemet eller aktiverar Àndringarna med följande kommando:

sudo sysctl --system

vm.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 5

264448 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:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster