Når du installerer Linux, vil opsætningsprocessen sandsynligvis tilføje en swap-partition til harddisken sammen med partitionerne til selve Linux. Men hvad bruges denne swap-partition til, og er den virkelig nødvendig?
Hvad er swap?
Når et multitasking-operativsystem løber tør for fysisk hukommelse, er det ikke i stand til at starte nye processer eller allokere mere hukommelse til eksisterende processer. For at løse dette problem er en særlig blok af plads på det lokale lager (ofte harddisken) afsat til at fungere som et midlertidigt holdeområde for processer, der ikke kører i øjeblikket. OS “bytter” den inaktive proces ud af hukommelsen og videre til harddisken. Dette frigør hukommelse til nyt arbejde. Når den inaktive proces bliver aktiv igen, vil den blive skiftet tilbage fra det lokale lager til hukommelsen. Denne procedure er kendt som swapping.
Er det virkelig nødvendigt at bytte plads?
Er det teknisk nødvendigt at bytte plads? Nej. Linux kan fungere uden det, og i nogle situationer, f.eks. indlejrede løsninger, kan Linux køres uden swap. Hvis operativsystemet kommer i en situation, hvor det ikke har nok hukommelse, vil det gå i panik og stoppe. Hvis der er nok fysisk RAM, vil maskinen køre uden problemer.
Er det praktisk nødvendigt at bytte plads? Ja. Selvom udskiftning gør en computer langsommere (da læsning og skrivning til en harddisk er meget langsommere end adgang til RAM), og at have så meget fysisk hukommelse ombord er den bedste løsning til at undgå at bytte, er der legitime situationer, hvor bytte er ønskeligt. For eksempel kan der under systemopstart være processer, der kører (og dermed bruger systemhukommelse), men som så effektivt sover i meget lange perioder. Eller hukommelse, der er allokeret, skrevet til og derefter aldrig brugt igen. I disse situationer vil byttealgoritmen begynde at migrere denne hukommelse til harddisken og dermed frigøre værdifuld systemhukommelse. Dette sikrer faktisk, at den maksimale mængde RAM er tilgængelig til enhver tid og øger dermed ydeevnen.
På maskiner, der ikke har nok fysisk RAM til, at alt kan ligge i hukommelsen, er brugen af swap-plads afgørende!
For fuldstændighedens skyld er det værd at nævne, at Linux også har et undersystem kaldet Out-Of-Memory Killer (OOM), som i stedet for at stoppe kernen, når den løber tør for hukommelse, vil begynde at dræbe processer for at frigøre ressourcer. Dens handlinger er konfigurerbare.
Hvor meget bytteplads skal jeg tildele?
Der er ingen absolut regel, og da harddiskplads er billig (dollar pr. Gigabyte), er det bedre at allokere for meget end for lidt plads. Som en tommelfingerregel bør du have to eller tre gange så meget swap-plads som fysisk hukommelse.
Tilføjelse af swap uden at udvide swap-partitionen
Der er to måder at tilføje swap-plads til et system uden at ændre den eksisterende swap-partition. Den ene måde er at bruge en swap-partition på et andet drev, den anden er at bruge en swap-fil.
For at bruge en anden harddisk skal du oprette en partition af typen “Linux swap” (kode 82) og derefter køre “mkswapkommando for at forberede swap-pladsen:
mkswap /dev/sdb2
Hvor /dev/sdb2 er navnet på den partition, du har oprettet. For at bruge byttepladsen med det samme, skal du bruge “swapon” kommando:
swapon /dev/sdb2
Brug “swapon -s” for at få en liste over de aktuelt brugte byttepladser. For permanent at tilføje swap-pladsen til systemet, skal du redigere /etc/fstab fil og tilføj en linje, der ligner denne:
/dev/sdb2 none swap sw 0 0
Hvis dit system bruger unikke identifikatorer til at navngive diskene, skal du bruge blkid kommando for at få en liste over id’er til enhederne. Linen til at montere byttepladsen i /etc/fstab ville så se sådan her ud:
UUID=036da155-1ea1-4392-b8d4-700f65aa1ead none swap sw 0 0
For at bruge en fil til swap skal du oprette en stor tom fil (ved hjælp af dd) på det filsystem, du vil bruge til at bytte. For at oprette en 1GB fil, skriv f.eks.:
dd if=/dev/zero of=/store/swapfile bs=1024 count=1048576
Hvor /store/swapfile er stien til swap-filen på det ønskede filsystem.
Som med den ekstra swap-partition, skal filen nu forberedes med mkswap og derefter brugt med swapon. Det skal også tilføjes /etc/fstab fil. Fremgangsmåden er nøjagtig den samme som ovenfor, men du skal bruge /store/swapfile hellere end /dev/sdb2 som swap space parameter.
Ombytning
Linux-kernen kan justeres for at definere, hvor aggressivt den skal forsøge at bytte processer ud af hukommelsen. Denne tendens styres af en kernevariabel kaldet swappiness. EN swappiness på 0 betyder, at kernen vil undgå at bytte så meget som muligt, mens 100 betyder, at kernen vil være aggressiv i, hvordan den bruger byttepladsen. Standardindstillingen for mange Linux-distributioner er 60. Det er muligt at ændre tallet dynamisk ved hjælp af denne kommando:
sudo sysctl vm.swappiness=10
For at indstille en værdi permanent, skal du ændre (eller tilføje, hvis den ikke findes) den vm.swappiness variabel i /etc/sysctl.conf fil.
Fortæl os, hvis du har spørgsmål om swap i Linux.
Denne artikel blev først offentliggjort i december 2013 og blev opdateret i august 2020.
Billedkredit: bytte rundt
Støt vores arbejde ❤️
Hvis du kunne lide denne artikel, kan du overveje at give drikkepenge for at hjælpe os med fortsat at udgive kvalitetsindhold.




















