Hoeveel RAM voor een VPS: de regel, toepassing per toepassing

Geheugen bepaalt het vaakst hoe groot een server moet zijn: het raakt als eerste op, en als het opraakt, wordt de server niet gewoon trager, maar legt hij diensten stil. Deze gids geeft de rekenregel, wat elk onderdeel van een applicatie verbruikt, typische profielen en de manier om te meten op een server die al draait.

Gepubliceerd op 15 oktober 2026 Door Leestijd: 9 minuten

Alle gidsen

In het kort

  1. Tel op wat permanent in het geheugen blijft: het systeem, de webserver, elk proces van de applicatie, de database, de cache.
  2. Dimensioneer op de piek, niet op het gemiddelde: een build, een back-up of een geplande taak kan het verbruik een paar minuten lang verdubbelen.
  3. Tel er 25% marge bij op. Geheugen dat vrij blijft, dient als schijfcache en versnelt de database.
  4. Lees op een server die al draait de kolom available van free -h, niet de kolom free.
  5. Als het geheugen opraakt, stopt Linux een proces, vaak het grootste: de database. Een dienst die vanzelf herstart, is het eerste signaal om in de gaten te houden.
  6. Kies een formaat dat kan meegroeien zonder herinstallatie: een applicatie in productie heeft meer nodig naarmate haar gegevens groeien.

De regel: optellen wat in het geheugen blijft

Een server verbruikt geen geheugen “in het algemeen”: elk programma dat draait, houdt er een deel van vast, zolang het draait. De berekening begint dus bij de lijst van processen die permanent aanwezig zijn, en telt daar de piek en een marge bij op:

Benodigd geheugen = (systeem + permanente diensten + piek van incidentele taken) × 1,25

Wat elk onderdeel verbruikt

De ordes van grootte hieronder gelden voor een applicatie van gangbare omvang, gemeten in productie. Ze geven een vertrekpunt; de meting op uw eigen applicatie, verderop beschreven, heeft altijd het laatste woord.

OnderdeelTypisch geheugenWaardoor het varieert
Nginx, Caddy (webserver, proxy)10 tot 50 MBVrijwel vast: het aantal verbindingen weegt weinig.
PHP-FPM (WordPress, Laravel, Symfony)40 tot 80 MB per procesHet aantal processen, begrensd door pm.max_children: 10 processen, 400 tot 800 MB.
Node.js (API, Next.js, NestJS)60 tot 300 MB per procesHet aantal processen (clustermodus, PM2) en de grootte van de heap, begrensd door --max-old-space-size.
Python (Django, FastAPI, Flask)80 tot 200 MB per procesHet aantal Gunicorn- of Uvicorn-workers, en de geladen bibliotheken: pandas of een machinelearningmodel voegen honderden MB toe.
Java (Spring Boot)300 MB tot 1 GB per applicatieDe maximale grootte van de heap: standaard neemt de JVM een kwart van het geheugen dat ze ziet.
Go, Rust10 tot 100 MBDe gegevens die de applicatie zelf in het geheugen houdt.
PostgreSQL25% van het geheugen voor shared_buffers, plus enkele MB per verbindingHet volume gegevens dat vaak wordt geraadpleegd, het aantal verbindingen, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, standaard 128 MBOp een server die alleen voor de database dient, neemt deze buffer gewoonlijk tot 80% van het geheugen in.
RedisDe omvang van de gegevens, plus de datastructurenTijdens het wegschrijven naar schijf worden gewijzigde pagina’s gedupliceerd: in het slechtste geval tot het dubbele.
Elasticsearch, OpenSearchMinstens 2 GB voor de heapDe heap blijft onder de helft van het geheugen: de rest dient als bestandscache.

Eén piek duikt bij JavaScript-applicaties telkens weer op: de build. npm run build op een Next.js-, Nuxt- of Angular-project vraagt alleen al gewoonlijk 1 tot 2 GB, een paar minuten lang, bovenop wat er al draait. Op de server bouwen betekent dimensioneren voor die piek; bouwen op uw eigen computer of in uw CI-pipeline en alleen het resultaat uitrollen, vermijdt hem.

Dezelfde redenering geldt voor Docker-containers: elke container is een verzameling processen zoals alle andere, en de Docker-daemon voegt zijn eigen verbruik toe. docker stats toont wat elke container inneemt.

Typische profielen

Deze profielen tellen de onderdelen hierboven op, piek en marge inbegrepen. Ze gaan uit van een applicatie van gangbare omvang en het verkeer van een lancering; een omvangrijke database of aanhoudend verkeer schuift de wijzer naar boven.

Wat er op de server draaitBenodigd geheugen
Statische website, proxy, kleine bot of gepland script1 tot 2 GB
Eén WordPress-website met MariaDB en een paginacache2 GB
Een WooCommerce-webwinkel, of meerdere WordPress-websites4 GB
Een Node.js- of Python-API met PostgreSQL, eerste gebruikers4 GB
Een Next.js-applicatie die op de server wordt gebouwd, met haar API en haar PostgreSQL-database6 tot 8 GB
Meerdere applicaties in containers, staging en productie8 GB
Een database van enkele tientallen GB, intensief geraadpleegd16 GB en meer
Een taalmodel van 7 tot 8 miljard parameters dat op de server draait16 GB

Een applicatie die een AI-model via een API aanroept (OpenAI, Anthropic, Mistral), dimensioneert u zoals elke webapplicatie: het model draait bij de aanbieder, en uw server wacht op het antwoord. Het is het draaien van het model op de server zelf dat de schaal verandert.

Meten op een draaiende server

Op een server in productie vervangt de meting de schatting. Drie commando’s vertellen waar u staat:

Terminal
free -h
ps aux --sort=-rss | head -n 15
vmstat 5 5

Meet op het drukste moment van de dag, en tijdens de incidentele taken: build, back-up, import. De piek is wat telt.

Als het geheugen opraakt

Een server zonder geheugen wordt niet geleidelijk trager. Als er niets meer vrij te maken is, zet de Linux-kernel de OOM killer (out of memory) in: die kiest een proces, meestal het proces dat het meeste geheugen inneemt, en stopt het abrupt. Op een applicatieserver is dat vaak de database.

De symptomen: af en toe 502- of 503-fouten, een dienst die zonder zichtbare reden herstart, een build die afbreekt met Killed. De logs bevestigen het:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status naam-van-de-dienst

In de uitvoer van systemctl status wijst de vermelding Failed with result 'oom-kill' op een dienst die is gestopt door geheugentekort.

Swap, als de server die heeft, stelt dat moment uit door het minst gebruikte geheugen naar schijf te verplaatsen. Het is een vangnet, geen capaciteit: een server die voortdurend op swap leunt, reageert meerdere keren trager, zelfs op een NVMe-SSD.

De oplossingen, van eenvoudigst tot duurzaamst: het aantal processen van de applicatie verlagen (pm.max_children, Gunicorn-workers), buiten de server bouwen, het geheugen van de database begrenzen, en daarna overstappen naar een groter formaat.

Uw formaat kiezen, en vooruitkijken

  1. Maak een lijst van wat er zal draaien: webserver, applicatie en aantal processen, database, cache, geplande taken.
  2. Tel alles op met de tabel van de onderdelen, voeg de zwaarste piek toe (vaak de build), en daarna 25% marge.
  3. Kies het formaat dat dat totaal dekt. Tussen twee naburige formaten volstaat het kleinste, zolang de overstap naar een groter formaat zonder herinstallatie verloopt.
  4. Meet na de livegang, op de piek van de dag, en daarna bij elke groeistap van de applicatie.

Geheugen is niet de enige resource: de processor telt voor alles wat rekent (builds, beeldbewerking, het draaien van een AI-model), de schijf voor de database en de bestanden. Voor een webapplicatie is het toch bijna altijd het geheugen dat het formaat bepaalt.

Het juiste formaat, en de vrijheid om te wisselen

VPS Pro is er in zes formaten, op Intel Xeon-processors, ECC-geheugen en gespiegelde NVMe-SSD’s, en stapt op elk moment over naar een groter formaat, zonder herinstallatie. Full-Stack Support is inbegrepen: beschrijf wat uw server zal draaien en wij adviseren u over het formaat; daarna stellen wij bij elke vraag de diagnose en vertellen u wat u moet doen, van het systeem tot de code van uw applicatie.

Ontdek VPS Pro

Veelgestelde vragen

Hoeveel RAM heeft een kleine VPS nodig?

Een statische website, een proxy of een klein script draait in 1 tot 2 GB. Zodra een database en een applicatie (PHP, Node.js, Python) de server delen, rekent u op 2 GB voor een WordPress-website en 4 GB voor een maatwerkapplicatie met PostgreSQL.

Hoeveel RAM voor WordPress op een VPS?

2 GB voor een website met MariaDB en een paginacache, 4 GB voor een WooCommerce-webwinkel of meerdere websites. Het aantal PHP-FPM-processen is de eerste instelling om naar te kijken: elk proces neemt 40 tot 80 MB in.

Kan swap RAM vervangen?

Nee. Swap voorkomt een abrupte stop als het geheugen vol is, maar een server die er voortdurend op leunt, reageert meerdere keren trager, zelfs op een NVMe-SSD. Het is een vangnet; het formaat kiest u op basis van het geheugen.

Waarom toont free bijna geen vrij geheugen meer?

Omdat Linux ongebruikt geheugen als bestandscache gebruikt. Die cache komt vrij zodra een programma geheugen nodig heeft. De kolom om te lezen is available, die het werkelijk beschikbare geheugen geeft.

Hoeveel RAM om een Next.js-applicatie te bouwen?

Reken op 1 tot 2 GB voor de build alleen, bovenop wat er al op de server draait. Bouwen op uw eigen computer of in uw CI-pipeline en alleen het resultaat uitrollen, vermijdt die piek.

Neem contact op