Veelgestelde vragen over wisselgeheugen
Inleiding
- Deze "veelgestelde vragen"-pagina (FAQ) is bedoeld voor beginnende Linux-gebruikers.
De veelgestelde vraag is hoe groot moet de partitie voor het wisselgeheugen zijn? En om deze te vergroten, moet er dan een herinstallatie gedaan worden?
- Het gaat hier om simpele antwoorden en er wordt enige achtergrondinformatie gegeven om een beeld te krijgen van het wisselgeheugengebruik.
Kijk voor meer gedetailleerde (Engelstalige) informatie over het gebruik van intern geheugen en wisselgeheugen hier.
Hoeveel wisselgeheugen is nodig?
Bij n MB intern geheugen: tussen n en 2*n MB
Als er voldoende schijfruimte is: 2*n MB.
Waar is wisselgeheugen voor?
Het gebruik van wisselgeheugen was voorheen noodzakelijk als uitbreiding van het interne geheugen: het beschikbare geheugen is de som van het interne geheugen en het wisselgeheugen.
Tegenwoordig beschikken computers over zoveel intern geheugen dat uitbreiding met wisselgeheugen strikt genomen niet meer nodig is.
Er zijn toch 4 redenen om wisselgeheugen te gebruiken:
- Sommige programmatuur gebruikt veel intern geheugen
- Meer geheugen is soms handig
- Optimaal gebruik van het interne geheugen
- De slaapstand (hibernation)
Sommige programmatuur gebruikt veel intern geheugen
Soms gebruiken grote programma's (zoals OpenOffice.org of videobewerkingsoftware) toch al het interne geheugen op. De computer kan dan gebruik maken van het wisselgeheugen als uitbreiding.
Meer geheugen is soms handig
Onvoorziene omstandigheden kunnen en zullen voorkomen (bijvoorbeeld een bug in een programma waardoor het geheugengebruik sterk toeneemt). In die gevallen kan extra wisselgeheugen ervoor zorgen dat er nog iets gedaan kan worden zoals het opsporen van de oorzaak van het probleem of het normaal afsluiten van andere programma's.
Optimaal gebruik van het interne geheugen
Als er een bestand van de schijf wordt gelezen zal Linux dit in het interne geheugen plaatsen en daar zo lang mogelijk vasthouden. Een volgende leesopdracht zal daardoor veel sneller verlopen. Het deel van het interne geheugen dat gebruikt wordt om de toegang tot bestanden te versnellen wordt 'cached memory' genoemd. Dit zorgt voor een enorme snelheidsverbetering (het intern geheugen is duizenden malen sneller dan een schijf).
Het Linux systeem zal geheugen dat niet actief door een programma wordt gebruikt verplaatsen naar het wisselgeheugen om zo meer 'cached memory' te kunnen gebruiken.
De slaapstand (hibernation)
In de slaapstand (in het Engels hibernation of suspend-to-disk genoemd) wordt het interne geheugen in het wisselgeheugen op schijf geplaatst en de machine uitgezet.
Soms ontstaat hier een probleem: tijdens het starten van de computer is er nog geen bestandssysteem actief. Met andere woorden: het is niet mogelijk om te "ontwaken" vanuit een wisselgeheugen-bestand, hiervoor is een wisselgeheugen-partitie nodig.
Is een nieuwe installatie nodig om het wisselgeheugen uit te breiden?
NEE, ZEKER NIET! Vanaf de Linux kernel versie 2.6 is een wisselgeheugen-bestand net zo snel als een wisselgeheugen-partitie (Wikipedia:Paging, LKML).
Hoe kan ik het wisselgeheugen uitbreiden?
Vaak wordt bij wisselgeheugen gedacht aan een aparte partitie die als wisselgeheugen (swap area) is geformatteerd. Waarschijnlijk omdat bij de installatie wordt voorgesteld hiervoor een partitie te maken. Maar ook een bestand is als wisselgeheugen-geheugen te gebruiken. Voor de snelheid maakt het geen verschil of een wisselgeheugen-bestand of een wisselgeheugen-partitie gebruikt wordt.
Het uitbreiden van het wisselgeheugen met een bestand gaat in vier stappen:
- maak een bestand
- formatteer het bestand als wisselgeheugen-bestand
- gebruik het bestand als wisselgeheugen
- gebruik het bestand permanent als wisselgeheugen
Als voorbeeld een uitbreiding met 512 MB wisselgeheugen:
Maak een bestand
Maak een bestand '/mnt/512Mb.swap' van 512 MB groot.
sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512
count=512 geeft aan dat we 512 blokken van bs=1M ofwel 1 MegaBytes willen. Gebruik bijvoorbeeld count=1024 om een bestand van 1GB te maken.
gebruik NIET dd of=/mnt/512Mb.swap bs=1M seek=512 count=0 want hoewel dit in 1 keer een bestand van de gewenste omvang maakt is dit bestand niet altijd als wisselgeheugen-bestand te gebruiken.
Formatteer het bestand als wisselgeheugen-bestand
sudo mkswap /mnt/512Mb.swap
Gebruik het bestand als wisselgeheugen
sudo swapon /mnt/512Mb.swap
- gebruik met de terminal opdracht "swapon -s" om te zien hoeveel wisselgeheugen beschikbaar is.
Gebruik het bestand permanent als wisselgeheugen
Wijzig hiervoor /etc/fstab
gksudo gedit /etc/fstab
Plaats achteraan een regel met de tekst:
/mnt/512Mb.swap none swap sw 0 0
Opslaan en reboot.
Nu het voorbeeld in een terminalscherm:
gebruiker@ubuntu:~$ sudo dd if=/dev/zero of=/mnt/512Mb.swap bs=1M count=512
512+0 records gelezen
512+0 records geschreven
536870912 bytes (537 MB) gekopieerd, 22,0339 s, 24,4 MB/s
gebruiker@ubuntu:~$ sudo mkswap /mnt/512Mb.swap
Instellen van wisselgeheugen, versie 1, grootte = 536866 kB
geen label, UUID=ed7653a1-829c-4d03-8ba7-4c8f194b1661
gebruiker@ubuntu:~$ sudo swapon /mnt/512Mb.swap
gebruiker@ubuntu:~$ swapon -s
Filename Type Size Used Priority
/mnt/512Mb.swap file 524280 0 -1
gebruiker@ubuntu:~$ gksudo gedit /etc/fstab
##### toevoegen: /mnt/512Mb.swap none swap sw 0 0
gebruiker@ubuntu:~$ free
total used free shared buffers cached
Mem: 515060 495344 19716 0 4712 265956
-/+ buffers/cache: 224676 290384
Swap: 524280 4 524276
##### Na het starten van een aantal programma's
gebruiker@ubuntu:~$ free
total used free shared buffers cached
Mem: 515060 504788 10272 0 3232 147204
-/+ buffers/cache: 354352 160708
Swap: 524280 73744 450536
#####Een herstart om te kijken of de aanpassing in /etc/fstab goed is
gebruiker@ubuntu:~$ free
total used free shared buffers cached
Mem: 515060 480820 34240 0 15000 265780
-/+ buffers/cache: 200040 315020
Swap: 524280 0 524280
Prioriteit van wisselgeheugens
Linux kent aan wisselgeheugens een prioriteit toe. Deze kunnen worden bekeken met
cat /proc/swaps
Deze prioriteiten kunnen worden gewijzigd door een aanpassing van bestand "/etc/fstab". Voor meer informatie zie:
man swapon
Prestatie "tunen" met swappiness
De "swappiness"-instelling bepaalt het gedrag van de Linux-kernel om processen van intern geheugen te verplaatsen naar het wisselgeheugen op schijf. Maar pas op, omdat een schijf veel trager is dan het intern geheugen, kan veel verplaatsen uit het interne geheugen leiden tot een slechte responstijd.
- De swappiness kan een waarde hebben tussen 0 en 100
- Bij swappiness=0 zal de Linux kernel zo lang mogelijk wachten met het verplaatsen van geheugen naar het wisselgeheugen
- Bij swappiness=100 zal de Linux kernel zo veel mogelijk geheugen verplaatsen naar het wisselgeheugen
- Standaard wordt Ubuntu geleverd met een instelling van swappiness=60
Vermindering van de standaardwaarde van swappiness zal mogelijk de algemene prestaties voor een typisch Ubuntu desktop installatie kunnen verbeteren. In sommige gevallen wordt een waarde van swappiness = 10 aanbevolen. Omdat het afhankelijk is van de individuele configuratie en gebruik zal dit proefondervindelijk vastgesteld moeten worden.
- Opmerking: Ubuntu server-installaties hebben andere prestatie-eisen dan desktopsystemen en de standaard waarde van 60 is hiervoor waarschijnlijk de beste instelling.
Hoe kan de swappiness-instelling worden bekeken?
cat /proc/sys/vm/swappiness
Hoe kan de swappiness-instelling worden aangepast?
De instelling kan tijdelijk (tot de volgende herstart van het systeem) naar een waarde van 10 worden gezet met de opdracht:
sudo sysctl vm.swappiness=10
Voor een definitieve wijziging van de swappiness waarde moet bestand /etc/sysctl.conf worden aangepast
gksudo gedit /etc/sysctl.conf
Zoek naar de vm.swappiness waarde om aan te passen of voeg de volgende regel toe aan het bestand:
vm.swappiness=10
Opslaan en herstarten.
Over deze wiki
Dit is een vrije vertaling van https://help.ubuntu.com/community/SwapFaq Meer gedetailleerde (Engelstalige) informatie is hier hier te vinden












