Når du installerer Linux, vil installasjonsprosessen sannsynligvis legge til en byttepartisjon på harddisken sammen med partisjonene for Linux selv. Men hva er denne byttepartisjonen brukt til og er det virkelig nødvendig?

Hva er bytte?

Når et multitasking-operativsystem går tom for fysisk minne, kan den ikke starte nye prosesser eller tildele mer minne til eksisterende prosesser. For å løse dette problemet settes en spesiell blokk av plass på lokal lagring (ofte harddisken) til side for å fungere som et midlertidig holdingsområde for prosesser som ikke kjører. OS "bytter" den inaktive prosessen ut av minnet og videre til harddisken. Dette frigjør minne for nytt arbeid. Når den inaktive prosessen blir aktiv igjen, blir den byttet tilbake fra lokal lagring til minnet. Denne prosedyren kalles bytte.

Er bytteplass virkelig nødvendig?

Er bytteplass teknisk nødvendig? Nei. Linux kan fungere uten det, og i noen situasjoner, som innebygde løsninger, kan Linux kjøres uten bytte. Hvis operativsystemet kommer inn i en situasjon der den ikke har nok minne, vil det bli panikk og stoppe. Hvis det er nok fysisk RAM, kjører maskinen uten problemer.

Er bytteplass praktisk talt nødvendig? Ja. Selv om bytte senker en datamaskin (som lese og skrive til en harddisk er mye tregere enn å få tilgang til RAM) og å ha så mye fysisk minne ombord, er den beste løsningen for å unngå bytte, det er legitime situasjoner der bytte er ønskelig. For eksempel, under systemstart, kan det være prosesser som kjører (og så spiser systemminne), men deretter sover effektivt i svært lange perioder. Eller minne som er tildelt, skrevet til og deretter aldri brukt igjen. I disse situasjonene vil byttealgoritmen begynne å migrere dette minnet til harddisken og dermed frigjøre verdifull systemminne. Dette sikrer faktisk at maksimalt antall RAM er tilgjengelig til enhver tid, og dermed øker ytelsen.

På maskiner som ikke har nok fysisk RAM for alt å bo i minnet, er det derfor viktig å bruke bytteplass.

For fullstendig er det verdt å nevne at Linux også har et delsystem kalt OOM (Out of Memory Killer), som i stedet for å stoppe kjernen når den går tom for minnet, begynner å drepe prosesser for å frigjøre ressurser. Dens handlinger kan konfigureres.

Hvor mye bytteplass skal jeg tildele?

Det er ingen absolutt regel og siden harddiskplass er billig (dollar per Gigabyte) er det bedre å allokere for mye enn for lite plass. Som en tommelfingerregel, bør du ha to eller tre ganger hvor mye bytteplass som fysisk minne.

Legger til bytte uten å utvide swap-partisjonen

Det er to måter å legge til bytteplass til et system uten å endre den eksisterende swap-partisjonen. En måte er å bruke en byttepartisjon på en annen stasjon, den andre er å bruke en byttefil.

For å bruke en annen harddisk, opprett en partisjon av typen "Linux swap" (kode 82) og kjør deretter kommandoen " mkswap " for å forberede bytteplassen:

 mkswap / dev / sdb2 

Hvor /dev/sdb2 er navnet på partisjonen du opprettet. Bruk swapon kommandoen for å bruke bytteplassen umiddelbart:

 swapon / dev / sdb2 

Bruk " swapon -s " for å få en liste over de for tiden brukte bytteområdene. For å legge til bytteplassen permanent til systemet, må du redigere filen /etc/fstab og legge til en linje som ligner dette:

 / dev / sdb2 ingen bytte sw 0 0 

Hvis systemet bruker unike identifikatorer for å navngi diskene, bruk kommandoen blkid å få en liste over ids for enhetene. Linjen for å montere bytteområdet i /etc/fstab vil da se noe ut som dette:

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

For å bruke en fil for bytte, opprett en stor tom fil (ved hjelp av dd ) på filsystemet du vil bruke til bytte. For eksempel, for å lage en 1GB-fil, skriv:

 dd hvis = / dev / null av = / store / swapfile bs = 1024 teller = 1048576 

Hvor /store/swapfile er banen til byttefilen på ønsket filsystem.

Som med den ekstra swap-partisjonen, må filen nå utarbeides med mkswap og deretter brukes med swapon . Det må også legges til filen /etc/fstab . Prosedyren er nøyaktig den samme som ovenfor, men du må bruke /store/swapfile stedet for /dev/sdb2 som swap space parameteren.

Swappiness

Linux-kjernen kan tweaked for å definere hvor aggressivt det skal forsøke å bytte prosesser ut av minnet. Denne tendensen styres av en kjernevariabel som kalles swappiness . En swappiness på 0 betyr at kjernen vil unngå å bytte så mye som mulig, mens 100 betyr at kjernen vil være aggressiv i hvordan den bruker bytteplassen. Standardinnstillingen for mange Linux-distribusjoner er 60. Det er mulig å endre nummeret dynamisk ved hjelp av denne kommandoen:

 sudo sysctl vm.swappiness = 10 

For å permanent angi en verdi, må du endre (eller legge til, hvis den ikke eksisterer) vm.swappiness variabelen i filen /etc/sysctl.conf .

Gi oss beskjed hvis du har spørsmål om bytte i Linux.