Når du installerer Linux, vil installationsprocessen sandsynligvis føje en swap partition til harddisken sammen med partitionerne til Linux selv. Men hvad bruges denne swap partition til og er det virkelig nødvendigt?

Hvad er swap?

Når et multitaskingsoperativsystem løber tør for fysisk hukommelse, kan den ikke starte nye processer eller tildele mere hukommelse til eksisterende processer. For at løse dette problem er en speciel blok plads på det lokale lager (ofte harddisken) afsat til at fungere som et midlertidigt holdingsområde for processer, der ikke kører i øjeblikket. OS'et "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 byttet tilbage fra det lokale lager til hukommelsen. Denne procedure kaldes bytte.

Er bytteplads virkelig nødvendigt?

Er bytteplads teknisk nødvendigt? Nej. Linux kan arbejde uden det, og i nogle situationer, som indlejrede løsninger, kan Linux køres uden bytte. Hvis operativsystemet kommer ind i en situation, hvor den ikke har nok hukommelse, vil det blive panik og stoppe. Hvis der er nok fysisk RAM, kører maskinen uden problemer.

Er bytteplads praktisk taget nødvendigt? Ja. Selvom bytte sænker en computer (som læsning og skrivning til en harddisk er meget langsommere end at få adgang til RAM) og at have så meget fysisk hukommelse om bord, er den bedste løsning for at undgå bytte, er der legitime situationer, hvor bytte er ønskeligt. For eksempel under systemstart kan der være processer, der kører (og så forbruger systemhukommelse), men så sover effektivt i meget lange perioder. Eller hukommelse, der er allokeret, skrevet til og derefter aldrig brugt igen. I disse situationer begynder swapping algoritmen at migrere denne hukommelse til harddisken og frigøre værdifuld systemhukommelse. Dette sikrer faktisk, at det maksimale antal RAM er til rådighed til enhver tid og dermed øger ydeevnen.

På maskiner, der ikke har nok fysisk RAM til alt for at opholde sig i hukommelsen, er brugen af ​​bytteplads vigtigt!

For fuldstændighed er det værd at nævne, at Linux også har et delsystem kaldet Out-of-Memory Killer (OOM), som i stedet for at stoppe kernen, når den løber tør for hukommelsen, begynder at dræbe processer for at frigøre ressourcer. Dets handlinger kan konfigureres.

Hvor meget bytteplads skal jeg tildele?

Der er ingen absolut regel, og da harddiskpladsen er billig (dollar pr. Gigabyte), er det bedre at allokere for meget end for lidt plads. Som en tommelfingerregel skal du have to eller tre gange mængden af ​​bytteplads som fysisk hukommelse.

Tilføjelse af swap uden at udvide swap partitionen

Der er to måder at tilføje swap space til et system uden at ændre den eksisterende swap partition. En 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 kommandoen " mkswap " for at forberede swap space:

 mkswap / dev / sdb2 

Hvor /dev/sdb2 er navnet på den partition, du oprettede. For at bruge swap space bruger du straks " swapon " kommandoen:

 swapon / dev / sdb2 

Brug " swapon -s " for at få en liste over de aktuelt brugte swap-rum. For permanent at tilføje swap space til systemet, skal du redigere filen /etc/fstab og tilføje en linje der ligner dette:

 / dev / sdb2 ingen swap sw 0 0 

Hvis dit system bruger unikke identifikatorer til at navngive diskene, skal du bruge kommandoen blkid til at få en liste over ids for enhederne. Linjen til at montere swaprummet i /etc/fstab vil så se noget sådan ud:

 UUID = 036da155-1ea1-4392-b8d4-700f65aa1ead ingen swap sw 0 0 

Hvis du vil bruge en fil til bytte, skal du oprette en stor tom fil (ved hjælp af dd ) på det filsystem, du vil bruge til bytte. For eksempel at oprette en 1GB-fil ved at skrive:

 dd if = / dev / zero of = / store / swapfile bs = 1024 tæller = 1048576 

Hvor /store/swapfile er vejen til swapfilen på det ønskede filsystem.

Som med den ekstra swap-partition skal filen nu udarbejdes med mkswap og derefter bruges med swapon . Det skal også tilføjes til filen /etc/fstab . Proceduren er nøjagtig den samme som ovenfor, men du skal bruge /store/swapfile stedet for /dev/sdb2 som swap space parameteren.

Swappiness

Linux-kernen kan tweaked for at definere, hvor aggressivt det skal forsøge at bytte processer ud af hukommelsen. Denne tendens styres af en kernevariabel kaldet swappiness . En swappiness på 0 betyder at kernen undgår 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 antallet dynamisk ved hjælp af denne kommando:

 sudo sysctl vm.swappiness = 10 

For permanent at indstille en værdi skal du ændre (eller tilføje, hvis den ikke findes) vm.swappiness variablen i filen /etc/sysctl.conf .

Lad os vide, om du har spørgsmål om bytte i Linux.