Swap is ruimte op de schijf waar het systeem gegevens uit het RAM naartoe verplaatst als het geheugen opraakt. Je voegt het in een paar minuten toe en dankzij swap crasht je VPS niet bij een korte piek. We laten ook zien wanneer swap niet helpt en je meer RAM nodig hebt.
Wat je nodig hebt
- Een VPS bij StormHost met Ubuntu 24.04 of Debian 13
- Een SSH-verbinding als root (handleiding)
- Vrije schijfruimte van minstens de grootte van de swap (controleer je met het commando
df -h /) - Ongeveer 10 minuten
Wat swap is en wanneer het helpt#
Als het RAM op is en er geen swap is, start de Linux-kernel de OOM killer (“out of memory”) en beëindigt die het proces dat het meeste geheugen gebruikt. Meestal is dat juist je database, gameserver of applicatie. In het log vind je dan Out of memory: Killed process.
Met swap verplaatst het systeem eerst weinig gebruikte gegevens naar de schijf en blijft het proces draaien.
| Situatie | Helpt swap? |
|---|---|
| Een korte piek (updates, compileren, een back-up) | Ja, de VPS komt erdoorheen zonder te crashen. |
| Gegevens die één keer worden geladen en daarna blijven liggen (een deel van het geheugen van een database, ongebruikte services) | Ja, het maakt RAM vrij voor wat belangrijk is. |
| Een applicatie heeft blijvend meer RAM nodig dan de VPS heeft | Nee. De schijf is vele malen trager dan RAM, de applicatie wordt traag. De oplossing is een RAM-upgrade. |
| Een gameserver (Minecraft, Rust) met vol geheugen | Nee. De server gaat haperen. Geef hem minder geheugen, of breid het RAM uit. |
De status bekijken#
swapon --show
free -hswapon --show– toont de actieve swap. Toont het niets, dan heeft de VPS geen swap (dat is bij een nieuwe VPS normaal).free -h– toont het gebruik van RAM en swap in leesbare eenheden (-h= human readable).
Let in de uitvoer van free -h op de kolom available op de regel Mem: hoeveel geheugen applicaties echt beschikbaar hebben. De regel Swap toont de grootte en het gebruik van de swap.
Hoe groot je de swap maakt#
| RAM van de VPS | Aanbevolen swap | Waarom |
|---|---|---|
| 2 GB | 2 GB | Een kleine VPS loopt het snelst tegen de limiet aan, een reserve komt van pas. |
| 4–8 GB | 2–4 GB | Genoeg om pieken op te vangen. |
| 16 GB en meer | 2–4 GB | Een grotere swap heeft geen zin. Gebruikt de VPS die echt, dan heeft hij meer RAM nodig. |
Swap neemt schijfruimte in, maak de swap daarom niet onnodig groot.
Een swapbestand aanmaken#
Dit geldt voor zowel Ubuntu 24.04 als Debian 13. Als voorbeeld maken we een swap van 2 GB aan in het bestand /swapfile.
Maak een bestand van de gewenste grootte aan:
bash fallocate -l 2G /swapfilefallocate– reserveert snel schijfruimte voor een bestand.-l 2G– de grootte van het bestand (2G= 2 GB, voor 4 GB typ je4G)./swapfile– het pad naar het bestand.
Stel de rechten zo in dat alleen root het bestand kan lezen. In de swap kunnen stukken geheugen met wachtwoorden staan:
bash chmod 600 /swapfile600– lezen en schrijven alleen voor de eigenaar (root), anderen niets.
Richt het bestand in als swap:
bash mkswap /swapfilemkswap– schrijft een swapheader naar het bestand. Het toontSetting up swapspace version 1, size = 2 GiB.
Schakel de swap in:
bash swapon /swapfileswapon– neemt de swap meteen in gebruik, maar alleen tot de volgende herstart.
Controleer het resultaat met het commando
swapon --show. Je ziet de regel/swapfile file 2G.
Als swapon “holes” meldt
Als swapon de melding skipping - it appears to have holes geeft, heeft het bestandssysteem het bestand dat met fallocate is aangemaakt niet geaccepteerd. Verwijder het (rm /swapfile) en maak het langzamer, maar betrouwbaar aan met het commando dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress (count=2048 = 2048 × 1 MB = 2 GB). Ga daarna verder met stap 2.
Blijvend inschakelen via /etc/fstab#
Voeg de swap toe aan het bestand /etc/fstab, zodat hij ook na een herstart wordt ingeschakeld.
Maak een back-up van het bestand:
bash cp /etc/fstab /etc/fstab.bakVoeg aan het einde van het bestand een regel met de swap toe:
bash echo '/swapfile none swap sw 0 0' >> /etc/fstabecho '…'– geeft de tekst tussen aanhalingstekens weer.>>– voegt de tekst toe aan het einde van het bestand. Let op: één enkele>zou het hele bestand overschrijven.
De betekenis van de kolommen van de regel:
Kolom Waarde Betekenis 1. apparaat /swapfileHet bestand met de swap. 2. koppelpunt noneSwap wordt nergens gekoppeld. 3. type swapHet gaat om swap. 4. opties swDe standaardopties voor swap. 5. dump 0Geen back-up maken met het oude hulpprogramma dump.6. controle 0Niet controleren bij het opstarten (swap wordt nooit gecontroleerd). Controleer of fstab in orde is:
bash findmnt --verifyfindmnt --verify– controleert de syntaxis van/etc/fstab. Het resultaat moetSuccess, no errors or warnings detectedzijn, of een samenvatting met0 parse errors, 0 errors. Alleen waarschuwingen (warnings) bij andere regels brengen het opstarten van de VPS niet in gevaar.
Een fout in /etc/fstab kan het opstarten van de VPS blokkeren
Start de VPS na een herstart niet op, open dan de console in de browser en zet de back-up terug met het commando cp /etc/fstab.bak /etc/fstab.
Swappiness: hoe snel het systeem gaat swappen#
De waarde vm.swappiness (0–200) bepaalt hoe vroeg de kernel gegevens naar de swap gaat verplaatsen. De standaardwaarde is 60. Op een server is een lagere waarde beter, zodat swap vooral als vangnet dient.
| Instelling | Wat het doet | Aanbevolen waarde | Wanneer je het wijzigt |
|---|---|---|---|
vm.swappiness | De verhouding tussen het vrijmaken van de bestandscache en het verplaatsen van procesgeheugen naar de swap. Een lager getal = minder swappen. | 10 | Ga terug naar 60 (de standaardwaarde) als de VPS bij vol geheugen trager is dan voorheen. De waarde 0 betekent niet “swap uit”, het systeem gebruikt de swap dan alleen in geval van nood. |
Bekijk de huidige waarde:
bash cat /proc/sys/vm/swappinessSla de nieuwe waarde op in een eigen bestand (Debian 13 leest het bestand
/etc/sysctl.confniet meer, de map/etc/sysctl.d/werkt op beide systemen):bash echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.confLaad de instelling zonder herstart:
bash sysctl --systemsysctl --system– laadt alle instellingen uit de mappensysctl.d. In de uitvoer zie je de regelvm.swappiness = 10.
Controle#
swapon --showtoont/swapfilemet de juiste grootte.free -hheeft op de regelSwapeen waardetotaldie niet nul is.- Na een herstart van de VPS is de swap actief, ook zonder handmatig
swapon.
Swap verwijderen#
- Schakel de swap uit:
swapoff /swapfile. Is de swap veel in gebruik, dan duurt dat langer, omdat de gegevens teruggaan naar het RAM. Is er daarvoor niet genoeg RAM, dan eindigt het commando met een fout en gebeurt er niets. - Verwijder de regel
/swapfile none swap sw 0 0uit het bestand/etc/fstab(nano /etc/fstab). - Verwijder het bestand:
rm /swapfile.
Als iets niet werkt#
fallocate: fallocate failed: No space left on device#
Er is niet genoeg ruimte op de schijf. Bekijk de vrije ruimte met het commando df -h / en kies een kleinere swap, of vergroot de schijf.
swapon: /swapfile: insecure permissions 0644, 0600 suggested.#
De rechten van het bestand zijn te ruim. De swap wordt wel ingeschakeld, maar iedereen op de VPS kan het bestand lezen. Voer chmod 600 /swapfile uit.
swapon: /swapfile: swapon failed: Device or resource busy#
De swap is al ingeschakeld. Controleer dat met het commando swapon --show.
De VPS is ook met swap traag en de swap is steeds vol#
De applicaties hebben blijvend meer geheugen nodig dan de VPS heeft. Zoek uit wat het geheugen gebruikt (htop, sorteren op de kolom MEM%) en geef de applicatie minder geheugen, of breid het RAM uit op het tabblad Pakket wijzigen.
Samenvatting
- Swap beschermt tegen een crash bij een kort tekort aan RAM, maar is geen vervanging voor RAM.
- Aanmaken:
fallocate,chmod 600,mkswap,swapon. - Blijvend: de regel
/swapfile none swap sw 0 0in/etc/fstaben een controle metfindmnt --verify. - Stel op een server
vm.swappiness=10in via/etc/.sysctl. d/ 99-swappiness. conf - Een volle swap en een trage VPS betekenen dat je meer RAM nodig hebt.