Wanneer u Linux installeert, voegt het instellingsproces waarschijnlijk een swappartitie toe aan de harde schijf, samen met de partities voor Linux zelf. Maar waar wordt deze swap-partitie voor gebruikt en is het echt nodig?

Wat is ruilen?

Wanneer een multitasking-besturingssysteem geen fysiek geheugen meer heeft, kan het geen nieuwe processen starten of meer geheugen toewijzen aan bestaande processen. Om dit probleem op te lossen, wordt een speciaal blok van ruimte op de lokale opslag (vaak de harde schijf) gereserveerd om te fungeren als tijdelijk opslaggebied voor processen die momenteel niet worden uitgevoerd. Het besturingssysteem "wisselt" het inactieve proces uit het geheugen en naar de harde schijf. Dit maakt geheugen vrij voor nieuw werk. Wanneer het inactieve proces weer actief wordt, wordt het teruggezet van de lokale opslag naar het geheugen. Deze procedure staat bekend als swappen.

Is swap space echt nodig?

Is swapspace technisch noodzakelijk? Nee. Linux kan zonder en in sommige situaties, zoals embedded oplossingen, kan Linux zonder swap worden uitgevoerd. Als het besturingssysteem in een situatie raakt waarin het niet genoeg geheugen heeft, zal het in paniek raken en stoppen. Als er voldoende fysiek RAM-geheugen is, functioneert het apparaat zonder problemen.

Is swapspace praktisch noodzakelijk? Ja. Hoewel het verwisselen van een computer langzamer gaat (aangezien lezen en schrijven naar een harde schijf veel langzamer gaat dan het benaderen van RAM) en het hebben van zoveel fysiek geheugen aan boord de beste oplossing is om ruilen te voorkomen, zijn er legitieme situaties waarin swappen wenselijk is. Tijdens het opstarten van het systeem kunnen er bijvoorbeeld processen actief zijn (en dus systeemgeheugen verbruiken), maar dan effectief slapen gedurende zeer lange perioden. Of geheugen dat is toegewezen, is geschreven en vervolgens nooit opnieuw is gebruikt. In deze situaties zal het omwisselingsalgoritme dit geheugen naar de harde schijf gaan migreren en zo waardevolle systeemgeheugens vrijmaken. Dit zorgt er in feite voor dat de maximale hoeveelheid RAM altijd beschikbaar is en dus de prestaties verbetert.

Op machines die niet genoeg fysiek RAM-geheugen hebben zodat alles in het geheugen kan worden opgeslagen, is het gebruik van swapspace essentieel!

Voor de volledigheid is het vermeldenswaard dat Linux ook een subsysteem heeft dat de Out-Of-Memory Killer (OOM) wordt genoemd, en dat in plaats van de kernel te stoppen wanneer het geheugen vol raakt, processen zullen worden gedood om bronnen vrij te maken. De acties zijn configureerbaar.

Hoeveel swap-ruimte moet ik toewijzen?

Er is geen absolute regel en aangezien de ruimte op de harde schijf goedkoop is (dollar per Gigabyte) is het beter om te veel dan te weinig ruimte toe te wijzen. Als vuistregel moet je twee of drie keer de hoeveelheid swapspace als fysiek geheugen hebben.

Een swap toevoegen zonder de swappartitie uit te breiden

Er zijn twee manieren om swapspace aan een systeem toe te voegen zonder de bestaande swappartitie te wijzigen. Eén manier is om een ​​swap-partitie op een ander station te gebruiken, het andere is om een ​​wisselbestand te gebruiken.

Als u een andere harde schijf wilt gebruiken, maakt u een partitie van het type "Linux-swap" (code 82) en voert u vervolgens de opdracht " mkswap " uit om de swapspace voor te bereiden:

 mkswap / dev / sdb2 

Waar /dev/sdb2 is de naam van de partitie die u hebt gemaakt. Gebruik onmiddellijk de opdracht " swapon " om de swap-ruimte te gebruiken:

 swapon / dev / sdb2 

Gebruik " swapon -s " om een ​​lijst te krijgen van de momenteel gebruikte swap-spaces. Om de swapruimte permanent aan het systeem toe te voegen, moet u het bestand /etc/fstab bewerken en een soortgelijke regel toevoegen:

 / dev / sdb2 none swap sw 0 0 

Als uw systeem unieke ID's gebruikt om de schijven een naam te geven, gebruikt u de opdracht blkid om een ​​lijst met id's voor de apparaten te krijgen. De regel om de swapspace in /etc/fstab te mounten zou er dan ongeveer zo uitzien:

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

Om een ​​bestand voor verwisseling te gebruiken, maakt u een groot leeg bestand (met behulp van dd ) op het bestandssysteem dat u wilt gebruiken om te wisselen. Als u bijvoorbeeld een bestand van 1 GB wilt maken, typt u:

 dd if = / dev / zero of = / store / swapfile bs = 1024 count = 1048576 

Waar /store/swapfile is het pad naar het swapbestand op het gewenste bestandssysteem.

Net als bij de aanvullende swappartitie, moet het bestand nu worden voorbereid met mkswap en vervolgens worden gebruikt met swapon . Het moet ook worden toegevoegd aan het bestand /etc/fstab . De procedure is exact hetzelfde als hierboven, maar je moet /store/swapfile plaats van /dev/sdb2 als de parameter swapspace.

swappiness

De Linux-kernel kan worden aangepast om te definiëren hoe agressief het moet proberen om processen uit het geheugen te halen. Deze neiging wordt beheerst door een swappiness die swappiness . Een swappiness van 0 betekent dat de kernel zoveel mogelijk zal vermijden om te swappen, terwijl 100 betekent dat de kernel agressief zal zijn in het gebruik van de swapspace. De standaardinstelling voor veel Linux-distributies is 60. Het is mogelijk om het nummer dynamisch te wijzigen met deze opdracht:

 sudo sysctl vm.swappiness = 10 

Als u een waarde permanent wilt instellen, moet u de variabele vm.swappiness in het bestand /etc/sysctl.conf wijzigen (of toevoegen als deze niet bestaat).

Laat het ons weten als je vragen hebt over swap in Linux.