Hur mycket RAM behöver en VPS? Regeln och vad varje del kräver

Minnet är den resurs som oftast avgör storleken på en server: det är det som tar slut först, och när det tar slut saktar servern inte bara in, den stoppar tjänster. Den här guiden ger räkneregeln, vad varje del av en applikation förbrukar, typiska profiler och hur du mäter på en server som redan är i drift.

Publicerad den 15 oktober 2026 Av Lästid: 9 minuter

Alla guider

I korthet

  1. Summera allt som ligger kvar i minnet hela tiden: systemet, webbservern, varje process i applikationen, databasen och cachen.
  2. Dimensionera efter toppen, inte efter genomsnittet: en kompilering, en säkerhetskopiering eller ett schemalagt jobb kan fördubbla förbrukningen under några minuter.
  3. Lägg till 25 % marginal. Minne som förblir ledigt används som diskcache och snabbar upp databasen.
  4. På en server som redan är i drift läser du kolumnen available i free -h, inte kolumnen free.
  5. När minnet tar slut stoppar Linux en process, ofta den största: databasen. En tjänst som startar om av sig själv är det första tecknet att hålla koll på.
  6. Välj en storlek som kan växa utan ominstallation: en applikation i produktion behöver mer i takt med att dess data växer.

Regeln: summera det som ligger kvar i minnet

En server förbrukar inte minne ”i allmänhet”: varje program som körs håller en del av det så länge det körs. Beräkningen utgår därför från listan över processer som alltid finns där, och lägger sedan till toppen och en marginal:

Minne att planera för = (system + ständiga tjänster + topp från tillfälliga jobb) × 1,25

Vad varje del förbrukar

Storleksordningarna nedan gäller för en applikation av vanlig storlek, uppmätta i produktion. De är en utgångspunkt; mätningen på din egen applikation, som beskrivs längre ned, har alltid sista ordet.

KomponentTypiskt minneVad som får det att variera
Nginx, Caddy (webbserver, proxy)10 till 50 MBNästan konstant: antalet anslutningar väger lite.
PHP-FPM (WordPress, Laravel, Symfony)40 till 80 MB per processAntalet processer, med taket pm.max_children: 10 processer blir 400 till 800 MB.
Node.js (API, Next.js, NestJS)60 till 300 MB per processAntalet processer (klusterläge, PM2) och heapens storlek, som begränsas av --max-old-space-size.
Python (Django, FastAPI, Flask)80 till 200 MB per processAntalet Gunicorn- eller Uvicorn-workers, och de bibliotek som laddas: pandas eller en maskininlärningsmodell lägger till hundratals MB.
Java (Spring Boot)300 MB till 1 GB per applikationHeapens största tillåtna storlek: som standard tar JVM:en en fjärdedel av det minne den ser.
Go, Rust10 till 100 MBDen data som applikationen själv håller i minnet.
PostgreSQL25 % av minnet för shared_buffers, plus några MB per anslutningMängden data som läses ofta, antalet anslutningar, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB som standardPå en server som bara kör databasen tar den här bufferten ofta upp till 80 % av minnet.
RedisDatamängden, plus dess datastrukturerUnder en säkerhetskopiering till disk dupliceras de sidor som ändras: upp till det dubbla i värsta fall.
Elasticsearch, OpenSearchMinst 2 GB för heapenHeapen stannar under halva minnet: resten används som filcache.

En topp återkommer ofta i JavaScript-applikationer: kompileringen. npm run build i ett Next.js-, Nuxt- eller Angular-projekt kräver ofta 1 till 2 GB på egen hand under några minuter, utöver det som redan körs. Att kompilera på servern innebär att dimensionera för den toppen; att kompilera på din egen dator eller i din CI-miljö och bara lägga upp resultatet undviker den.

Samma resonemang gäller Docker-containrar: varje container är en uppsättning processer som alla andra, och Docker-daemonen lägger till sin egen förbrukning. docker stats visar vad var och en tar.

Typiska profiler

Profilerna summerar delarna ovan, topp och marginal inräknade. De förutsätter en applikation av vanlig storlek och trafiken vid en lansering; en stor databas eller en jämnt hög trafik flyttar siffran uppåt.

Det som körs på servernMinne att planera för
Statisk webbplats, proxy, liten bot eller schemalagt skript1 till 2 GB
En WordPress-webbplats med MariaDB och sidcache2 GB
En WooCommerce-butik, eller flera WordPress-webbplatser4 GB
Ett Node.js- eller Python-API med PostgreSQL, de första användarna4 GB
En Next.js-applikation som kompileras på servern, med sitt API och sin PostgreSQL-databas6 till 8 GB
Flera applikationer i containrar, testmiljö och produktion8 GB
En databas på flera tiotals GB som läses intensivt16 GB och mer
En språkmodell med 7 till 8 miljarder parametrar som körs på servern16 GB

En applikation som anropar en AI-modell via API (OpenAI, Anthropic, Mistral) dimensioneras som vilken webbapplikation som helst: modellen körs hos leverantören, och din server väntar på svaret. Det är när modellen körs på själva servern som skalan ändras.

Mät på en server i drift

På en server i drift ersätter mätningen uppskattningen. Tre kommandon visar var du står:

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

Mät vid dygnets mest belastade tidpunkt, och under de tillfälliga jobben: kompilering, säkerhetskopiering, import. Det är toppen som räknas.

När minnet tar slut

En server som får slut på minne blir inte gradvis långsammare. När det inte finns något kvar att frigöra startar Linuxkärnan OOM killer (out of memory): den väljer en process, oftast den som tar mest minne, och stoppar den direkt. På en applikationsserver är det ofta databasen.

Symtomen: 502- eller 503-fel då och då, en tjänst som startar om utan synbar anledning, en kompilering som avbryts med Killed. Loggarna bekräftar det:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status din-tjanst

I utdata från systemctl status anger Failed with result 'oom-kill' en tjänst som har stoppats på grund av minnesbrist.

Swap, om servern har det, skjuter upp det ögonblicket genom att flytta det minst använda minnet till disk. Det är ett skyddsnät, inte kapacitet: en server som hela tiden lutar sig mot swap svarar flera gånger långsammare, även på en NVMe-SSD.

Åtgärderna, från den enklaste till den mest hållbara: minska antalet processer i applikationen (pm.max_children, Gunicorn-workers), kompilera utanför servern, begränsa databasens minne och gå sedan upp till en större storlek.

Välj storlek, och planera för framtiden

  1. Lista det som ska köras: webbserver, applikation och antal processer, databas, cache, schemalagda jobb.
  2. Summera med tabellen över komponenterna, lägg till den tyngsta toppen (ofta kompileringen) och sedan 25 % marginal.
  3. Välj den storlek som täcker summan. Mellan två närliggande storlekar räcker den mindre, så länge bytet till en större storlek sker utan ominstallation.
  4. Mät efter lanseringen, vid dygnets topp, och sedan vid varje tillväxtsteg för applikationen.

Minnet är inte den enda resursen: processorn spelar roll för det som räknar (kompilering, bildbehandling, körning av en AI-modell), disken för databasen och filerna. För en webbapplikation är det ändå nästan alltid minnet som bestämmer storleken.

Rätt storlek, och friheten att byta

VPS Pro finns i sex storlekar, på Intel Xeon-processorer, ECC-minne och speglade NVMe-SSD, och byter till en större storlek när som helst, utan ominstallation. Heltäckande support ingår: beskriv vad din server ska köra, så rekommenderar vi storleken, och sedan ställer vi diagnosen och talar om vad du ska göra i varje fråga, från systemet ända in i koden i din applikation.

Upptäck VPS Pro

Vanliga frågor

Hur mycket RAM behöver en liten VPS?

En statisk webbplats, en proxy eller ett litet skript klarar sig med 1 till 2 GB. Så snart en databas och en applikation (PHP, Node.js, Python) delar servern räknar du med 2 GB för en WordPress-webbplats och 4 GB för en skräddarsydd applikation med PostgreSQL.

Hur mycket RAM behöver WordPress på en VPS?

2 GB för en webbplats med MariaDB och sidcache, 4 GB för en WooCommerce-butik eller flera webbplatser. Antalet PHP-FPM-processer är den första inställningen att se över: var och en tar 40 till 80 MB.

Kan swap ersätta RAM?

Nej. Swap förhindrar ett tvärt stopp när minnet är fullt, men en server som använder det hela tiden svarar flera gånger långsammare, även på en NVMe-SSD. Det är ett skyddsnät; storleken väljs efter minnet.

Varför visar free nästan inget ledigt minne?

Därför att Linux använder oanvänt minne som filcache. Den cachen frigörs så snart ett program behöver minne. Kolumnen att läsa är available, som visar det minne som verkligen är tillgängligt.

Hur mycket RAM behövs för att kompilera en Next.js-applikation?

Räkna med 1 till 2 GB för själva kompileringen, utöver det som redan körs på servern. Att kompilera på din egen dator eller i din CI-miljö och bara lägga upp resultatet undviker den toppen.

Kontakta oss