Koliko RAM-a za VPS: pravilo izračuna za svaku namjenu

Memorija je resurs koji najčešće određuje veličinu poslužitelja: ona prva ponestane, a kada ponestane, poslužitelj ne usporava, nego zaustavlja usluge. Ovaj vodič daje pravilo izračuna, potrošnju svakog dijela aplikacije, tipične profile i način mjerenja na poslužitelju koji već radi.

Objavljeno 15. listopada 2026. Autor: Vrijeme čitanja: 9 minuta

Svi vodiči

Najvažnije

  1. Zbrojite sve što trajno ostaje u memoriji: sustav, web poslužitelj, svaki proces aplikacije, bazu podataka, predmemoriju.
  2. Dimenzionirajte prema vršnom opterećenju, a ne prema prosjeku: kompilacija, sigurnosna kopija ili zakazani zadatak mogu na nekoliko minuta udvostručiti potrošnju.
  3. Dodajte 25 % rezerve. Memorija koja ostane slobodna služi kao predmemorija diska i ubrzava bazu podataka.
  4. Na poslužitelju koji već radi čitajte stupac available naredbe free -h, a ne stupac free.
  5. Kada memorije ponestane, Linux zaustavlja neki proces, često najveći: bazu podataka. Usluga koja se sama ponovno pokreće prvi je znak na koji treba paziti.
  6. Odaberite veličinu koja dopušta rast bez ponovne instalacije: potrebe aplikacije u produkciji rastu zajedno s njezinim podacima.

Pravilo: zbrojite ono što ostaje u memoriji

Poslužitelj ne troši memoriju „općenito”: svaki program koji radi zadržava njezin dio sve dok radi. Izračun zato polazi od popisa procesa koji su stalno prisutni, a zatim dodaje vršno opterećenje i rezervu:

Potrebna memorija = (sustav + stalne usluge + vrh povremenih zadataka) × 1,25

Koliko troši svaki dio

Donje vrijednosti vrijede za aplikaciju uobičajene veličine, izmjerenu u produkciji. One su polazna točka; mjerenje na vašoj vlastitoj aplikaciji, opisano niže, uvijek ima posljednju riječ.

DioTipična memorijaO čemu ovisi
Nginx, Caddy (web poslužitelj, proxy)10 do 50 MBGotovo stalna: broj veza malo utječe.
PHP-FPM (WordPress, Laravel, Symfony)40 do 80 MB po procesuBroj procesa, ograničen parametrom pm.max_children: 10 procesa, 400 do 800 MB.
Node.js (API, Next.js, NestJS)60 do 300 MB po procesuBroj procesa (način rada cluster, PM2) i veličina heapa, ograničena opcijom --max-old-space-size.
Python (Django, FastAPI, Flask)80 do 200 MB po procesuBroj Gunicorn ili Uvicorn workera i učitane biblioteke: pandas ili model strojnog učenja dodaju stotine MB.
Java (Spring Boot)300 MB do 1 GB po aplikacijiNajveća veličina heapa: JVM si prema zadanim postavkama dodjeljuje četvrtinu memorije koju vidi.
Go, Rust10 do 100 MBPodaci koje aplikacija sama drži u memoriji.
PostgreSQL25 % memorije za shared_buffers, plus nekoliko MB po veziKoličina često čitanih podataka, broj veza, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB prema zadanim postavkamaNa poslužitelju namijenjenom samo bazi taj međuspremnik često zauzima do 80 % memorije.
RedisVeličina podataka, plus njegove struktureTijekom spremanja na disk izmijenjene stranice se udvostručuju: u najgorem slučaju do dvostruke količine.
Elasticsearch, OpenSearchNajmanje 2 GB za heapHeap ne prelazi polovicu memorije: ostatak služi kao predmemorija datoteka.

Jedan se vrh često ponavlja kod JavaScript aplikacija: kompilacija (build). npm run build na projektu Next.js, Nuxt ili Angular sam za sebe često traži 1 do 2 GB, tijekom nekoliko minuta, povrh onoga što već radi. Kompilirati na poslužitelju znači dimenzionirati za taj vrh; kompilirati na svojem računalu ili u kontinuiranoj integraciji (CI) i na poslužitelj postaviti samo rezultat znači izbjeći ga.

Isto razmišljanje vrijedi za Docker kontejnere: svaki je kontejner skup procesa kao i svaki drugi, a Docker daemon dodaje vlastitu potrošnju. docker stats prikazuje koliko zauzima svaki od njih.

Tipični profili

Ovi profili zbrajaju prethodne dijelove, uključujući vršno opterećenje i rezervu. Pretpostavljaju aplikaciju uobičajene veličine i promet kakav je pri pokretanju; velika baza ili stalno visok promet pomiču procjenu naviše.

Što radi na poslužiteljuPotrebna memorija
Statična stranica, proxy, mali bot ili zakazana skripta1 do 2 GB
Jedna WordPress stranica s MariaDB-om i predmemorijom stranica2 GB
WooCommerce trgovina ili više WordPress stranica4 GB
Node.js ili Python API s PostgreSQL-om, prvi korisnici4 GB
Next.js aplikacija kompilirana na poslužitelju, njezin API i PostgreSQL baza6 do 8 GB
Više aplikacija u kontejnerima, testno i produkcijsko okruženje8 GB
Baza podataka od nekoliko desetaka GB, s intenzivnim čitanjem16 GB i više
Jezični model od 7 do 8 milijardi parametara koji radi na poslužitelju16 GB

Aplikacija koja poziva AI model putem API-ja (OpenAI, Anthropic, Mistral) dimenzionira se kao bilo koja web aplikacija: model radi kod svojeg izdavača, a vaš poslužitelj čeka odgovor. Tek izvođenje modela na samom poslužitelju mijenja razmjere.

Mjerenje na poslužitelju koji radi

Na poslužitelju u radu mjerenje zamjenjuje procjenu. Tri naredbe pokazuju gdje ste:

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

Mjerite u najopterećenijem dijelu dana i tijekom povremenih zadataka: kompilacije, sigurnosne kopije, uvoza. Važan je vrh.

Kada memorije ponestane

Poslužitelj kojemu ponestaje memorije ne usporava postupno. Kada više nema ničega što bi se moglo osloboditi, jezgra Linuxa pokreće OOM killer (out of memory): odabire proces, obično onaj koji zauzima najviše memorije, i naglo ga zaustavlja. Na aplikacijskom poslužitelju to je često baza podataka.

Simptomi: povremene pogreške 502 ili 503, usluga koja se ponovno pokreće bez vidljivog razloga, kompilacija koja se prekida porukom Killed. Zapisi to potvrđuju:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status naziv-usluge

U ispisu naredbe systemctl status oznaka Failed with result 'oom-kill' označava uslugu zaustavljenu zbog nedostatka memorije.

Swap, ako ga poslužitelj ima, odgađa taj trenutak premještanjem najmanje korištene memorije na disk. On je sigurnosna mreža, a ne kapacitet: poslužitelj koji se neprestano oslanja na swap odgovara nekoliko puta sporije, čak i na NVMe SSD-u.

Rješenja, od najjednostavnijeg do najtrajnijeg: smanjiti broj procesa aplikacije (pm.max_children, Gunicorn workeri), kompilirati izvan poslužitelja, ograničiti memoriju baze podataka, a zatim prijeći na veću veličinu.

Odabir veličine i planiranje rasta

  1. Popišite što će raditi: web poslužitelj, aplikacija i broj njezinih procesa, baza podataka, predmemorija, zakazani zadaci.
  2. Zbrojite pomoću tablice dijelova, dodajte najveći vrh (često kompilaciju), a zatim 25 % rezerve.
  3. Odaberite veličinu koja pokriva taj zbroj. Između dviju susjednih veličina dovoljna je manja, pod uvjetom da se prelazak na veću obavlja bez ponovne instalacije.
  4. Mjerite nakon puštanja u rad, u dnevnom vrhu, a zatim u svakoj fazi rasta aplikacije.

Memorija nije jedini resurs: procesor je važan za sve što računa (kompilacija, obrada slika, izvođenje AI modela), a disk za bazu podataka i datoteke. Za web aplikaciju ipak gotovo uvijek memorija određuje veličinu.

Prava veličina i sloboda da je promijenite

VPS Pro dostupan je u šest veličina, na procesorima Intel Xeon, ECC memoriji i zrcaljenim NVMe SSD-ovima, a na veću veličinu prelazi u svakom trenutku, bez ponovne instalacije. Cjelovita podrška je uključena: opišite nam što će vaš poslužitelj pokretati i savjetovat ćemo vam veličinu, a zatim za svako pitanje postavljamo dijagnozu i kažemo vam što učiniti, od sustava do koda vaše aplikacije.

Otkrijte VPS Pro

Česta pitanja

Koliko RAM-a treba mali VPS?

Statična stranica, proxy ili mala skripta rade s 1 do 2 GB. Čim baza podataka i aplikacija (PHP, Node.js, Python) dijele poslužitelj, računajte s 2 GB za WordPress stranicu i 4 GB za aplikaciju po mjeri s PostgreSQL-om.

Koliko RAM-a za WordPress na VPS-u?

2 GB za stranicu s MariaDB-om i predmemorijom stranica, 4 GB za WooCommerce trgovinu ili više stranica. Broj PHP-FPM procesa prva je postavka: svaki zauzima 40 do 80 MB.

Može li swap zamijeniti RAM?

Ne. Swap sprječava nagli prekid kada je memorija puna, ali poslužitelj koji ga stalno koristi odgovara nekoliko puta sporije, čak i na NVMe SSD-u. On je sigurnosna mreža; veličina se bira prema memoriji.

Zašto free prikazuje gotovo nimalo slobodne memorije?

Zato što Linux neiskorištenu memoriju koristi kao predmemoriju datoteka. Ta se predmemorija oslobađa čim nekom programu zatreba memorija. Treba čitati stupac available, koji pokazuje stvarno dostupnu memoriju.

Koliko RAM-a za kompilaciju Next.js aplikacije?

Računajte s 1 do 2 GB samo za kompilaciju, povrh onoga što već radi na poslužitelju. Kompilacija na vašem računalu ili u kontinuiranoj integraciji, uz postavljanje samo rezultata na poslužitelj, izbjegava taj vrh.

Kontaktirajte nas