Raspberry Pi-ytelse: Legge til ZRAM og endre kjerneparametere

For et par uker siden postet jeg Pinebook Pro anmeldelse. Siden Raspberry Pi 4 også er ARM-basert, er noen av optimaliseringene nevnt i forrige artikkel ganske egnet for det. Jeg vil gjerne dele disse triksene og se om du opplever de samme ytelsesforbedringene.

Etter å ha installert Raspberry Pi i din serverrom hjemme Jeg la merke til at i øyeblikk med mangel på RAM ble det veldig lite respons og til og med frøs. For å løse dette problemet, la jeg til ZRAM og gjorde noen endringer i kjerneparametrene.

Aktiverer ZRAM på Raspberry Pi

Raspberry Pi-ytelse: Legge til ZRAM og endre kjerneparametere

ZRAM oppretter en blokklagring i RAM kalt /dev/zram0 (eller 1, 2, 3, etc.). Sidene som er skrevet der komprimeres og lagres i minnet. Dette gir svært rask I/O og frigjør også minne gjennom komprimering.

Raspberry Pi 4 kommer med 1, 2, 4 eller 8 GB RAM. Jeg skal bruke 1 GB-modellen, så vennligst juster instruksjonene basert på modellen din. Med 1 GB ZRAM vil standard byttefil (sakte!) bli brukt sjeldnere. Jeg brukte dette skriptet zram-bytte for installasjon og automatisk konfigurasjon.

Instruksjoner er gitt i depotet lenket ovenfor. Installasjon:

git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh

Hvis du vil redigere konfigurasjonen:

vi /etc/default/zram-swap

I tillegg kan du aktivere ZRAM ved å installere zram-tools. Hvis du bruker denne metoden, sørg for å redigere konfigurasjonen i fil /etc/default/zramswap, og installer omtrent 1 GB ZRAM:

sudo apt install zram-tools

Etter installasjonen kan du se ZRAM-lagringsstatistikk 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:~ $

Legger til kjerneparametere for bedre bruk av ZRAM

La oss nå fikse oppførselen til systemet når Raspberry Pi bytter til bytte i siste øyeblikk, noe som ofte fører til fryser. La oss legge til noen linjer i filen /etc/sysctl.conf og start på nytt.

Disse linjene 1) vil forsinke den uunngåelige utmattelsen av minnet, øke trykket på kjernebufferen og 2) de begynner å forberede seg på hukommelsesutmattelse tidligere, initierer bytte på forhånd. Men det vil være mye mer effektivt å bytte komprimert minne gjennom ZRAM!

Her er linjene som skal legges til på slutten av filen /etc/sysctl.conf:

vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50

Deretter starter vi systemet på nytt eller aktiverer endringene med følgende kommando:

sudo sysctl --system

vm.vfs_cache_pressure=500 øker hurtigbuffertrykket, noe som øker kjernens tendens til å gjenvinne minne som brukes til å bufre katalog og indeksere objekter. Du vil bruke mindre minne over lengre tid. Det kraftige fallet i ytelse blir opphevet av tidligere bytte.

vm.swappiness = 100 øker parameteren hvor aggressivt kjernen vil bytte minnesider, siden vi først bruker ZRAM.

vm.dirty_background_ratio=1 og vm.dirty_ratio=50 - Bakgrunnsprosesser vil starte opptaket umiddelbart etter å ha nådd 1%-grensen, men systemet vil ikke tvinge synkron I/O før det når dirty_ratio på 50%.

Disse fire linjene (når de brukes med ZRAM) vil bidra til å forbedre ytelsen hvis du har uunngåelig RAM-en går tom og overgangen til swap begynner, som min. Når du kjenner til dette faktum, og også tar i betraktning minnekomprimeringen i ZRAM tre ganger, er det bedre å starte denne vekslingen på forhånd.

Å legge press på cachen hjelper fordi vi egentlig forteller kjernen, "Hei, se, jeg har ikke noe ekstra minne å bruke for cachen, så vær så snill å kvitte seg med den ASAP og bare lagre de mest brukte/viktige data."

Selv med redusert caching, hvis over tid mesteparten av det installerte minnet er okkupert, vil kjernen starte opportunistisk bytte mye tidligere, slik at CPU (komprimering) og swap I/O ikke vil vente til siste minutt og bruke alle ressursene samtidig når det er for sent. ZRAM bruker litt CPU for komprimering, men på de fleste systemer med små mengder minne har det mye mindre ytelse enn å bytte uten ZRAM.

i konklusjonen

La oss se på resultatet igjen:

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 nesten én gigabyte med ukomprimerte data. Alt gikk til ZRAM og ingenting gikk til den mye tregere sidefilen. Prøv disse innstillingene selv, de fungerer på alle Raspberry Pi-modeller. Mitt ubrukelige frysesystem har blitt til et funksjonelt og stabilt.

I nær fremtid håper jeg å fortsette og oppdatere denne artikkelen med noen resultater fra testing av systemet før og etter installasjon av ZRAM. Nå har jeg rett og slett ikke tid til dette. I mellomtiden kan du gjerne kjøre dine egne tester og gi meg beskjed i kommentarfeltet. Raspberry Pi 4 er et beist med disse innstillingene. Nyt!

Om emnet:

Kilde: www.habr.com

Legg til en kommentar