Vad du behöver veta om byte av partitioner på Linux
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.