Raspberry Pi ydeevne: tilføjelse af ZRAM og ændring af kerneparametre

For et par uger siden skrev jeg Pinebook Pro anmeldelse. Da Raspberry Pi 4 også er ARM-baseret, er nogle af de optimeringer, der er nævnt i den forrige artikel, ganske velegnede til det. Jeg vil gerne dele disse tricks og se, om du oplever de samme præstationsforbedringer.

Efter installation af Raspberry Pi i din hjemme serverrum Jeg bemærkede, at den i øjeblikke med mangel på RAM blev meget ufølsom og endda frøs. For at løse dette problem tilføjede jeg ZRAM og lavede et par ændringer i kerneparametrene.

Aktivering af ZRAM på Raspberry Pi

Raspberry Pi ydeevne: tilføjelse af ZRAM og ændring af kerneparametre

ZRAM opretter et bloklager i RAM ved navn /dev/zram0 (eller 1, 2, 3 osv.). Siderne skrevet der komprimeres og gemmes i hukommelsen. Dette giver mulighed for meget hurtig I/O og frigør også hukommelse gennem komprimering.

Raspberry Pi 4 kommer med 1, 2, 4 eller 8 GB RAM. Jeg vil bruge 1GB-modellen, så juster venligst instruktionerne baseret på din model. Med 1 GB ZRAM vil standard swap-filen (langsom!) blive brugt sjældnere. Jeg brugte dette script zram-bytte til installation og automatisk konfiguration.

Instruktioner findes i lageret, der er linket til 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 du aktivere ZRAM ved at installere zram-tools. Hvis du bruger denne metode, skal du sørge for at redigere konfigurationen i fil /etc/default/zramswap, og installer omkring 1 GB ZRAM:

sudo apt install zram-tools

Efter installationen kan du se ZRAM-lagerstatistik 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øjelse af kerneparametre for bedre brug af ZRAM

Lad os nu rette op på systemets opførsel, når Raspberry Pi skifter til at bytte i sidste øjeblik, hvilket ofte fører til fryser. Lad os tilføje et par linjer til filen /etc/sysctl.conf og genstart.

Disse linjer 1) vil forsinke den uundgåelige udmattelse af hukommelsen, øge trykket på kernecachen og 2) de begynder at forberede sig på hukommelsesudmattelse tidligere, påbegynde bytte på forhånd. Men det vil være meget mere effektivt at bytte komprimeret hukommelse gennem ZRAM!

Her er linjerne, 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 følgende kommando:

sudo sysctl --system

vm.vfs_cache_pressure=500 øger cachetrykket, hvilket øger kernens tendens til at genvinde hukommelse, der bruges til at cache mappe og indeksere objekter. Du vil bruge mindre hukommelse i længere tid. Det kraftige fald i ydeevne ophæves af tidligere bytte.

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

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - Baggrundsprocesser vil begynde at optage umiddelbart efter at have nået grænsen på 1 %, men systemet vil ikke tvinge synkron I/O, før det når dirty_ratio på 50 %.

Disse fire linjer (når de bruges med ZRAM) hjælper med at forbedre ydeevnen, hvis du har uundgåeligt RAM'en løber tør, og overgangen til swap begynder, ligesom min. Ved at kende dette faktum, og også under hensyntagen til hukommelseskomprimeringen i ZRAM tre gange, er det bedre at starte denne swap på forhånd.

At lægge pres på cachen hjælper, fordi vi i bund og grund fortæller kernen, "Hey, se, jeg har ikke nogen ekstra hukommelse at bruge til cachen, så slip venligst af med det ASAP og gem kun det mest brugte/vigtige data."

Selv med reduceret caching, hvis det meste af den installerede hukommelse over tid er optaget, vil kernen begynde opportunistisk swap meget tidligere, så CPU (komprimering) og swap I/O ikke vil vente til sidste øjeblik og bruge alle ressourcer på én gang, når det er for sent. ZRAM bruger lidt CPU til komprimering, men på de fleste systemer med små mængder hukommelse har det meget mindre effekt på ydeevnen end at bytte uden ZRAM.

Afslutningsvis

Lad os se 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 er næsten en gigabyte ukomprimeret data. Alt gik til ZRAM og intet gik til den meget langsommere sidefil. Prøv selv disse indstillinger, de virker på alle Raspberry Pi-modeller. Mit ubrugelige frysesystem er blevet til et funktionelt og stabilt.

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. Nu har jeg bare ikke tid til det her. I mellemtiden er du velkommen til at køre dine egne tests og fortælle mig det i kommentarerne. Raspberry Pi 4 er et udyr med disse indstillinger. God fornøjelse!

Om emnet:

Kilde: www.habr.com

Tilføj en kommentar