Raspberry Pi heeft een beperkte hoeveelheid RAM en meer kan niet worden toegevoegd omdat het een computer met één bord is. De Pi 3 heeft slechts 1 GB RAM. De Pi 4 heeft, afhankelijk van het model, tot 8 GB RAM. Softwaretoepassingen vragen soms meer geheugen. Meestal is deze geheugenvereiste een korte piek. Wanneer dit gebeurt, zal de Raspberry Pi "bevriezen" of "crashen" vanwege het beperkte geheugen. De crash kan er ook toe leiden dat de SD-kaart beschadigd raakt, met gegevensverlies tot gevolg.

Om de mogelijkheid van een crash te voorkomen, kan virtueel geheugen in de vorm van swap op de Pi worden geconfigureerd. De juiste hoeveelheid moet op het juiste apparaat worden toegevoegd om er het beste uit te halen. Het hele proces wordt systematisch uitgelegd met instructies voor verschillende besturingssystemen.

Begrijpen hoe het geheugenproces werkt

RAM is het fysieke geheugen. Op de Pi 4 bevindt deze zich naast de processor. Op de Pi 3 zit RAM aan de onderkant van de printplaat. In tegenstelling tot gewone moederborden, is RAM op een Raspberry Pi op het bord gesoldeerd, wat de mogelijkheid om de capaciteit te vergroten beperkt.

Wanneer een softwaretoepassing wordt uitgevoerd, gebruikt deze een deel van het RAM-geheugen voor zijn werking. Denk aan een browser als voorbeeld. Wanneer een webpagina in een tabblad wordt geladen, slaat het de paginagegevens op in het RAM samen met het geheugen dat nodig is om het browserprogramma uit te voeren. Wanneer er meer tabbladen worden geladen, wordt het RAM-geheugen evenveel gevuld. Zonder virtueel geheugen zal het RAM-geheugen op een gegeven moment geen capaciteit meer hebben en kunnen nieuwe tabbladen helemaal niet worden geladen. Het bladeren door de bestaande tabbladen zal ook aanzienlijk vertragen omdat er geen vrij geheugen is voor basisbewerkingen. Op dit punt reageert de Pi niet meer en de enige manier om hem terug te brengen is door power cycling (uit- en inschakelen).

Deze willekeurige afsluiting kan ernstige problemen veroorzaken, vooral wanneer het besturingssysteem op de SD-kaart staat. De kaart kan worden vergrendeld in de status "alleen lezen" of in het ergste geval helemaal beschadigd raken. Dit is wanneer het totale gegevensverlies optreedt.

De impact van de toestand "onvoldoende geheugen (OOM)" kan worden geminimaliseerd door swap te configureren voor gebruik als virtueel geheugen. Swap kan worden ingesteld in de vorm van een bestand of een partitie op de schijf en functioneert als een uitbreiding op RAM. Wanneer het beschikbare RAM-geheugen op is, worden de weinig gebruikte gegevens erop verplaatst om te wisselen in een proces dat swapping wordt genoemd. In het geval van het browservoorbeeld zijn dit gegevens van een geladen tabblad dat het minst wordt gebruikt. Wanneer het tabblad opnieuw wordt geactiveerd, worden deze gegevens terug naar het RAM verplaatst om de webpagina weer te geven.

Swap zorgt voor stabiliteit voor geheugenintensieve bewerkingen. Als er een korte piek is in het geheugenverbruik, zal swap helpen om de piek op te vangen en het systeem te laten functioneren in plaats van te eindigen in een totale bevriezing.

Het juiste apparaat kiezen om Swap in te stellen

Swap is essentieel, maar de locatie en grootte van de swap die moet worden geconfigureerd, is ook even belangrijk. Idealiter moet swap op een snel apparaat staan. Naast de caches op de processor is RAM het op één na snelste geheugen. DDR4 op de Pi heeft een bandbreedte van 4,4 GBps (gigabyte per seconde). Swap moet op een van de andere beschikbare opslagapparaten staan.

Als een SD-kaart wordt gebruikt voor het besturingssysteem, is er standaard een klein swapgebied op geconfigureerd. U kunt de grootte controleren met behulp van de opdracht:

gratis -m

99 MB is geen significante hoeveelheid swap. Het zal vrij snel vol raken. SD-kaarten hebben beperkte schrijfcycli omdat ze flash-geheugen gebruiken en overmatig wisselen kan hun levensduur verkorten. Ze hebben ook een lage bandbreedte van ongeveer 50 MBps met veel mindere lees-/schrijfprestaties van 4k-bestanden, wat essentieel is voor het uitwisselen van kleinere bestanden.

Harde schijven bevatten draaiende schijven. Hoewel ze betrouwbaar zijn, hebben ze een hogere zoektijd en zijn ze niet handig om te ruilen.

Een goedkope SSD voor het besturingssysteem is een redelijk betere keuze. De algoritmen voor slijtage-nivellering reorganiseren de gegevens van versleten flitscellen en verlengen de levensduur ervan. Op een Pi is de SSD-bandbreedte rond 150 MBps en heeft veel betere 4k-bestandsprestaties in vergelijking met SD-kaarten. De zoeksnelheid is ook goed. Maar dezelfde schijf gebruiken voor gelijktijdige werking van swap- en OS-knelpunten. Omdat swap intensief schrijft, kan de schijf de TBW (totaal geschreven bytes) eerder bereiken dan verwacht, vooral op SSD's met een lage capaciteit.

Idealiter heeft de Pi zijn besturingssysteem en swap nodig om op verschillende schijven te staan, een OS-schijf en een speciale SSD voor swap. Dit zou een lange levensduur voor de OS-schijf en snelheid voor de swap geven. Bovendien zal de bandbreedte voor beide tegelijkertijd beschikbaar zijn, omdat het verschillende apparaten zijn.

Swap configureren op Raspberry Pi-besturingssystemen

Hoe u dit het beste kunt configureren, hangt af van het besturingssysteem dat uw apparaat gebruikt.

Desktop-besturingssysteem (Raspberry Pi OS, Ubuntu Desktop en Ubuntu Mate)

Sluit de SSD aan die als swap moet worden gebruikt met een USB 3.0 naar SATA III-adapter en start de Pi. Het hier getoonde proces is geïmplementeerd op het Raspberry Pi OS en zou even goed moeten werken op de andere besturingssystemen. In geval dat je Raspberry Pi OS moet worden bijgewerkt, doe het.

Installeer de benodigde tool om schijven te beheren met behulp van GUI

sudo apt installeren gnome-disk-utility

Open Schijven van Start > Accessoires.

U kunt deze opdracht ook in de terminal gebruiken om de tool te openen:

gnome-schijven

Formatteer de SSD vanuit het menu.

Maak een partitie met behulp van de besturing met + symbool

De hele partitie kan worden toegewezen voor swap, maar een maximum van tweemaal het RAM-geheugen zou voldoende zijn.

Geef het volume een naam en selecteer Ander voor de Partitietype.

Selecteer Linux Swap Partitie en creëer het.

Je kunt hem meteen monteren door op de bedieningsknop te klikken met de Toneelstuk symbool. Het wordt tijdens deze sessie geactiveerd, maar blijft niet hangen bij opnieuw opstarten. Het moet zo zijn ingesteld dat het automatisch wordt geactiveerd. Klik op de Versnelling controle en selecteer Koppelingsopties bewerken.

Schakelaar Standaardinstellingen gebruikerssessie en klik Oké. Authenticatie en Disks zullen een item toevoegen aan /etc/fstab om het bij elke boot te mounten.

Start de Pi opnieuw, open de terminal en controleer de nieuwe swapgrootte:

gratis -m

Extra instelling alleen voor Raspberry Pi OS

Nu de swap op een SSD is geconfigureerd, is de oude swap niet meer nodig. Je kunt het uitschakelen door te bewerken:

sudo nano /etc/dphys-swapfile

Stel deze parameter in op nul:

CONF_SWAPSIZE=0

Server-besturingssysteem (Ubuntu, Raspberry Pi-besturingssysteem)

Dit proces verloopt via CLI. Voor het gemak kunt u de swappartitie voorbereiden met behulp van het hulpprogramma Schijven op een andere computer, vervolgens de SSD op de Pi aansluiten en de server opstarten. Maak verbinding met de Pi via SSH verder gaan.

Zoek de swappartitie:

lsblk

sda1 het is. Zoek de UUID van dit apparaat: sda1

blkid

Kopieer de UUID (uniek voor jou) en bewerk het fstab-bestand om het automatisch te koppelen bij elke keer opstarten:

sudo nano /etc/fstab

Voeg deze regel toe:

UUID=JOUW UUID geen swap sw 0 0

Opslaan, opnieuw opstarten en de swapgrootte controleren:

gratis -m

Het gebruik van virtueel geheugen optimaliseren voor crashbestendige werking

De geconfigureerde swap moet goed worden gebruikt. Dit wordt gedaan door een parameter in te stellen met de naam swappiness. Om de huidige waarde te vinden:

cat proc/sys/vm/swappiness

Standaard ingesteld op 60, definieert de waarde hoe agressief de kernel inhoud uit het RAM-geheugen verwisselt. Het kan worden ingesteld tussen 1 en 100. De geschikte waarde hangt af van uw specifieke behoefte. Als je ziet dat de Pi constant geen RAM meer heeft, stel deze dan in op 100. Als dit niet het geval is, stelt u deze in op een lagere waarde. Bewerk dit bestand om het in te stellen:

sudo nano /etc/sysctl.conf

Voeg deze regel aan het einde toe:

vm.swappiness=100

Voorbehoud bij verwerkingsoverhead en SSD TBW

Operationele swap vereist verwerkingskracht, meestal wijdt een van de vier kernen op de Pi zich aan het swappen wanneer RAM absoluut vol is.

Het algemene advies dat rondzweeft is om geen SSD's te gebruiken voor swapping, het is waar voor het geval dat het besturingssysteem (samen met gebruikersgegevens) en swap op dezelfde schijf staan. Het is in dit geval niet van toepassing wanneer swap is ingesteld zoals hier wordt uitgelegd. Hoewel de gebruikte SSD uiteindelijk zijn TBW zal overschrijden en faalt, kan deze eenvoudig worden vervangen door een nieuwe omdat er tijdens dit proces geen belangrijke gegevens op zijn opgeslagen.

Ruil voordeel voor uw Pi

Het configureren van swap-recht is een geweldige manier om de Pi crashbestendig te maken. De stabiliteit is te danken aan het feit dat het totale beschikbare geheugen een belangrijker factor is dan de snelheid van het geheugen tijdens OOM. De Pi zal niet bevriezen en zodra het piekgebruik daalt, zal hij weer sneller reageren.

Raspberry Pi is een kleine computer met grote flexibiliteit. Het kan voor verschillende doeleinden worden gebruikt met verschillende lichtgewicht besturingssystemen. Pi 4 dient goed als vervanging voor gewone computers en ook als embedded apparaat voor industrieel gebruik dat 24x7 kan draaien.