Raspberry Pi-prestanda: lägga till ZRAM och ändra kärnparametrar

För ett par veckor sedan skrev jag Pinebook Pro recension. Eftersom Raspberry Pi 4 också är ARM-baserad, är några av de optimeringar som nämndes i föregående artikel ganska lämpliga för det. Jag skulle vilja dela med mig av dessa knep och se om du upplever samma prestandaförbättringar.

Efter att ha installerat Raspberry Pi i din serverrum hemma Jag märkte att i stunder av RAM-brist blev det väldigt okänsligt och till och med frös. För att lösa detta problem lade jag till ZRAM och gjorde några ändringar i kärnparametrarna.

Aktiverar ZRAM på Raspberry Pi

Raspberry Pi-prestanda: lägga till ZRAM och ändra kärnparametrar

ZRAM skapar en blocklagring i RAM som heter /dev/zram0 (eller 1, 2, 3, etc.). Sidorna som skrivs där komprimeras och lagras i minnet. Detta möjliggör mycket snabb I/O och frigör även minne genom komprimering.

Raspberry Pi 4 kommer med 1, 2, 4 eller 8 GB RAM. Jag kommer att använda 1GB-modellen, så justera instruktionerna baserat på din modell. Med 1 GB ZRAM kommer standardswapfilen (långsam!) att användas mindre ofta. Jag använde det här skriptet zram-byte för installation och automatisk konfiguration.

Instruktioner finns i arkivet som är länkat 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 den här metoden, se till att redigera konfigurationen i fil /etc/default/zramswap, och installera cirka 1 GB ZRAM:

sudo apt install zram-tools

Efter installationen kan du se ZRAM-lagringsstatistik 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ägger till kärnparametrar för bättre användning av ZRAM

Låt oss nu fixa systemets beteende när Raspberry Pi går över till att byta i sista stund, vilket ofta leder till att det fryser. Låt oss lägga till några rader i filen /etc/sysctl.conf och starta om.

Dessa rader 1) kommer att fördröja den oundvikliga utmattningen av minnet, öka trycket på kärncachen och 2) de börjar förbereda sig på minnesutmattning tidigare, initierar byte i förväg. Men det blir mycket effektivare att byta komprimerat minne genom ZRAM!

Här är raderna att lägga 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

Sedan startar vi om systemet eller aktiverar ändringarna med följande kommando:

sudo sysctl --system

vm.vfs_cache_pressure=500 ökar cachetrycket, vilket ökar kärnans tendens att återta minne som används för att cachelagra kataloger och indexera objekt. Du kommer att använda mindre minne under en längre tid. Den kraftiga nedgången i prestanda motverkas av tidigare byten.

vm.swappiness = 100 ökar parametern hur aggressivt kärnan kommer att byta minnessidor, eftersom vi först använder ZRAM.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - Bakgrundsprocesser börjar spela in omedelbart när gränsen på 1 % har nåtts, men systemet kommer inte att tvinga fram synkron I/O förrän den når dirty_ratio på 50 %.

Dessa fyra rader (när de används med ZRAM) hjälper till att förbättra prestandan om du har oundvikligen RAM-minnet tar slut och övergången till swap börjar, som min. Genom att känna till detta faktum, och även ta hänsyn till minneskomprimeringen i ZRAM tre gånger, är det bättre att starta detta byte i förväg.

Att sätta press på cachen hjälper eftersom vi i huvudsak säger till kärnan, "Hej, titta, jag har inget extra minne att använda för cachen, så snälla bli av med det ASAP och lagra bara det mest använda/viktigaste data."

Även med minskad cachning, om över tiden det mesta av det installerade minnet är upptaget, kommer kärnan att börja opportunistiskt byta mycket tidigare, så att CPU (komprimering) och swap I/O inte väntar till sista minuten och använder alla resurser på en gång när det är för sent. ZRAM använder lite CPU för komprimering, men på de flesta system med små mängder minne har det mycket mindre prestandapåverkan än att byta utan ZRAM.

Sammanfattningsvis

Låt oss titta 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 är nästan en gigabyte okomprimerad data. Allt gick till ZRAM och ingenting gick till den mycket långsammare sidfilen. Prova dessa inställningar själv, de fungerar på alla Raspberry Pi-modeller. Mitt oanvändbara, fryssystem har förvandlats till ett funktionellt och stabilt.

Inom en snar framtid hoppas jag kunna fortsätta och uppdatera den här artikeln med några resultat från att testa systemet före och efter installationen av ZRAM. Nu har jag helt enkelt inte tid med det här. Under tiden, kör gärna dina egna tester och låt mig veta i kommentarerna. Raspberry Pi 4 är ett odjur med dessa inställningar. Njut av!

På frågan:

Källa: will.com

Lägg en kommentar