VPS traag of lag? Zo vind je in 10 minuten de oorzaak
Is je VPS traag, kijk dan eerst wát er traag is en loop daarna vier plekken langs: de cpu (load, één core op 100 % of steal time), het geheugen (vol, swap of de OOM-killer), de schijf (iowait) en het netwerk (ping en pakketverlies). Met top, free, iostat en mtr weet je binnen tien minuten welke van de vier remt.
Installeer de hulpmiddelen vooraf, dan heb je ze bij de hand als het misgaat:
sudo apt install htop sysstat mtr-tinyWil je grafieken over een langere periode, dan laat Netdata per seconde zien wat je VPS doet. Snel even kijken kan ook met htop, zoals in het gebruik van je VPS bekijken.
VPS traag? Bepaal eerst wat er precies traag is
"Traag" kan drie heel verschillende dingen betekenen, en elk wijst ergens anders heen:
- Lag in een game: spelers springen terug naar een eerdere plek, kapotte blokken verschijnen opnieuw, voertuigen haperen. Meestal haalt de server zijn ticks niet (cpu), of verliest de verbinding pakketten (netwerk).
- Een trage SSH-sessie: letters verschijnen met vertraging. Dat wijst op het netwerk, of op een VPS die zo vol zit dat zelfs je shell moet wachten.
- Een trage website: vaak de database of de schijf, soms het geheugen.
Let ook op het patroon. Is het altijd traag, alleen 's avonds als iedereen online is, of steeds rond hetzelfde tijdstip? Een vast tijdstip wijst vaak naar een geplande taak, zoals je eigen back-upscript of een cronjob. En klaagt één speler of iedereen? Als het één speler is, ligt het meestal aan zijn eigen verbinding.

Cpu: load, één core op 100 % en steal time
Begin met twee getallen:
nproc
uptimenproc geeft je aantal vCores, uptime de load average over 1, 5 en 15 minuten. Ligt de load langere tijd boven het aantal vCores, dan staat er werk in de rij. Linux telt daarin ook processen die op de schijf wachten, dus kijk daarna in top wat er aan de hand is. Druk in top op 1 om elke vCore apart te zien. Je ziet dan meestal één van drie patronen:
- Alle cores vol, met hoge waarden bij
usensy: je hebt te weinig rekenkracht, of er draait een proces door. Kijk inhtopwelk proces bovenaan staat. - Eén core op 100 %, de rest rustig: het klassieke gameserverprobleem. De hoofdthread van Minecraft, FiveM of Valheim zit aan zijn plafond. Meer vCores helpen dan niet, een snellere core wel. Waarom, lees je in Wat is een vCore? en Ryzen of EPYC voor je gameserver?
- Een hoge
st: steal time, de tijd dat de hypervisor je vCore liet wachten omdat de fysieke core elders aan het werk was. Een paar procent af en toe is normaal bij gedeelde vCores. Blijftstlangere tijd duidelijk hoog terwijl je server traag is, bewaar dan de uitvoer vanvmstat 1 30en stuur die mee in een ticket; onze support denkt mee.
Geheugen: vol, swap of de OOM-killer
free -hKijk naar de kolom available, niet naar free. Linux gebruikt ongebruikt geheugen als cache (buff/cache) en geeft dat terug zodra een programma het nodig heeft, dus een lage free is normaal. Staat available bijna op nul, dan zit je echt vol. Twee signalen bevestigen dat:
- Swappen: in
vmstat 1staan de kolommensiensosteeds boven nul. Je VPS schuift geheugen naar de schijf en terug, en dat voel je overal. - De OOM-killer: de kernel stopt een proces als het geheugen op is. Je gameserver lijkt dan zonder foutmelding te crashen. Controleer het met
sudo dmesg -T | grep -i -E 'out of memory|killed process'.
Een veelgemaakte fout bij Java-servers: -Xmx gelijk zetten aan het hele geheugen van de VPS. Java gebruikt meer dan alleen de heap en het besturingssysteem wil ook ruimte, dus laat minstens 1 GB vrij. Draai je Minecraft met mods op minder dan 8 GB, dan is meer geheugen hier gewoon de oplossing.
Schijf: iowait en geplande taken
In top staat wa voor de tijd dat de cpu wacht tot de schijf klaar is. Is die regelmatig hoog, kijk dan per schijf:
iostat -x 1Let op r_await en w_await: de gemiddelde tijd in milliseconden die een lees- of schrijfopdracht duurt, inclusief het wachten in de rij. Op NVMe horen die laag te zijn; lopen ze sterk op, dan houdt een proces de schijf bezig. De kolom %util zegt bij NVMe weinig: volgens de handleiding van iostat laat hij bij apparaten die opdrachten parallel afhandelen hun grens niet zien. Welk proces de schijf gebruikt, zie je met sudo iotop (pakket iotop).
Bekende veroorzakers zijn je eigen back-upscript of een cronjob die een hele wereldmap inpakt, een logbestand dat ongeremd groeit en een databasequery zonder index. Kijk ook met df -h of de schijf niet vol is: een volle schijf geeft vreemde fouten en vastlopers, lang voordat je doorhebt waarom.
Netwerk: ping, mtr en pakketverlies
Meet vanaf je eigen computer naar de VPS:
ping -c 20 jouw-ip
mtr -rwc 100 jouw-ipOp Windows gebruik je ping -n 20 jouw-ip; voor mtr is daar WinMTR. mtr stuurt 100 rondes van een seconde en toont per tussenstation het verlies en de vertraging. Lees het zo: verlies bij een tussenstation dat niet doorloopt tot de laatste regel komt meestal van een router die pings lage voorrang geeft, en is onschuldig. Verlies dat doorloopt tot en met je VPS is echt. Klaagt één speler, meet dan ook vanaf de VPS naar zijn IP-adres.
Haperen alle spelers tegelijk, kijk dan eerst op status.mc-node.net of er iets speelt met de nodes. Alle VPS'en staan in Hengelo; hoe de afstand naar je spelers de ping bepaalt, lees je in Serverlocatie en ping.
Gameserver-specifiek: TPS, MSPT en hitches
Een gameserver meet zijn eigen gezondheid, en die cijfers zijn vaak duidelijker dan top. Een Minecraft-server wil 20 ticks per seconde halen, dus maximaal 50 ms per tick (MSPT). Loopt de MSPT op terwijl één core op 100 % staat, dan is het de cpu. Zijn TPS en MSPT goed maar lagt iedereen, dan zit het eerder in het netwerk. Per game:
- TPS, MSPT en lag: wat de cijfers echt betekenen
- spark: uitzoeken welke plugin, entity of chunk de tijd opeet
- FiveM-server lag oplossen, voor hitch warnings in de console en zware scripts
- Palworld-server: lag en rubber-banding oplossen
Wanneer upgraden helpt (en wanneer niet)
Een groter pakket lost alleen het knelpunt op dat je gevonden hebt:
| Wat je ziet | Knelpunt | Wat helpt |
|---|---|---|
available bijna nul, swap of OOM-meldingen | geheugen | een groter pakket binnen je lijn |
| één core op 100 %, hoge MSPT | snelheid per core | van KVM VPS naar Premium VPS, of zware plugins en scripts aanpakken |
| alle cores vol | rekenkracht | meer vCores, of de belasting verdelen |
langdurig hoge st | gedeelde cores | ticket met vmstat-uitvoer, of een VDS met vaste cores |
hoge wa en await | schijfgebruik | de taak vinden en verplaatsen; upgraden helpt zelden |
| pakketverlies tot de laatste hop | netwerk | statuspagina checken, mtr meesturen; upgraden helpt niet |
Binnen je lijn upgrade je in het klantenpaneel en betaal je het verschil voor de rest van je periode. Is je knelpunt de snelheid per core, dan is de Premium VPS met Ryzen 9 de logische stap: een AMD Ryzen 9 9950X* met DDR5, tot 5,7 GHz tegenover tot 4,0 GHz bij de EPYC 7443P van de KVM VPS. Is het steal time, kijk dan naar een VDS met vaste cores. Overstappen tussen lijnen gaat niet met één klik: reken op een nieuwe VPS en een verhuizing. Twijfel je welke lijn past, lees dan Welke VPS kiezen?
* of AMD Ryzen 9 7950X3D, afhankelijk van de node.
Veelgestelde vragen
Waarom is mijn VPS traag?
Meestal door één van vier knelpunten: de cpu (één core op 100 % of steal time), het geheugen (vol of swappen), de schijf (veel iowait door een proces of een volle schijf) of het netwerk (pakketverlies). Met top, free -h, iostat -x 1 en mtr zie je binnen tien minuten welke het is. Een gameserver met lag heeft vaak een cpu-knelpunt in de hoofdthread.
Wat is steal time en is dat erg?
Steal time (st in top) is de tijd dat je vCore wilde rekenen, maar de hypervisor de fysieke core aan een andere VPS gaf. Een paar procent af en toe is normaal bij gedeelde vCores. Blijft het langere tijd hoog terwijl je server traag is, stuur dan de uitvoer van vmstat 1 30 mee in een ticket, of kies een VDS met vaste cores.
Helpt meer RAM tegen lag?
Alleen als het geheugen echt vol is: available in free -h staat bijna op nul, je VPS swapt of de OOM-killer stopt processen. Lag door een hoofdthread die op één core vastzit, los je met meer RAM niet op; dan helpt een snellere core, of minder zware plugins en scripts.
Hoe zie ik of er een storing is?
Kijk op status.mc-node.net; daar staat de live status van de nodes. Is daar niets te zien en hapert alleen jouw server, zoek de oorzaak dan met top, free, iostat en mtr. Stuur de uitvoer van mtr vanaf je eigen computer mee als je een ticket opent.