Raspberry Pi har en begränsad mängd RAM och mer kan inte läggas till eftersom det är en enkelkortsdator. Pi 3 har bara 1 GB RAM. Pi 4, beroende på modell, har upp till 8 GB RAM. Programvaruapplikationer kräver ibland mer minne. För det mesta är detta minneskrav en kort topp. När detta händer kommer Raspberry Pi antingen att "frysa" eller "krascha" på grund av det begränsade minnet. Kraschen kan också leda till att SD-kortet skadas, vilket resulterar i dataförlust.
För att undvika risken för en krasch kan virtuellt minne i form av swap konfigureras på Pi. Rätt mängd av det måste läggas till på rätt enhet för att få ut det bästa av det. Hela processen förklaras systematiskt med instruktioner för olika operativsystem.
Förstå hur minnesprocessen fungerar
RAM är det fysiska minnet. På Pi 4 är den placerad bredvid processorn. På Pi 3 är RAM placerat på undersidan av kretskortet. Till skillnad från vanliga moderkort är RAM på en Raspberry Pi lödd till kortet vilket begränsar möjligheten att öka dess kapacitet.
När ett program körs använder det en del av RAM-minnet för dess funktion. Tänk på en webbläsare som ett exempel. När en webbsida laddas i en flik, lagrar den siddata i RAM-minnet tillsammans med det minne som behövs för att köra webbläsarprogrammet. När fler flikar laddas fylls RAM-minnet lika mycket. Utan virtuellt minne kommer RAM-minnet vid något tillfälle att ta slut och nya flikar kan inte laddas alls. Att bläddra i de befintliga flikarna kommer också att sakta ner betydligt eftersom det inte finns något ledigt minne för grundläggande operationer. Vid denna tidpunkt kommer Pi: n att sluta svara och det enda sättet att få tillbaka den är genom att slå av och på strömmen.
Denna slumpmässiga avstängning kan orsaka allvarliga problem, särskilt när operativsystemet finns på SD-kortet. Kortet kan låsas till "skrivskyddat" tillstånd eller i värsta fall bli helt skadat. Det är då total dataförlust inträffar.
Effekten av tillståndet "tom minne (OOM)" kan minimeras genom att konfigurera swap för att användas som virtuellt minne. Swap kan ställas in i form av en fil eller en partition på disken och fungerar som ett tillägg till RAM. När det tillgängliga RAM-minnet har tagit slut, flyttas sällan använda data på det för att byta i en process som kallas swapping. I fallet med webbläsarexemplet skulle detta vara data från en laddad flik som används minst. När fliken aktiveras igen kommer denna data att flyttas tillbaka till RAM för att visa webbsidan.
Swap ger stabilitet för minnesintensiva operationer. Om det finns en kort ökning i minnesförbrukning, kommer swap att hjälpa till att absorbera spiken och hålla systemet fungerande istället för att hamna i en total frysning.
Att välja rätt enhet för att ställa in Swap
Swap är viktigt, men platsen och storleken på swap som ska konfigureras är också lika viktigt. Helst måste bytet ske på en snabb enhet. Bredvid cacharna på processorn är RAM det näst snabbaste minnet. DDR4 på Pi har en bandbredd på 4,4 GBps (gigabyte per sekund). Swap måste finnas på en av de andra tillgängliga lagringsenheterna.
Om ett SD-kort används för operativsystemet är ett litet bytesområde konfigurerat på det som standard. Du kan kontrollera dess storlek med kommandot:
fri -m
99 MB är inte en betydande mängd swap. Det kommer att fyllas upp ganska snabbt. SD-kort har begränsade skrivcykler eftersom de använder flashminne och överdrivet utbyte kan minska deras livslängd. Dessutom har de låg bandbredd på cirka 50 MBps med mycket lägre läs/skrivprestanda för 4k-filer, vilket är viktigt för att byta mindre filer.
Hårddiskar har snurrande skivor i dem. Även om de är tillförlitliga har de högre söktider och är inte användbara för att byta.
En billig SSD för OS är ett rimligt bättre val. Algoritmerna för slitageutjämning omorganiserar data från utslitna flashceller och förlänger dess livslängd. På en Pi är SSD-bandbredden runt 150 MBps och har mycket bättre 4k-filprestanda jämfört med SD-kort. Sökhastigheten är också bra. Men att använda samma disk för swap- och OS-flaskhalsar samtidigt. Eftersom swap gör intensiva skrivningar kan disken nå TBW (total bytes written) snabbare än förväntat, särskilt på lågkapacitets SSD: er.
Helst behöver Pi: n sitt OS och swap för att vara på olika enheter, en OS-disk och en dedikerad SSD för swap. Detta skulle ge lång livslängd för OS-disken och hastighet för bytet. Dessutom kommer bandbredden att vara tillgänglig för båda samtidigt eftersom de är olika enheter.
Hur man konfigurerar Swap på Raspberry Pi-operativsystem
Hur du bäst konfigurerar detta beror på vilket OS din enhet använder.
Desktop OS (Raspberry Pi OS, Ubuntu Desktop och Ubuntu Mate)
Anslut SSD: n som ska användas som swap med en USB 3.0 till SATA III-adapter och starta Pi. Processen som visas här är implementerad på Raspberry Pi OS och bör fungera lika bra på de andra operativsystemen. Om ditt Raspberry Pi OS måste uppdateras, gör det.
Installera det nödvändiga verktyget för att hantera diskar med GUI
sudo apt Installera gnome-disk-verktyg
Öppna Diskar från Start > Tillbehör.
Du kan också använda det här kommandot i terminalen för att öppna verktyget:
gnome-skivor
Formatera SSD från menyn.
Skapa en partition med kontrollen med + symbol
Hela partitionen kan tilldelas för swap, men maximalt två gånger RAM-minnet skulle vara tillräckligt.
Namnge volymen och välj Övrig för Partitionstyp.
Välj Linux Swap-partition och skapa den.
Du kan montera den direkt genom att klicka på kontrollknappen med Spela symbol. Den kommer att monteras under den här sessionen men kommer inte att fästa vid omstarter. Den måste ställas in för att monteras automatiskt. Klicka på Redskap styra och välja Redigera monteringsalternativ.
Växla Standardinställningar för användarsession och klicka OK. Autentisera och Disks kommer att lägga till en post till /etc/fstab för att montera den vid varje uppstart.
Starta om Pi, öppna terminalen och kontrollera den nya bytesstorleken:
fri -m
Ytterligare inställning endast för Raspberry Pi OS
Nu när bytet är konfigurerat på en SSD behövs inte det gamla bytet. Du kan stänga av den genom att redigera:
sudo nano /etc/dphys-swapfile
Ställ in denna parameter på noll:
CONF_SWAPSIZE=0
Server OS (Ubuntu, Raspberry Pi OS)
Denna process är genom CLI. För enkelhetens skull kan du förbereda swap-partitionen med verktyget Disks på en annan dator, sedan anslut SSD: n till Pi: n och starta upp servern. Anslut till Pi med SSH att fortsätta.
Hitta swap-partitionen:
lsblk
sda1 det är. Hitta UUID för den här enheten: sda1
blkid
Kopiera UUID (unik för dig) och redigera fstab-filen för att montera den automatiskt vid varje start:
sudo nano /etc/fstab
Lägg till denna rad:
UUID=”DIN UUID” ingen swap sw 0 0
Spara, starta om och kontrollera växlingsstorleken:
fri -m
Optimera användningen av virtuellt minne för kraschsäker drift
Den konfigurerade växlingen måste användas på bästa sätt. Detta görs genom att ställa in en parameter som kallas swappiness. Så här hittar du det aktuella värdet:
cat proc/sys/vm/swappiness
Inställt på 60 som standard, värdet definierar hur aggressivt kärnan byter ut innehåll från RAM. Den kan ställas in mellan 1 och 100. Det lämpliga värdet beror på ditt specifika behov. Om du ser att Pi konsekvent har slut på RAM, ställ in den på 100. Om inte, ställ in det på ett lägre värde. Redigera den här filen för att ställa in den:
sudo nano /etc/sysctl.conf
Lägg till denna rad i slutet:
vm.byte=100
Varningar för Processing Overhead och SSD TBW
Driftsswap kräver processorkraft, vanligtvis ägnar sig en av de fyra kärnorna på Pi: n till att byta när RAM-minnet är helt fullt.
Det allmänna rådet som svävar runt är att inte använda SSD: er för att byta, det är sant för fallet där OS (tillsammans med användardata) och swap finns på samma disk. Det gäller inte i det här fallet när swap ställs in enligt beskrivningen här. Även om den använda SSD: n i slutändan kommer att passera sin TBW och misslyckas, kan den helt enkelt ersättas med en ny eftersom det inte finns någon viktig data lagrad på den med denna process.
Byt fördel mot din Pi
Att konfigurera byte rätt är ett bra sätt att göra Pi-kraschsäker. Stabiliteten beror på det faktum att totalt tillgängligt minne är en viktigare faktor än minnets hastighet under OOM. Pi: n fryser inte och när spikanvändningen sjunker kommer den att reagera snabbare igen.
Raspberry Pi är en liten dator med stor flexibilitet. Den kan användas för olika ändamål med olika lättviktsoperativsystem. Pi 4 fungerar bra som en ersättning för vanliga datorer och även en inbäddad enhet för industriellt bruk som kan köras 24x7.