Raspberry Pi-prestaties: ZRAM toevoegen en kernelparameters wijzigen

Een paar weken geleden plaatste ik een bericht Pinebook Pro-recensie. Omdat Raspberry Pi 4 ook op ARM is gebaseerd, zijn sommige van de in het vorige artikel genoemde optimalisaties daar zeer geschikt voor. Ik wil deze trucs graag delen en kijken of u dezelfde prestatieverbeteringen ervaart.

Na het installeren van de Raspberry Pi in uw thuis serverruimte Ik merkte dat het op momenten van RAM-tekort erg niet meer reageerde en zelfs vastliep. Om dit probleem op te lossen, heb ik ZRAM toegevoegd en een paar wijzigingen aangebracht in de kernelparameters.

ZRAM activeren op Raspberry Pi

Raspberry Pi-prestaties: ZRAM toevoegen en kernelparameters wijzigen

ZRAM creëert een blokopslag in RAM met de naam /dev/zram0 (of 1, 2, 3, etc.). De daar geschreven pagina's worden gecomprimeerd en in het geheugen opgeslagen. Dit maakt zeer snelle I/O mogelijk en maakt ook geheugen vrij door compressie.

De Raspberry Pi 4 wordt geleverd met 1, 2, 4 of 8 GB RAM. Ik gebruik het 1GB-model, dus pas de instructies aan op basis van uw model. Met 1 GB ZRAM zal het standaard wisselbestand (traag!) minder vaak worden gebruikt. Ik heb dit script gebruikt zram-wissel voor installatie en automatische configuratie.

Instructies vindt u in de hierboven gelinkte repository. Installatie:

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

Als u de configuratie wilt bewerken:

vi /etc/default/zram-swap

Bovendien kunt u ZRAM activeren door te installeren zram-tools. Als u deze methode gebruikt, zorg er dan voor dat u de config in bestand /etc/default/zramswapen installeer ongeveer 1 GB ZRAM:

sudo apt install zram-tools

Na de installatie kunt u ZRAM-opslagstatistieken bekijken met de volgende opdracht:

sudo cat /proc/swaps
Filename				Type		Size	Used	Priority
/var/swap                               file		102396	0	-2
/dev/zram0                              partition	1185368	265472	5
pi@raspberrypi:~ $

Kernelparameters toevoegen voor beter gebruik van ZRAM

Laten we nu het gedrag van het systeem oplossen wanneer de Raspberry Pi op het laatste moment overschakelt naar swappen, wat vaak tot vastlopen leidt. Laten we een paar regels aan het bestand toevoegen /etc/sysctl.conf en opnieuw opstarten.

Deze lijnen 1) zal de onvermijdelijke uitputting van het geheugen vertragen, waardoor de druk op de kernelcache toeneemt en 2) ze beginnen zich eerder voor te bereiden op geheugenuitputting, waarbij vooraf het wisselen wordt gestart. Maar het zal veel efficiënter zijn om gecomprimeerd geheugen via ZRAM uit te wisselen!

Hier zijn de regels die u aan het einde van het bestand moet toevoegen /etc/sysctl.conf:

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

Vervolgens starten we het systeem opnieuw op of activeren we de wijzigingen met het volgende commando:

sudo sysctl --system

vm.vfs_cache_druk=500 verhoogt de cachedruk, wat de neiging van de kernel vergroot om geheugen terug te winnen dat wordt gebruikt om directory- en indexobjecten in de cache op te slaan. Je gebruikt gedurende langere tijd minder geheugen. De scherpe prestatiedaling wordt tenietgedaan door eerdere swaps.

vm.swappiness = 100 verhoogt de parameter hoe agressief de kernel geheugenpagina's zal wisselen, omdat we eerst ZRAM gebruiken.

vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - achtergrondprocessen beginnen onmiddellijk met opnemen zodra de limiet van 1% is bereikt, maar het systeem zal geen synchrone I/O forceren totdat de dirty_ratio van 50% is bereikt.

Deze vier regels (indien gebruikt met ZRAM) zullen de prestaties helpen verbeteren als dat het geval is onvermijdelijk Het RAM-geheugen raakt op en de overgang naar swap begint, net als de mijne. Dit feit wetende, en ook rekening houdend met de geheugencompressie in ZRAM met drie keer, is het beter om deze swap van tevoren te starten.

Het onder druk zetten van de cache helpt omdat we in wezen tegen de kernel zeggen: "Hé, kijk, ik heb geen extra geheugen om te gebruiken voor de cache, dus verwijder het alsjeblieft zo snel mogelijk en bewaar alleen de meest gebruikte/belangrijke dingen." gegevens."

Zelfs met verminderde caching zal de kernel, als na verloop van tijd het grootste deel van het geïnstalleerde geheugen bezet is, veel eerder beginnen met opportunistisch swappen, zodat CPU (compressie) en swap I/O niet tot het laatste moment zullen wachten en alle bronnen in één keer zullen gebruiken. het is te laat. ZRAM gebruikt een kleine CPU voor compressie, maar op de meeste systemen met kleine hoeveelheden geheugen heeft het veel minder impact op de prestaties dan swap zonder ZRAM.

Concluderend

Laten we nog eens naar het resultaat kijken:

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 in ZRAM is bijna één gigabyte aan ongecomprimeerde gegevens. Alles ging naar ZRAM en niets ging naar het veel langzamere paginabestand. Probeer deze instellingen zelf eens, ze werken op alle Raspberry Pi-modellen. Mijn onbruikbare bevriezingssysteem is veranderd in een functioneel en stabiel systeem.

In de nabije toekomst hoop ik dit artikel voort te zetten en bij te werken met enkele resultaten van het testen van het systeem voor en na de installatie van ZRAM. Nu heb ik hier gewoon geen tijd voor. Voel je in de tussentijd vrij om je eigen tests uit te voeren en laat het me weten in de reacties. De Raspberry Pi 4 is een beest met deze instellingen. Genieten!

Over het onderwerp:

Bron: www.habr.com

Voeg een reactie