Kleine servers raken op het slechtste moment door hun geheugen heen: een apt upgrade, een Docker-build, de nachtelijke back-up. Zonder swap kiest de OOM killer van de kernel een proces en schiet het af, vaak je database. Een swapbestand is een goedkope veiligheidsgordel die die pieken een uitweg geeft. Het kost vijf commando's.
1. Kijk wat je hebt
swapon --show
free -h
Toont swapon --show niets, dan is er nog geen swap.
2. Maak het swapbestand aan
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
De chmod 600 is belangrijk: swap kan stukjes bevatten van alles wat in het geheugen stond, geheimen inbegrepen, dus alleen root mag het lezen. Faalt fallocate met „operation not supported”, gebruik dan dd:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Maak het permanent
Zonder deze stap verdwijnt de swap bij een herstart:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. Stel de swappiness in
Vraag de kernel om RAM te verkiezen en swap vooral onder druk te gebruiken:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. Controleer
swapon --show
free -h
Je zou een swapapparaat van 2 GB moeten zien, en cat /proc/sys/vm/swappiness zou 10 moeten tonen.
Hoe groot?
- Server met 1–2 GB RAM: 1–2 GB swap.
- 4 GB of meer: 1–2 GB volstaat nog steeds als vangnet.
Dimensioneer swap niet als „twee keer het RAM”. Op een server is swap bedoeld om korte pieken op te vangen, niet om taken te draaien die niet in het geheugen passen.
Wanneer swap niet het antwoord is
Houd het een paar dagen in de gaten:
vmstat 5
De kolommen si en so tonen per seconde de pagina's die uit swap worden gelezen en ernaartoe worden geschreven. Af en toe activiteit is normaal. Constant waarden boven nul betekenen dat de server geheugen tekortkomt en alles op de schijf wacht. Dan is de oplossing meer RAM: zie hoeveel RAM een VPS nodig heeft. Bij EQVPS kun je naar een groter plan gaan zonder herinstallatie; je data blijft waar hij is.
Reacties
Nog geen reacties. Wees de eerste.