SSD Nodes Learn 🎉 VPS vanaf $5.50/mnd
Gidsen Matt ConnorDoor Matt Connor

Goedkope VPS aanbieding beoordelen: waar moet u op letten?

Leer hoe u een goedkope VPS-aanbieding doorgrondt. Wij analyseren vCPU oversell, verborgen verlengingskosten en fair-use-clausules. Inclusief 30-minuten acceptatietest.

Wat een goedkope VPS-aanbieding verzwijgt

Lees een goedkope VPS-aanbieding achterstevoren, want de prijs is het minst relevante getal op de pagina. Wat bepaalt of de server deugt, is het deel dat niet in de advertentie staat: de oversell-ratio achter het aantal vCPU's, de fair-use-clausule achter het woord "onbeperkt", de verlengingsprijs na de eerste termijn, en of back-ups en het IPv4-adres apart worden gefactureerd. Deze handleiding loopt regel voor regel door een aanbieding en geeft u vervolgens een acceptatietest die u op de server kunt uitvoeren terwijl u nog aanspraak kunt maken op restitutie.

Dit betekent niet dat een lage prijs een truc is. Oudere hardware, een hogere dichtheid van virtuele machines, self-service ondersteuning en minder platformredundantie zijn de redenen waarom een lage prijs überhaupt mogelijk is. Het is uw taak om te weten welke concessies u heeft gedaan voordat uw gebruikers ze voor u ontdekken. Alles hieronder draait op Ubuntu 24.04 met de pakketten die beschikbaar waren in augustus 2026.

Een vCPU is geen core

Een vCPU is een scheduling-slot en geen stuk silicium. Op KVM (kernel-based virtual machine) is elke vCPU een thread op de host, en de host-scheduler plaatst die thread op een fysieke core zodra deze aan de beurt is. Een host kan vier vCPU's verkopen per fysieke core, en elke guest rapporteert nog steeds het volledige aantal in nproc. Het getal in de aanbieding is een maximum van wat u mag vragen, en het zegt niets over wat er voor u gereserveerd is.

De oversell-ratio is het aantal vCPU's dat een host verkoopt per fysieke core. Bij 1:1 is de core volledig voor u. Goedkope abonnementen hanteren hogere ratio's, en deze ratio wordt bijna nooit gepubliceerd. Beschouw daarom elke aanbieding waar niet expliciet "dedicated core" of "dedicated vCPU" bij staat als gedeeld. Gedeelde resources werken voor de meeste taken, omdat de meeste servers het grootste deel van de tijd inactief zijn. Het werkt niet meer wanneer uw piekuren samenvallen met die van anderen.

U kunt het effect meten vanuit de guest. Wanneer uw vCPU klaar is om te draaien en de host de fysieke core aan een andere guest geeft, wordt die wachttijd geteld als steal time: de st-kolom in vmstat en %st in top. Steal time is de manier waarop een 'noisy neighbour' zichtbaar wordt in uw eigen statistieken, en het is het meest bruikbare getal in deze handleiding, omdat een aanbieding dit niet kan vervalsen.

Een dedicated core wordt nog steeds op andere manieren gedeeld. Geheugenbandbreedte, de last level cache en het opslagpad behoren toe aan de gehele host. "Dedicated vCPU" verwijdert de grootste bron van variatie. Het verwijdert echter niet alle variatie.

Controleer ook het CPU-model met lscpu. Twee abonnementen kunnen beide "4 vCPU" vermelden, terwijl hun single-thread-snelheid een factor twee verschilt, omdat de ene host enkele CPU-generaties ouder is. Oude hardware tegen een lage prijs is een redelijke deal voor een build-agent, maar een slechte keuze voor een checkout-pagina.

"Onbeperkte bandbreedte" staat voor ten minste vier verschillende producten

Netwerkverkeer wordt op vier manieren beschreven en deze zijn niet uitwisselbaar.

  • Een gemeten databundel. De specificatie noemt een getal, zoals "2 TB per maand". Het is cruciaal om te weten wat er gebeurt zodra dit limiet is bereikt: volgt er een extra factuur per TB, of wordt de snelheid verlaagd tot een zeer traag niveau totdat de nieuwe maand begint? Zoek dit uit voordat u het nodig heeft.
  • Een ongemeten abonnement met een fair use policy. Verkeer wordt niet geteld, maar de voorwaarden voor acceptabel gebruik bepalen de limiet in tekst in plaats van in cijfers. Doorzoek het document op termen als "fair use", "sustained", "excessive" en "abuse".
  • Een poortsnelheidslimiet. Een 100 Mbit/s-poort vormt een fysieke grens, ongeacht wat het verkeersbeleid vermeldt.
  • Een combinatie van de laatste twee: ongemeten verkeer op een trage poort. Dit is de meest voorkomende vorm bij goedkope abonnementen. Het is een eerlijk aanbod, mits u de poortsnelheid controleert.
ChartTraffic ceiling set by port speed alone, 30 days at full rate
The data behind this chart
[
  {
    "label": "100 Mbit/s",
    "tb_ceiling_30d": 32,
    "hours_per_tb": 22.2
  },
  {
    "label": "200 Mbit/s",
    "tb_ceiling_30d": 65,
    "hours_per_tb": 11.1
  },
  {
    "label": "500 Mbit/s",
    "tb_ceiling_30d": 162,
    "hours_per_tb": 4.4
  },
  {
    "label": "1 Gbit/s",
    "tb_ceiling_30d": 324,
    "hours_per_tb": 2.2
  }
]

Een poortsnelheid is een harde bovengrens en de berekening is eenvoudig. 100 Mbit/s is 12,5 megabyte per seconde, dus 30 dagen op volle snelheid verplaatst ongeveer 32 TB. Diezelfde 30 dagen op een 1 Gbit/s-poort leveren 324 TB op. TB staat hier voor 10^12 bytes, de eenheid die hostingproviders hanteren voor facturatie. Dit is een theoretische berekening, geen meting; geen enkele server benut de poort een hele maand lang volledig.

De tweede kolom is bepalend voor de keuze van een abonnement. Het verplaatsen van één terabyte duurt ongeveer 22.2 uur op de 100 Mbit/s-poort en 2.2 uur op de gigabit-poort. Als uw herstelplan bestaat uit "de back-up downloaden en opnieuw beginnen", dan is dat getal uw hersteltijd.

Er zitten nog twee details verborgen in deze specificatie. "1 Gbit/s shared" betekent dat de poort wordt gedeeld met andere gebruikers; de bovengenoemde limiet is dan een best-case scenario en geen garantie. Sommige providers factureren verkeer bovendien op basis van het 95e percentiel van de gemeten snelheid in plaats van het totale volume. Hierdoor is een constante belasting goedkoper dan een belasting met pieken.

Wat het abonnement ook belooft, meet uw eigen verbruik. vnstat leest de interface-tellers uit en houdt de historie bij.

sudo apt install -y vnstat
sudo systemctl enable --now vnstat
vnstat -d
vnstat -m

Direct na de installatie geeft vnstat Not enough data available yet. weer, omdat de database nog geen samples bevat. Kom de volgende dag terug; vnstat -m toont dan een maandelijks totaal dat u kunt vergelijken met de databundel waarvoor u betaalt.

Is de NVMe-claim reëel en kunt u dit controleren?

lsblk -d -o NAME,ROTA,SIZE,MODEL

ROTA van 0 betekent dat de gastmachine heeft vernomen dat het apparaat niet roterend is. Die waarde is afkomstig van de hypervisor en beschrijft dus wat de host adverteert in plaats van de onderliggende media. De kolom MODEL is meestal leeg voor een virtio-schijf zoals /dev/vda, en toont een generieke QEMU HARDDISK voor een via SCSI gekoppelde schijf. U bekijkt een virtuele schijf, dus het label bewijst niets.

De eigenschap die het controleren waard is, is latentie, en het werkelijke onderscheid ligt tussen lokale NVMe en een via het netwerk gekoppeld volume. Een netwerkvolume kan een hoge sequentiële doorvoersnelheid rapporteren en toch traag aanvoelen, omdat doorvoer wordt gemeten met veel gelijktijdige verzoeken, terwijl een database wacht op één kleine schrijfactie tegelijk. Meet bij een wachtrijdiepte (queue depth) van 1 voor latentie, en bij een diepere wachtrij voor IOPS (input/output operations per second).

sudo apt install -y fio
fio --name=lat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=1 --numjobs=1 --runtime=60 --time_based --group_reporting
fio --name=iops --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randread --bs=4k --iodepth=32 --numjobs=1 --runtime=60 --time_based --group_reporting
rm -f fiotest

Lees het clat percentiles-blok, en specifiek de 99.00e regel. Dat is de voltooiingslatentie die uw traagste één procent van de verzoeken heeft ervaren, en dit is wat een gebruiker voelt als een hapering. Als grove richtlijn: lokale NVMe bij een wachtrijdiepte van 1 antwoordt in honderden microseconden, en een via het netwerk gekoppeld volume antwoordt in milliseconden. Vergelijk uw eigen twee runs in plaats van te vertrouwen op een enkel gepubliceerd cijfer, en voer het paar drie keer per dag uit, omdat een schijf die wordt gedeeld met andere huurders zich anders gedraagt om 03:00 uur dan om 20:00 uur.

fio plaatst eerst het 1 GB bestand, dus laat ruimte vrij op de schijf, en onthoud dat de test het IOPS-quotum verbruikt dat het abonnement toestaat. Wanneer u slechts een snelle meting wilt, geeft ioping -c 20 . u de latentie in één regel. Een benchmark is alleen waardevol als u deze kunt herhalen, dus sla de exacte commando's en de output met de datum op.

Wat is inbegrepen en wat wordt extra gefactureerd

  • IPv4. Eén adres is doorgaans inbegrepen. Sommige goedkope abonnementen bieden een gedeeld adres achter NAT (network address translation) met een beperkt aantal doorgestuurde poorten, wat betekent dat u geen services op poort 443 kunt draaien. Controleer dit met ip -4 addr show scope global en curl -4 https://icanhazip.com. Twee verschillende antwoorden betekenen dat u zich achter NAT bevindt.
  • IPv6. Een gerouteerd /64-subnet geeft u adressen voor containers en voor alles wat u van buitenaf bereikbaar wilt maken. Een enkel /128-adres dekt alleen uitgaand verkeer en weinig anders.
  • Back-ups. Automatische back-ups zijn meestal een betaalde extra optie. Snapshots zijn vaak gratis, maar een snapshot bevindt zich op dezelfde infrastructuur als de schijf waarvan deze een kopie is. Dit beschermt u tegen eigen fouten, maar niet tegen het verlies van de host. Bewaar altijd een kopie buiten de server, ongeacht wat het abonnement bevat.
  • DDoS-afhandeling. Veel hosts reageren op een volumetrische aanval (distributed denial of service) door uw IP-adres voor een vaste periode via null routing onbereikbaar te maken. De server blijft in goede staat, maar is simpelweg onbereikbaar vanaf het internet. Vraag naar de drempelwaarde voor activering en de duur van de null route.
  • Ondersteuningsniveau. Bij een unmanaged abonnement bent u zelf de systeembeheerder en eindigt de verantwoordelijkheid van de host bij de hypervisor en het netwerk. Dat is het grootste werkelijke kostenverschil tussen twee abonnementen met identieke specificaties.
  • Licenties en panelen. Een controlepaneel, een commercieel besturingssysteem of een e-mailadd-on kan per maand meer kosten dan de server zelf.

Welk type virtualisatie schaft u aan?

systemd-detect-virt

kvm of qemu staat voor volledige virtualisatie: u beschikt over een eigen kernel en de modules die u daarin laadt. lxc, lxc-libvirt of openvz staat voor een container die de kernel van de host deelt. none staat voor bare metal.

Het verschil is merkbaar bij een gedeelde kernel. sudo modprobe wireguard mislukt en ip link add dev wg0 type wireguard geeft RTNETLINK answers: Operation not supported terug, omdat een container geen kernelmodule kan laden die de host niet heeft geladen. free -h kan het geheugen van de host rapporteren in plaats van dat van u wanneer lxcfs ontbreekt, waardoor uw monitoring cijfers toont die niet over uw server gaan. Swap wordt vaak gedeeld met andere containers en het draaien van virtuele machines binnen uw VPS is helemaal niet mogelijk. Container-abonnementen zijn niet voor niets goedkoper, en voor een statische website of een kleine applicatie zijn ze nog steeds de juiste keuze.

Wat is de verlengingsprijs?

De geadverteerde prijs geldt vaak alleen voor de eerste termijn. Zoek op de bestelpagina naar de tekst "renews at" en let op de looptijd die aan de korting is gekoppeld. Een korting die één jaar geldig is en een korting die voor de gehele looptijd van het abonnement vaststaat, zijn verschillende producten achter dezelfde eerste factuur.

Lees de restitutievoorwaarden met dezelfde zorgvuldigheid. Let op hoe lang de bedenktijd duurt, of deze ingaat bij de bestelling of bij de oplevering, of add-ons zoals extra IP-adressen restitueerbaar zijn en of een jaarlijkse vooruitbetaling naar rato wordt terugbetaald. Zet vervolgens een herinnering in uw agenda een week voor de verlengingsdatum, want het goedkope moment om op te zeggen is vóór de factuur.

Later overstappen is ook niet gratis. Het verplaatsen van enkele honderden gigabytes aan data, het opnieuw opbouwen van de configuratie, het afwachten van DNS (domain name system) time to live-waarden en, voor een mailserver, het opnieuw opbouwen van de IP-reputatie kost al snel een volledig weekend. Reken dat weekend mee wanneer een besparing overtuigend lijkt. Wat een VPS daadwerkelijk kost over een jaar is het cijfer om te vergelijken, niet de eerste maand.

De acceptatietest van dertig minuten

Voer dit uit op de nieuwe server voordat u migraties start en terwijl de retourtermijn nog geldt. Beveilig de server eerst: de eerste tien minuten op een nieuwe VPS behandelt het gebruikersaccount, de keys en de firewall. Installeer daarna de tools.

sudo apt update
sudo apt install -y sysbench fio ioping sysstat stress-ng vnstat mtr-tiny curl

Check 1: wat heb ik daadwerkelijk gekregen?

systemd-detect-virt
nproc
lscpu | grep -E 'Model name|MHz|Hypervisor'
free -h
lsblk -d -o NAME,ROTA,SIZE,MODEL
ip -4 addr show scope global
curl -4 -s https://icanhazip.com

U hoort het virtualisatietype, een CPU-model en een geheugengrootte te zien die binnen enkele procenten overeenkomt met wat u heeft aangeschaft. free -h dat veel meer RAM rapporteert dan het abonnement belooft, is een container zonder lxcfs in plaats van een extraatje. Een publiek adres van curl dat nooit verschijnt in ip -4 addr betekent dat het IPv4-adres wordt gedeeld.

Check 2: hoe snel is één thread en hoeveel steal is er onder belasting?

sysbench cpu --cpu-max-prime=20000 --threads=1 run

Noteer de events per second-regel. De snelheid van een enkele thread bepaalt hoe snel een pagina rendert en hoe lang een build duurt; dit is de waarde waarop goedkope abonnementen het meest verschillen. Belast nu elke vCPU en kijk wat de scheduler u daadwerkelijk toewijst.

stress-ng --cpu 0 --timeout 300s &
vmstat 1 30
mpstat -P ALL 1 10

--cpu 0 start één worker per online CPU. Bekijk de st-kolom in vmstat en %steal in mpstat. Incidentele enkelvoudige cijfers op een gedeeld abonnement zijn normaal. Steal die minutenlang in de dubbele cijfers blijft, betekent dat de fysieke cores overbezet zijn; uw werk staat in de wachtrij achter een andere huurder. Voer sysbench opnieuw uit terwijl de belasting actief is: een single-thread-score die instort betekent dat uw vCPU's met elkaar concurreren. Dit wijst er meestal op dat het sibling-threads op één core zijn in plaats van afzonderlijke cores. Een lage score met bijna nul steal is het andere scenario: een CPU-limiet die door de host is opgelegd, wat u niet direct vanuit de guest kunt zien.

Check 3: hoe gedraagt de schijf zich bij queue depth 1?

Voer de twee fio-commando's uit de NVMe-sectie uit en bewaar beide resultaten: de 99e percentiel latentie bij queue depth 1 en de IOPS bij depth 32. Controleer daarna de schrijfsnelheid, aangezien veel volumes in die richting aanzienlijk trager zijn.

fio --name=wlat --filename=fiotest --size=1G --direct=1 --ioengine=libaio --rw=randwrite --bs=4k --iodepth=1 --numjobs=1 --runtime=30 --time_based --group_reporting
rm -f fiotest

Een dd sequentieel cijfer is het getal dat in marketingmateriaal wordt genoemd en het minst nuttige dat u kunt verzamelen, omdat sequentiële streaming niet is wat een database of een drukke webapplicatie de hele dag doet. Verzamel het als u de vergelijking wilt maken. Beslis op basis van de latentie.

Check 4: hoe ziet het netwerk eruit vanaf de locatie van uw gebruikers?

Download eerst een groot bestand naar de VPS.

curl -o /dev/null -w 'in: %{speed_download} bytes/s\n' https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.6.tar.xz

Dat test één pad naar uw server en niets anders. De richting die ertoe doet, is de richting die uw gebruikers nemen; serveer dus een bestand en download het vanaf een machine in hun buurt.

fallocate -l 100M /var/tmp/100mb.bin
python3 -m http.server 8080 --directory /var/tmp

Voer vervolgens vanaf een laptop of server dicht bij uw doelgroep het volgende uit:

curl -o /dev/null -w 'down: %{speed_download} bytes/s\n' http://YOUR_SERVER_IP:8080/100mb.bin
mtr --report --report-cycles 50 YOUR_SERVER_IP

Poort 8080 moet openstaan in de firewall terwijl u dit doet; sluit deze daarna, verwijder het bestand en stop de Python-server met Ctrl+C. Lees in de mtr-output de loss-kolom op de laatste regel. Verlies bij een tussenliggende hop terwijl er geen verlies is bij de bestemming is normaal, omdat routers ICMP (internet control message protocol)-antwoorden waarop mtr vertrouwt een lage prioriteit geven; dat is geen verlies van uw verkeer. Verlies op de laatste regel is reëel.

Herhaal de netwerktest tijdens het piekuren van uw gebruikers. Een enkele meting om 02:00 uur vertelt u alleen iets over een rustig netwerk.

Sla alle vier de resultaten op in een bestand met de datum en voer ze over een maand opnieuw uit. Een abonnement dat op dag één prima was en in week zes traag, is een abonnement waarvan de host vol is geraakt. Het hebben van de cijfers van dag één maakt het verschil tussen dat weten en gissen.

Wanneer een goedkope VPS de juiste keuze is

Een lage prijs brengt zowel voordelen als beperkingen met zich mee. Oudere CPU's, een hogere oversell-ratio, tragere netwerkopslag, self-service support en minder redundantie zorgen voor de lage kosten. Stem deze factoren af op de taak.

Een goedkope VPS is geschikt voor een ontwikkelomgeving, een CI-runner, een VPN-endpoint, een monitoring-node, een back-updoel of een statische website. Al deze toepassingen kunnen een kortstondige vertraging opvangen. Een goedkope VPS is een slechte keuze wanneer latentie cruciaal is: denk aan een afrekenpagina, een interactieve API, een gameserver of een database waar een andere service op moet wachten. De bovenstaande test laat zien wat u heeft aangeschaft, en dat nog voordat de keuze u iets kost.

FAQ

Wat betekent vCPU bij een goedkope VPS-aanbieding?

Een vCPU is één virtuele processor die aan uw gast-OS wordt gepresenteerd. Deze wordt toegewezen aan een thread die de scheduler van de host op een fysieke core uitvoert wanneer dat mogelijk is. Het is een recht om CPU-tijd aan te vragen in plaats van gereserveerde hardware, tenzij de aanbieding "dedicated core" of "dedicated vCPU" vermeldt. Hosts verkopen meer vCPU's dan ze fysieke cores hebben en die verhouding wordt zelden gepubliceerd, dus meet dit zelf. Voer stress-ng --cpu 0 --timeout 300s uit en bekijk de kolom st in vmstat 1. Als de steal-waarde in de dubbele cijfers loopt, betekent dit dat u wacht op cores die door andere gasten worden gebruikt.

Betekent "onbeperkte bandbreedte" echt onbeperkt?

Nee, en de limiet bevindt zich meestal op twee plekken buiten de beschrijving van het abonnement. Het beleid voor acceptabel gebruik (AUP) stelt een fair-use-limiet vast in tekst, en de poortsnelheid vormt een hard plafond in bytes. Een 100 Mbit/s-poort kan zelfs bij volledige belasting niet meer dan ongeveer 32 TB per 30 dagen verwerken. Vraag daarom naar de poortsnelheid en lees het beleid op termen als "fair use" en "sustained". Houd vervolgens bij wat u daadwerkelijk verstuurt met vnstat -m en vergelijk dit met de toegestane hoeveelheid.

Hoe kan ik zien of mijn VPS echt NVMe gebruikt?

U kunt de fysieke opslagmedia niet bevestigen vanuit een gast-OS, omdat lsblk alleen rapporteert wat de hypervisor adverteert: ROTA van 0 en een lege of generieke modelnaam. Wat u wel kunt meten, is gedrag. Voer fio uit met --direct=1 op --iodepth=1 en lees de 99,00ste percentiel-latentie voor voltooiing. Lokale NVMe reageert in honderden microseconden, terwijl een netwerkgekoppelde schijf in milliseconden reageert, zelfs als de sequentiële doorvoer indrukwekkend lijkt. Herhaal dit een paar keer gedurende de dag, aangezien een gedeelde schijf om 03:00 uur anders presteert dan om 20:00 uur.

Wat moet ik testen voordat de restitutieperiode verloopt?

Vier zaken, in deze volgorde. Wat de server daadwerkelijk is, via systemd-detect-virt, lscpu en free -h. De single-thread-snelheid, via sysbench cpu --cpu-max-prime=20000 --threads=1 run. De steal-tijd onder volledige belasting, via stress-ng --cpu 0, gecontroleerd met vmstat 1. De schijflatentie, via fio met een queue depth van 1. Meet vervolgens het netwerk vanaf een machine in de buurt van uw gebruikers met mtr en een download van een bestand dat u vanaf de server aanbiedt. Dertig minuten is voldoende voor al deze tests. Door dit te doen voordat u migreert, behoudt u de restitutieperiode als hefboom.