web analytics

Maak kennis met je swap partitie

Print Friendly, PDF & Email

Wanneer je een Linux distro installeert zal het install programma bijna altijd naast de Linux partities een swap partitie toevoegen aan je harde schijf.

Maar wat is die swap partitie feitelijk en waartoe dient deze?

Wat is swap?

Wanneer een multitasking besturingssysteem al het bestaande fysieke RAM geheugen opgesoupeerd heeft, kan het geen nieuwe processen meer starten of meer geheugen toekennen aan de bestaande. Om dat probleem op te lossen wordt een speciale ruimte op je lokaal opslagmedium (meestal je harde schijf) voorzien als tijdelijke opslagplaats voor die processen die op dat moment niet draaien.
swappiness-featured
Het besturingssysteem “swapt” (to swap = wisselen, omruilen, veranderen van plaats) het niet-actieve proces uit het RAM geheugen naar de harde schijf. Zo maakt het plaats vrij voor nieuwe processen. Wanneer het niet-actieve proces terug actief wordt, zal het terug geplaatst worden van de harde schijf naar het RAM geheugen. Deze procedure wordt in computer jargon ‘swapping’ genoemd.

Is een swap ruimte echt nodig?

Puur technisch gesproken kan Linux prima zonder swap ruimte draaien. Echter, in het geval waar je plots geen RAM geheugen meer hebt, zal het systeem in kernel panic mode komen en stoppen.

"Kernel-panic" by Kevin - http://flickr.com/photos/kevincollins/74279815/. Licensed under CC BY 2.0 via Commons

“Kernel-panic” by Kevin – http://flickr.com/photos/kevincollins/74279815/. Licensed under CC BY 2.0 via Commons

Moet je om praktische reden een swap ruimte voorzien?

Ja. alhoewel het swappen je systeem vertraagt (lezen en schrijven van-en-naar een harde schijf is veel trager dan in RAM) en meer RAM geheugen de beste oplossing zou zijn, zijn er situaties waarbij een swap ruimte toch nodig blijkt. Als je bijvoorbeeld je systeem opstart (boot) kunnen er processen zijn die draaien (en dus systeemgeheugen gebruiken) maar dan voor een lange periode in slaaptoestand komen. Of geheugen dat werd toegekend en naar waar er gegevens werden geschreven, maar dan nooit meer gebruikt worden. In deze situaties zal het swapping algoritme starten met het migreren van die geheugen ruimte naar de harde schijf om zo terug ruimte vrij te maken in je RAM. Daardoor heb je steeds het maximale aan RAM beschikbaar wat de performantie van je systeem ten goede komt.

swap-partition-in-gparted
Bij machines die niet genoeg geheugen hebben om alles in RAM te draaien, is de swapruimte essentieel.

Om volledig te zijn moet gezegd worden dat Linux ook een subsysteem heeft ‘Out-Of-Memory Killer (OOM)’ genaamd , dat in plaats van de kernel te stoppen wanneer het zonder geheugen valt, begint met het geforceerd afsluiten (kill) van processen om terug vrije geheugenruimte te verkrijgen. De modus operandi van dat subsysteem is instelbaar.

Hoeveel swap ruimte moet ik toekennen?

Er is geen harde regel die je zegt hoeveel ruimte je moet voorzien, maar gezien harde schijven ruimte zat hebben is het beter om veel dan wel weinig ruimte te voorzien. Ook hangt het er van af welke toepassingen je draait. Videobewerking en Fotobewerking gebruiken veel meer ruimte dan Tekstverwerking.
Ideaal zou je als regel kunnen stellen dat de swap ruimte twee tot driemaal je intern geheugen moet zijn. Bij een systeem van 4 GB, maak je dus minstens een swap ruimte van 8 Gb aan.

Swap ruimte toevoegen zonder je huidige swapruimte aan te passen

Probleem is dat je meestal al een swapruimte op je systeem hebt. De grootte ervan werd ofwel door het systeem ofwel door de administrator bepaald en kan in bepaalde niet voldoende zijn om vlot met je systeem te werken.

Om te weten hoe groot je huidige swapruimte is en hoeveel er momenteel in gebruik is, gebruik je volgend commando:

free -m

Terminal_118

Je hebt zonet eens gekeken hoe groot je swap ruimte is op je systeem en die 972 MB blijkt toch wel wat aan de kleine kant. Meer swapruimte toekennen is dus wel wenselijk.
Het is niet nodig om via GParted met partities te gaan spelen, daar Linux je toelaat om swapruimte toe te kennen aan een bestaand systeem.
Hieronder vind je de uitleg om een extra swapbestand aan te maken op je huidge harde schijf.

Stap #1: Login als Root gebruiker

Open een terminal en word root door te tikken:

$ su –

Je prompt-tekentje verandert in een # tekentje

Stap #2: Maak het swapbestand aan

Maak het swapbestand aan met het fallocate commando.

Bv: een 2GB groot bestand aanmaken

# fallocate -l 2G /swapfile1

Stap #3: Beveilig het swapbestand

De juiste rechten aanmaken om veilheidsredenen:

# chown root:root /swapfile1
# chmod 0600 /swapfile1

Het commando hierboven maakt dat enkel de root gebruiker gebruik kan maken van het bestand.

Stap #4: Maak de Linux swapruimte aan

Onderliggend commando maakt van het lege /swapfile1-bestand een swapruimte:

# mkswap /swapfile1

Stap #5: Activeer het swapbestand

Tenslotte activeer je de swapruimte via:

# swapon /swapfile1

Terminal output

Terminal_121

Stap #6: Bijwerken /etc/fstab file

Om /swapfile1 te activeren na iedere reboot voeg je onderstaande lijn toe aan /etc/fstab. Open het bestand via de teksteditor naar keuze.

Voeg volgende lijn toe:

/swapfile1 none swap sw 0 0

Bewaar /etc/fstab en sluit de terminal door 2 x exit + {Enter} te tikken.

Swapbestand verwijderen

Deactiveer je swapbestand

sudo swapoff /swapfile1

Verwijder het bestand

sudo rm /swapfile1

Beoordeling

4 Reacties

  1. Landschoot Georges

    Bij een SSD wordt aangeraden geen partities te maken om de volledige schijf zoveel mogelijk te gebruiken.
    Hoeveel zou de grootte van de SWAP partitie moeten zijn bij SSD of is het beter geen swap partitie te maken?

    Reageren
    1. eijie (Auteur bericht)

      Hangt er allemaal vanaf hoeveel RAM je in je systeem hebt. Heb je 16GB RAM dan is een swap niet nodig. Heb je maar 2 GB RAM dan heb je wel een Swap nodig.
      Een SSD is natuurlijk niet het ideale medium om een swap op te draaien. Indien je het toch doet, moet je de ‘swappiness’ op 1 of 0 zetten.
      Heb je een tweede medium in je systeem, bijvoorbeeld een gewone SATA schijf, dan kun je daarop de swap zetten.

      Reageren
  2. franz ulenaers

    Alain,
    Is het verstandig om meerdere swapfiles te gebruiken ?
    Zo ja in welke gevallen .
    Windows 7, 8 of 10 maakt gebruik van zijn pagefile.sys, is dit gelijkaardig als de swapfile op linux of is dit beter op linux dan op windows ?
    Met veel interesse kijk ik altijd naar je blogs !
    Hartelijk dank !

    Reageren
    1. eijie (Auteur bericht)

      Franz,

      het is enkel interessant als je originele swapfile te klein is. De totale grootte van je swapruimte moet 2x je RAM zijn als je 4GB RAM of minder hebt. Als je meer dan 4GB habt zou ik 1 x je RAM nemen.
      Hoe Windows het doet weet ik niet en speelt voor mij, als Linux gebruiker, geen rol. Mijn Windows 7 kruipt vooruit sinds dag 1 en nu 4 jaar later is het nog niet beter geworden. Maar voor die 5x per jaar dat ik Win7 opstart, kan ik er wel mee leven hoor.

      Reageren

Geef een reactie

%d bloggers liken dit: