Swap en zswap: stel het virtuele wisselgeheugen goed in


Terug naar de thuispagina


Inhoud van deze pagina:

Algemeen

1. Een bestand voor het virtuele wisselgeheugen (swap) wordt standaard aangemaakt op uw harde schijf, wanneer u Linux Mint installeert.

Het is een handig hulpmiddel om het RAM-geheugen van uw computer tijdelijk te ontlasten, wanneer de druk daarop te groot wordt. Uw Linux zal in zo'n geval een deel van de inhoud van het RAM-geheugen, tijdelijk "parkeren" in het wisselgeheugen op de harde schijf.

Hieronder leest u, hoe u het wisselgeheugen het beste kunt instellen.

De absolute topper: schakel zswap in

2. U kunt doorgaans een behoorlijke snelheidswinst boeken door zswap in te schakelen. Vooral op oudere machines, maar ook op nieuwe machines pakt zswap voordelig uit, al is daarop de snelheidswinst wel kleiner. Daarom is inschakeling van zswap in alle gevallen aan te raden. Hieronder leg ik uit hoe u dat kunt doen.

Eerst wat achtergrondinformatie:

De functie zswap is een systeemkernfunctie die een gecomprimeerde tijdelijke RAM-opslag biedt voor wisselgeheugenpagina's. Pagina's die anders zouden worden weggeschreven naar de harde schijf, worden daarin samengeperst en opgeslagen in een opslagruimte in het RAM-geheugen.

Wanneer die opslagruimte vol is of wanneer het RAM-geheugen is uitgeput, wordt de oudste pagina gedecomprimeerd en alsnog weggeschreven naar het swapbestand of de swappartitie op de harde schijf, alsof die pagina nooit in de zswap had gestaan. Daarna wordt die pagina verwijderd uit de zswap.

Standaard is zswap uitgeschakeld. Wanneer ingeschakeld, gebruikt zswap standaard maximaal 20 procent van het RAM-geheugen (verhoog dit percentage niet boven de 40, want dat zou te weinig RAM-geheugen kunnen overlaten voor algemeen gebruik).

De prijs die u betaalt voor het inschakelen van zswap is tweeledig:

- Uw processor wordt zwaarder belast, want die moet meer gaan comprimeren (inpakken) en decomprimeren (uitpakken).

- Als het systeem de zswap-opslag heeft gevuld, zal het alsnog op de harde schijf moeten gaan swappen. Met een blok aan het been: het stuk geheugen dat opgeofferd is aan zswap.

Daarom raad ik het inschakelen van zswap alleen aan in combinatie met een swapneiging die is verlaagd naar 30 (zie punt 3 op deze pagina).

Nu de handleiding:

Inschakelen van zswap gaat als volgt (met superieure snelle drievoudige compressie, dankzij lz4 en z3fold):

a. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

b. Kopieer en plak de volgende regel in het terminalvenster:

xed admin:///etc/default/grub

Druk op Enter.

(de drie achtereenvolgende schuine strepen zijn geen tikfout; dat hoort zo)

c. Nu opent zich een instellingenbestand. Zoek daarin de regel:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

Die regel gaat u aanvullen met enkele nieuwe parameters. De makkelijkste aanpak is deze: vervang die hele regel door deze blauwe regel (dit is één lange regel, dus breek hem niet af, en gebruik kopiëren en plakken voor het overbrengen!):


Computers met slechts 4 GB RAM-geheugen of minder (40 % zswap):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.max_pool_percent=40 zswap.zpool=z3fold zswap.compressor=lz4"


Computers met meer dan 4 GB RAM-geheugen (standaard 20 % zswap):

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash zswap.enabled=1 zswap.zpool=z3fold zswap.compressor=lz4"

(als u deze regel toch zelf overtikt: let op dat de "l" in "lz4" een kleine letter L is)

d. Sla het gewijzigde tekstbestand op en sluit het.

e. Genereer nu een nieuw Grubmenu waarin uw wijzigingen daadwerkelijk zijn toegepast. Kopieer en plak daartoe de volgende regel in het terminalvenster:

sudo update-grub

Druk op Enter.

f. De module voor de functie z3fold is standaard niet aanwezig in het initramfs bij het opstarten, zodat die niet automatisch wordt geladen. Aangezien z3fold (drievoudige compressie) beter is dan de standaard zbud (tweevoudige compressie), wilt u dat als volgt veranderen:

In de terminal (Kopieer en plak om de onderstaande opdrachtregel over te brengen):

xed admin:///etc/initramfs-tools/modules

Druk op Enter.

Onderaan de tekst in dat tekstbestand creëert u een nieuwe regel met z3fold erin, zodat het wordt:

# List of modules that you want to include in your initramfs.
# They will be loaded at boot time in the order below.
#
# Syntax: module_name [args ...]
#
# You must run update-initramfs(8) to effect this change.
#
# Examples:
#
# raid1
# sd_mod
z3fold


Sla de wijzigingen op en sluit de tekstbewerker.

g. Dan in de terminal:

sudo update-initramfs -u

Druk op Enter.

h. Herstart uw computer.

i. Kijk het resultaat na met deze terminalopdracht:

dmesg | grep zswap

Die zou in de laatste regel moeten melden:

zswap: loaded using pool lz4/z3fold

j. Het percentage van uw RAM-geheugen dat zswap gebruikt, kunt u nakijken met de volgende terminalopdracht:

cat /sys/module/zswap/parameters/max_pool_percent

Die zou 20 moeten melden, wat de standaard is, of 40. Zoals reeds gezegd: verhoog dat percentage liever niet boven de 40, want hogere percentages zouden negatieve gevolgen kunnen hebben.

Waarschuwing: er is ook een RAM-swapfunctie genaamd zRam. Installeer die niet, want die is contraproductief in combinatie met zswap!

Bij ingeschakelde zswap: verlaag de swapneiging

3. Standaard heeft Mint helaas een te grote neiging om gebruik te gaan maken van de swap (het wisselgeheugen op de harde schijf). Althans wanneer u zswap heeft ingeschakeld, wat ik in alle gevallen aanraad (zie punt 2).

Daardoor spreekt Mint, vooral bij weinig RAM-geheugen, de swap te snel aan. Die schrijfacties op de harde schijf kunnen Mint vertragen. Virtueel geheugen op de harde schijf is nu eenmaal langzamer dan het "echte" RAM-geheugen. Verlagen van de swapneiging kan dus snelheidswinst opleveren.

Let op: Schakel de swap nooit volledig uit, ook al heeft uw computer nog zoveel RAM-geheugen! Niet alleen omdat zswap de swap op de harde schijf simpelweg nodig heeft, maar ook omdat het volledig uitschakelen van de swap altijd contraproductief is en de prestaties van uw systeem negatief kan beïnvloeden.

De swapneiging kan een waarde hebben van 0 tot 200. De standaardwaarde van 60 is niet optimaal voor normale bureaucomputers met ingeschakelde zswap.

Zo verlaagt u de swapneiging naar een redelijkere waarde, namelijk 30, wat waarschijnlijk het beste compromis is:

a. Controleer allereerst de huidige swapneiging (swappiness) van uw Mint:

Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)

tik in (kopieer en plak):

cat /proc/sys/vm/swappiness

Druk op Enter. Waarschijnlijk staat de swapneiging nu nog op de veel te hoge waarde van 60.

Verlaag de swapneiging daarom als volgt:

b. Tik vervolgens in de terminal (gebruik kopiëren en plakken, om tikfouten te voorkomen):

xed admin:///etc/sysctl.conf

(de drie achtereenvolgende schuine strepen zijn geen tikfout; dat hoort zo)

Druk op Enter. Nu start kladblokje Xed met een bepaald tekstbestand.

Voeg helemaal onderaan in dat tekstbestand, de volgende regels toe (kopieer en plak):

# Verminder de swapneiging
vm.swappiness=30


Sla het tekstbestand op en sluit het kladblokje.

c. Herstart uw computer (volledige herstart).

d. Controleer daarna even de nieuwe swapneiging in de terminal, met de volgende opdracht (kopieer en plak):

cat /proc/sys/vm/swappiness

Als het goed is, staat die nu op 30.

Deze ingreep heeft eigenlijk alleen voordelen en geen nadelen. U levert dus niets in.

Beste omvang van het wisselgeheugen

4. Wat de beste omvang is van het wisselgeheugen, hangt af van enkele omstandigheden. Het gaat dan om zaken als de omvang van uw RAM-geheugen en vooral ook of u gebruik maakt van de slaapstand (suspend-to-disk).

Bij moderne grote harde schijven is de omvang van het wisselgeheugen niet erg van belang, want ruimte zat.... Maar op oudere schijven en op SSD's is dit wel degelijk een belangrijk punt.

Hieronder ga ik daar nader op in.

Voorbereiding op instellen van swapgrootte: over de slaapstand

4.1. Het activeren van de slaapstand (suspend-to-disk) zorgt ervoor, dat de volledige inhoud van het RAM-geheugen wordt weggeschreven in het virtuele wisselgeheugen op de harde schijf (swap).

Slaapstand is een ingrijpende stand, die vaak problemen veroorzaakt. Dat komt doordat de meeste makers van BIOS en UEFI, zich niet houden aan de standaarden voor het implementeren van energiebesparing.

Uw computer kan daardoor na het ontwaken van slag raken, of zelfs in een coma belanden waaruit hij überhaupt niet meer ontwaakt.

Zowel in Linux Mint als in Ubuntu is de slaapstand daarom standaard uitgeschakeld, wat ik een verstandige zet vind. Dat kunt u dus beter zo laten.

Voorkeursvariant: slaapstand uitgeschakeld

4.2. Bij een uitgeschakelde slaapstand (zie hierboven bij punt 4.1) hoeft u alleen rekening te houden met de behoefte van uw systeem aan wisselgeheugen onder normale bedrijfsomstandigheden. Zeker wanneer u veel RAM-geheugen heeft, zal het wisselgeheugen dan slechts zelden worden aangesproken.

Toch is het handig om een uitlaatklep beschikbaar te hebben voor noodgevallen. Standaard voorzien Linux Mint en Ubuntu daarin, door een wisselgeheugenbestand aan te maken in uw systeempartitie. Daar hoeft u dus verder niets aan te doen: de omvang daarvan is dynamisch.

Maar als u een aparte partitie wilt voor het wisselgeheugen, moet u daar wel wat aandacht aan besteden. Een vuistregel is: maak een wisselgeheugenpartitie aan ter grootte van ongeveer 20 % van het RAM-geheugen, met een minimum van 1 GB.

Dus als uw computer bijvoorbeeld 16 GB RAM heeft, dan maakt u een wisselgeheugenpartitie aan van ongeveer 3 GB. Bij een computer met slechts 2 GB RAM-geheugen, stelt u de grootte van de wisselgeheugenpartitie in op 1 GB.

Minder goede variant: slaapstand ingeschakeld

4.3. Als u de slaapstand (suspend-to-disk) toch wilt gaan gebruiken, dan is de vuistregel: maak de wisselgeheugenpartitie iets groter dan de omvang van uw RAM-geheugen. Zodat dit laatste er in elk geval compleet in past, wanneer de slaapstand actief wordt.

Dus als uw computer bijvoorbeeld 4 GB RAM-geheugen heeft, maakt u een wisselgeheugenpartitie aan ter grootte van 4,1 GB.

Nog meer tips?

5. Wilt u meer tips en trucs? U vindt er nog veel meer op deze webstek!

Zoals deze:

Maak uw Linux Mint sneller

Maak Linux Mint veilig schoon

Vermijd 10 fatale vergissingen


Op de inhoud van deze webstek is een Creative Commons-licentie van toepassing.

Algemeen voorbehoud en uitsluiting aansprakelijkheid

Terug naar de thuispagina