Terug naar de thuispagina

Inhoud van deze pagina:
- Verbeter de prestaties van het RAM-geheugen door zswap in te schakelen
- 2. Bij ingeschakelde zswap: verlaag de swapneiging wanneer uw CPU zwak is
- 3. Vergroting van de omvang van het beschikbare wisselgeheugen (swap) op de harde schijf
- 4. Nog meer tips?
Verbeter de prestaties van het RAM-geheugen door zswap in te schakelen
1. U kunt doorgaans een merkbare snelheidswinst boeken door zswap in te schakelen. Vooral op oudere en zwakkere machines, maar ook op moderne machines pakt zswap meestal 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.
Achtergrond: waarom het inschakelen van zswap de prestaties van het RAM-geheugen verbetert
1.1. Allereerst wat uitleg van de reden waarom het aanzetten van zswap de prestaties van het RAM-geheugen verbetert. Als u geen belangstelling heeft voor die achtergrondinformatie, dan kunt u dit punt ook gewoon overslaan en direct doorgaan naar punt 1.2 hieronder, waar de eigenlijke handleiding staat.Enfin, hier komt de uitleg:
Op de harde schijf bevindt zich een apart bestand of een aparte partitie voor virtueel geheugen, genaamd het wisselgeheugen (swap). Onder normale omstandigheden, zelfs als uw machine heel veel RAM-geheugen heeft, is het wisselgeheugen nuttig en maakt het uw systeem zelfs sneller (webpagina verdwenen? Haal hier een kopie binnen).
Dat komt doordat het wisselgeheugen allereerst een mechanisme is voor gelijkmatige verdeling van het RAM-geheugen over de actieve processen. Slechts op de tweede plaats biedt het ook "extra noodgeheugen" wanneer het RAM-geheugen dreigt te bezwijken onder overbelasting.
Wisselgeheugen is doorgaans niet wat uw toepassing langzaam maakt; een situatie waarin processen allemaal met elkaar moeten vechten om geheugen is wat uw toepassing vertraagt.
Maar wanneer uw Linux het wisselgeheugen te veel aanspreekt, namelijk wanneer het wisselgeheugen wél gebruikt wordt als "extra noodgeheugen", zal dit de computer inderdaad vertragen. Buitensporig wisselgeheugengebruik is één van de grootste bedreigingen voor het prestatieniveau. Dat is de loop van de tijd nooit veranderd en zal ook zo blijven, zolang als RAM-geheugen sneller is dan apparaten voor blijvende opslag (lees: harde schijven).
Daarom is zswap uitgevonden: om dit ongewenste effect van buitensporig wisselgeheugengebruik te matigen, door het terugbrengen van I/O-activiteit. Of in gewone mensentaal: zswap maakt dat het systeem minder gebruik maakt van de harde schijf.
De functie zswap is een systeemkernfunctie die een gecomprimeerde tijdelijke RAM-opslag biedt voor wisselgeheugenpagina's. Pagina's die anders zouden worden weggeschreven naar een tijdelijke opslag (wisselgeheugen) op de harde schijf, worden dan 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 de swap (het wisselgeheugen) 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 hij is ingeschakeld, gebruikt zswap standaard maximaal 20 procent van het RAM-geheugen. In mijn handleiding staat hoe u dat maximum op 30 procent kunt krijgen, waardoor uw systeemgeheugen flink "toeneemt" (verhoog dit maximumpercentage niet boven de 40, want dat zou te weinig RAM-geheugen kunnen overlaten voor ongecomprimeerd gebruik).
Er is voorts een drempel, of beter gezegd: ondergrens, waarbij zswap nieuwe inhoud zal aanvaarden wanneer hij vol zit. Standaard is die ondergrens bij Ubuntu en Linux Mint 90 procent vulling.
Dat is niet optimaal voor computers met weinig RAM-geheugen, aangezien het bij die machines te veel heen-en-weer-schrijfacties kan veroorzaken naar het wisselgeheugen. Mijn handleiding verlaagt die ondergrens naar een rustigere 80 procent, wat een beter algemeen compromis is (het is ook de drempel die bovenstrooms bij kernel.org wordt voorgesteld).
De prijs die u betaalt voor het inschakelen van zswap is tweeledig:
- Uw CPU wordt wat zwaarder belast, want die moet vaker gegevens gaan comprimeren (samenpersen) en decomprimeren (uitpakken). Bij een zwakke CPU zou u daardoor wat prestatieverlies kunnen merken, aangezien comprimeren en decomprimeren nu eenmaal vlugger gaat met een redelijk snelle CPU, liefst eentje met meerdere kernen.
- Het stroomverbruik van uw computer zal vermoedelijk iets toenemen omdat de CPU harder moet werken. Dit zal waarschijnlijk de accuduur van een laptop wat verminderen.
Daarom raad ik bij machines met een zwakke CPU, het inschakelen van zswap alleen aan in combinatie met een swapneiging die is verlaagd naar 45 (zie punt 2 op deze pagina).
Handleiding: zo schakelt u zswap in
1.2. Bij punt 1.1 heb ik uiteengezet hoe zswap werkt en hoe het de geheugenprestaties verbetert. Nu de eigenlijke handleiding. Inschakelen van zswap gaat als volgt (met superieure snelle compressie, dankzij lz4 en zsmalloc):a. Het inschakelen van zswap vergt aanpassingen van verschillende onderdelen van het systeem. Start daarom nu eerst Timeshift en maak daarmee een handmatige momentopname van uw huidige systeem. Dat maakt het makkelijk om de wijzigingen die u gaat aanbrengen, weer terug te draaien (in het onwaarschijnlijke geval dat u dit ooit zou willen).
b. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)
c. Eerst gaat u een aantal parameters toevoegen aan het instellingenbestand van opstartlader Grub. Kopieer en plak daarvoor de volgende blauwe regel in het terminalvenster. Dit is één lange regel, dus breek hem niet af! En tik het allemaal niet zelf in, want het is veel te makkelijk om een tikfout te maken:
sudo sed -i 's/splash/splash zswap.enabled=1 zswap.shrinker_enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=30 zswap.accept_threshold_percent=80 zswap.zpool=zsmalloc/' /etc/default/grub
Druk op Enter en tik desgevraagd uw wachtwoord in. In Ubuntu blijft dit geheel onzichtbaar, u ziet zelfs geen sterretjes wanneer u het intikt, dat hoort zo. In Mint is dit veranderd: u ziet wel sterretjes. Druk opnieuw op Enter.
d. Genereer nu een nieuw Grubmenu waarin de nieuwe instellingen daadwerkelijk zijn toegepast. Kopieer en plak daartoe de volgende regel in het terminalvenster:
sudo update-grub
Druk op Enter.
e. De module zsmalloc is standaard niet aanwezig in het initramfs bij het opstarten, zodat die module niet automatisch kan worden geladen. Dat kunt u als volgt veranderen:
Voeg de nieuwe module toe aan het instellingenbestand van het initramfs. Kopieer en plak daarvoor de onderstaande opdrachtregel in het terminalvenster:
echo "zsmalloc" | sudo tee -a /etc/initramfs-tools/modules
Druk op Enter.
f. Dan in de terminal, om het initramfs van alle geïnstalleerde systeemkernen bij te werken met de nieuwe instellingen (kopieer en plak!):
sudo update-initramfs -uk all
Druk op Enter. Het kan soms lang kan duren voordat deze opdracht is voltooid!
g. Herstart uw computer.
h. Kijk het resultaat na met deze terminalopdracht (kopieer en plak om deze ingewikkelde opdracht over te brengen naar het terminalvenster, tik hem niet zelf in):
grep -r . /sys/module/zswap/parameters/
Druk op Enter.
Waarom zswap beter is dan zRam (en gebruik hen nooit gelijktijdig!)
1.2.1. Er is ook een alternatieve RAM-swapfunctie genaamd zRam, die minder goed is dan zswap. De redenen dat zswap beter is dan zRam, zijn de volgende:zswap belast de CPU minder zwaar dan zRam. Soms veel minder: vooral bij gebruik als bureaucomputer kan dit een rol spelen. Maar er is meer aan de hand:
Zoals uitgelegd in dit uitstekende artikel, fungeert zswap als voorportaal voor het wisselgeheugen op de schijf, perst het pagina's samen in het RAM, en stuurt het automatisch "koude" gegevens (gegevens die waarschijnlijk niet snel weer nodig zullen zijn) door naar de schijf. Het integreert rechtstreeks met het geheugenbeheer van de systeemkern en verdeelt de druk gelijkmatig.
zRam daarentegen, is een samengeperst blokapparaat met een harde capaciteitsgrens. Wanneer u er wisselgeheugen op zet dat vervolgens vol loopt, is er geen automatische verwijdering van de inhoud, en de systeemkern kan daar niet veel tegen doen.
Wanneer het zRam-"apparaat" vol is, zal het systeem óf beginnen met het vernietigen van processen wegens acuut geheugentekort, óf terugvallen op wisselgeheugen met een lagere prioriteit, wat zogeheten LRU-omkering veroorzaakt: uw snelste opslag raakt verstopt met de "koudste" gegevens, terwijl verwijdering daarvan onmogelijk is. Dat duwt uw "warme" gegevens (gegevens die vermoedelijk snel weer gebruikt zullen worden) naar de langzaamste opslag.
In zo'n geval is zRam niet alleen geen hulp. Het maakt de situatie zelfs actief slechter dan wanneer u überhaupt geen samengeperst wisselgeheugen zou hebben gehad.
Erger nog: hoe langer het systeem draait, hoe beroerder het wordt. "Warme" pagina's glijden af naar de schijf, "koude" pagina's fossiliseren in zRam, en de kloof tussen wat zRam bevat en wat u daadwerkelijk nodig hebt, wordt steeds wijder. Niet bepaald iets om vrolijk van te worden....
zRam heeft alleen zin voor ingebedde systemen met extreem weinig geheugen, schijfloze systemen of gevallen waarin bijzondere veiligheidseisen gelden die opslag van privégegevens op blijvende opslagmedia verbieden. En er is nog meer slecht nieuws: wisselgeheugen op zRam wordt bovenstrooms in toenemende mate niet meer ondersteund.
Let op: installeer zRam niet wanneer u al zswap gebruikt, want zRam is ronduit contraproductief in combinatie met zswap!
Zowel zswap als zRam maken gebruik van een gecomprimeerde tijdelijke opslag, en zouden, bij gelijktijdig gebruik, meer systeemgeheugen gebruiken dan wanneer er slechts één van beide geïnstalleerd zou zijn. Gelijktijdig gebruik heeft daarom geen zin en zou zelfs nadelig zijn.
Meer achtergrondinformatie over de redenen waarom zswap doorgaans beter is dan zRam, kunt u hier vinden. Webpagina verdwenen? Een kopie ervan kunt u hier binnenhalen.
Bij ingeschakelde zswap: verlaag de swapneiging wanneer uw CPU zwak is
2. Standaard maakt uw Linux gebruik van de swap (het wisselgeheugen op de harde schijf). Wat prima is, want normaal gebruik van het wisselgeheugen maakt uw systeem sneller. Maar het wisselgeheugen moet ook weer niet al te vaak gebruikt worden door het systeem, want dan werkt het juist vertragend.Dit geldt ook nog steeds wanneer u zswap heeft ingeschakeld, wat ik trouwens in alle gevallen aanraad (zie punt 1.2). Zelfs een snelle RAM-swap is immers langzamer dan ongecomprimeerde RAM...
Daarmee komen we op het punt van de swappiness, oftewel de swapneiging.
A. Eerst wat achtergrondinformatie:
Vooral bij weinig RAM-geheugen kan het gebeuren dat Mint de swap veel gaat gebruiken. 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 soms snelheidswinst opleveren.
De swapneiging kan een waarde hebben van 0 tot 200. De standaardinstelling van 60 is niet optimaal voor normale bureaucomputers met een zwakke CPU en een ingeschakelde zswap. Een waarde van ongeveer 45 past daar beter bij (dit soort dingen is altijd een compromis). Deze ingreep heeft bij een computer met een zwakke CPU eigenlijk alleen voordelen en geen nadelen. U levert dus niets in.
Als uw computer een krachtigere CPU heeft, dan kunt u de swapneiging overigens wel het beste op 60 laten staan. Ook als u zswap heeft ingeschakeld.
Let op (1): Over het algemeen is het tegenwoordig geen goed idee meer, om de swapneiging te veranderen als op zichzelf staande maatregel. Verander de swapneiging daarom alleen wanneer u zswap hebt ingeschakeld en wanneer de CPU zwak is.
Let op (2): 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.
B. Nu de handleiding:
Zo verlaagt u de swapneiging naar een redelijkere waarde voor computers met een zwakke CPU en ingeschakelde zswap, namelijk 45, wat voor die computers 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, om tikfouten te voorkomen):
cat /proc/sys/vm/swappiness
Druk op Enter. Waarschijnlijk staat de swapneiging nu nog op een waarde van 60.
Verlaag de swapneiging als volgt:
b. In het terminalvenster kopieert en plakt u de volgende opdrachtregel (dit is één lange regel, gebruik beslist kopiëren en plakken om tikfouten te voorkomen!):
echo "vm.swappiness=45" | sudo tee /etc/sysctl.d/7-swappiness.conf
Druk op Enter en tik desgevraagd uw wachtwoord in.
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 45.
Spijt? Ongedaan maken van de reductie van de swapneiging is makkelijk
2.1. Hebt u spijt van de reductie van de swapneiging? Ongedaan maken is heel eenvoudig, met deze terminalopdracht:sudo rm -v /etc/sysctl.d/7-swappiness.conf
Herstart uw computer en de swapneiging zou weer op de standaardwaarde van 60 moeten staan.
Vergroting van de omvang van het beschikbare wisselgeheugen (swap) op de harde schijf
3. In Linux Mint and Ubuntu, bestaat het virtuele geheugen (swap) op de harde schijf uit een bestand in plaats van een aparte partitie (behalve wanneer er LVM wordt gebruikt, wat ik sowieso afraad). Dit swapbestand heet, niet erg verrassend, swapfile.Standaard is zijn omvang 2 GiB. Wat in de meeste gevallen prima is, zeker als u zswap heeft ingeschakeld (zie punt 1.2 op deze pagina). Echter, enkele mensen zouden een groter swapbestand nodig kunnen hebben. Als u tot die mensen behoort, lees dan door.
U kunt de grootte van dit swapbestand als volgt wijzigen:
a. Open een terminalvenster.
(Een terminalvenster opent u zo: *Klik*)
b. Eerst gaat u nakijken of er al een swapbestand is en zo ja, hoe groot dat is. Kopieer en plak daarvoor de volgende blauwe regel in het terminalvenster, waar overigens geen rootbevoegdheid voor nodig is:
swapon --show
Druk op Enter.
Dit zal u waarschijnlijk vertellen dat er inderdaad al een swapbestand bestaat en dat diens huidige grootte 2 G (oftewel 2 GiB) bedraagt.
c. Nu dient u het huidige swapbestand uit te schakelen. Kopieer en plak daarvoor de volgende blauwe regel in het terminalvenster:
sudo swapoff /swapfile
Druk op Enter en tik desgevraagd uw wachtwoord in. In Ubuntu blijft dit geheel onzichtbaar, u ziet zelfs geen sterretjes wanneer u het intikt, dat hoort zo. In Mint is dit veranderd: u ziet wel sterretjes. Druk opnieuw op Enter.
d. Vervolgens kunt u het huidige swapbestand verwijderen. Kopieer en plak daarvoor de volgende blauwe regel in het terminalvenster:
sudo rm -v /swapfile
Druk op Enter.
e. Volgende stap: maak een nieuw swapbestand met de gewenste omvang. Hiervoor gaat u de toepassing dd gebruiken, om te zorgen dat er geen bestand met "gaten" wordt aangemaakt. Het gebruiken van de juiste parameters vergt een beetje rekenwerk.
Een voorbeeld maakt het makkelijker: laten we zeggen dat u een swapbestand wilt maken ter grootte van 8 GiB. Daarvoor moet u het aantal MiB berekenen: 8 x 1024 MiB = 8192 MiB.
Kopieer en plak de volgende blauwe regel in het terminalvenster, om een swapbestand van 8 GiB aan te maken:
sudo dd if=/dev/zero of=/swapfile bs=1M count=8192
Druk op Enter. Dit kan even duren, dus wacht geduldig af totdat het klaar is!
f. Beperk de lees/schrijfrechten voor het swapbestand tot root (niet strikt noodzakelijk, maar het verscherpt de veiligheid), met deze terminalopdracht (gebruik kopiëren/plakken):
sudo chmod -v 600 /swapfile
Druk op Enter.
g. Formatteer het bestand als swap, met deze terminalopdracht (gebruik kopiëren/plakken):
sudo mkswap --verbose /swapfile
Druk op Enter.
h. Het swapbestand zal automatisch worden geactiveerd bij de volgende herstart. Maar het is ook mogelijk om het nu meteen al te activeren, met deze terminalopdracht (gebruik kopiëren/plakken):
sudo swapon /swapfile
Druk op Enter.
i. U kunt de omvang van het actieve nieuwe swapbestand nakijken met de volgende terminalopdracht, waarvoor overigens geen rootbevoegdheid nodig is:
swapon --show
Druk op Enter. Als u de 8 GiB van het voorbeeld hebt toegepast, zou dit nu moeten melden dat zijn grootte 8 G bedraagt.
(Dit is een vereenvoudigde versie van de uitstekende handleiding geschreven door vanadium op Askubuntu)
Nog meer tips?
4. 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