När du installerar Linux, kommer installationsprocessen sannolikt att lägga till en bytpartition till hårddisken tillsammans med partitionerna för Linux själv. Men vad används den här bytpartitionen för och är det verkligen nödvändigt?

Vad är byte?

När ett multitasking-operativsystem går ur fysiskt minne, kan det inte starta nya processer eller tilldela mer minne till befintliga processer. För att lösa detta problem sätts ett speciellt block av utrymme på lokal lagring (ofta hårddisken) åt sidan för att fungera som ett tillfälligt hållområde för processer som inte körs. OS "byter" den inaktiva processen ut ur minnet och vidare till hårddisken. Detta frigör minne för nytt arbete. När den inaktiva processen blir aktiv igen kommer den att bytas tillbaka från lokal lagring till minnet. Detta förfarande kallas byte.

Är bytesplats verkligen nödvändigt?

Är bytesplats tekniskt nödvändigt? Nej. Linux kan fungera utan det och i vissa situationer, som inbyggda lösningar, kan Linux köras utan byte. Om operativsystemet kommer i en situation där den inte har tillräckligt med minne kommer det att panik och stoppa. Om det finns tillräckligt med fysiskt RAM, kör maskinen utan några problem.

Är bytesplats praktiskt taget nödvändigt? Ja. Även om byte saktar ner en dator (eftersom läsning och skrivning till en hårddisk är mycket långsammare än att komma åt RAM) och med så mycket fysiskt minne ombord är den bästa lösningen för att undvika byte, finns det legitima situationer där byte är önskvärt. Till exempel, under systemstart kan det finnas processer som körs (och så förbrukar systemminne) men sover sedan effektivt under mycket långa perioder. Eller minne som allokeras, skrivs till och används aldrig igen. I dessa situationer börjar bytesalgoritmen migrera det här minnet till hårddisken och frigöra värdefullt systemminne. Detta säkerställer faktiskt att maximal RAM-minne alltid är tillgänglig och så ökar prestanda.

På maskiner som inte har tillräckligt med fysiskt RAM för att allt ska ligga i minnet är det viktigt att använda bytesutrymme!

För fullständighet är det värt att nämna att Linux också har ett delsystem som kallas OOM (Out of Memory Murderer), vilket istället för att stoppa kärnan när det går ur minne kommer att börja döda processer för att frigöra resurser. Dess handlingar kan konfigureras.

Hur mycket bytesutrymme ska jag fördela?

Det finns ingen absolut regel och eftersom hårddiskutrymme är billigt (dollar per gigabyte) är det bättre att fördela för mycket än för lite utrymme. Som en tumregel bör du ha två eller tre gånger så mycket som bytesplatsen som fysiskt minne.

Lägger till swap utan att expandera swap-partitionen

Det finns två sätt att lägga till växlingsutrymme i ett system utan att ändra den befintliga swap-partitionen. Ett sätt är att använda en swap partition på en annan enhet, den andra är att använda en swap-fil.

För att använda en annan hårddisk, skapa en partition av typen "Linux swap" (kod 82) och kör sedan " mkswap " mkswap att förbereda swap space:

 mkswap / dev / sdb2 

Var /dev/sdb2 är namnet på den partition du skapade. swapon kommandot om du swapon använda swapon :

 swapon / dev / sdb2 

Använd " swapon -s " för att få en lista över de för närvarande använda swap-utrymmena. För att permanent byta ut växlingsutrymme till systemet måste du redigera /etc/fstab och lägga till en rad som liknar detta:

 / dev / sdb2 ingen swap sw 0 0 

Om ditt system använder unika identifierare för att namnge skivorna, använd kommandot blkid att få en lista över ids för enheterna. Linjen för att montera växlingsutrymmet i /etc/fstab ser då ut så här:

 UUID = 036da155-1ea1-4392-b8d4-700f65aa1ead Inget byte sw 0 0 

För att använda en fil för byte, skapa en stor tom fil (med dd ) på filsystemet som du vill använda för byte. Om du till exempel vill skapa en 1GB-fil skriver du:

 dd om = / dev / noll av = / butik / swapfil bs = 1024 count = 1048576 

Where /store/swapfile är sökvägen till swap-filen på det önskade filsystemet.

Precis som med den extra swap-partitionen måste filen nu förberedas med mkswap och sedan användas med swapon . Det måste också läggas till i /etc/fstab . Förfarandet är exakt detsamma som ovan, men du måste använda /store/swapfile stället för /dev/sdb2 som swap space parameter.

swappiness

Linuxkärnan kan tweaked för att definiera hur aggressivt det ska försöka byta processer ur minnet. Denna tendens styrs av en swappiness kallas swappiness . En swappiness av 0 betyder att kärnan kommer att undvika att byta så mycket som möjligt, medan 100 betyder att kärnan kommer att vara aggressiv i hur den använder bytesplatsen. Standardinställningen för många Linux-distributioner är 60. Det är möjligt att ändra numret dynamiskt med det här kommandot:

 sudo sysctl vm.swappiness = 10 

För att permanent ställa in ett värde måste du ändra (eller lägga till, om den inte existerar) vm.swappiness variabeln i filen /etc/sysctl.conf .

Låt oss veta om du har frågor om byte i Linux.