Koliko RAM-a potrebuje VPS: pravilo za vsako vrsto rabe

Pomnilnik je vir, ki najpogosteje določi velikost strežnika: zmanjka ga prvega, in ko ga zmanjka, se strežnik ne upočasni, temveč ustavlja storitve. Ta vodnik poda pravilo izračuna, porabo vsakega gradnika aplikacije, značilne profile in način merjenja na strežniku, ki že teče.

Objavljeno 15. oktobra 2026 Avtor: Čas branja: 9 minut

Vsi vodniki

Na kratko

  1. Seštejte vse, kar stalno ostaja v pomnilniku: sistem, spletni strežnik, vsak proces aplikacije, podatkovno zbirko, predpomnilnik.
  2. Dimenzionirajte na konico, ne na povprečje: prevajanje, varnostno kopiranje ali načrtovano opravilo lahko za nekaj minut podvoji porabo.
  3. Dodajte 25 % rezerve. Pomnilnik, ki ostane prost, služi kot predpomnilnik diska in pospeši podatkovno zbirko.
  4. Na strežniku, ki že teče, preberite stolpec available ukaza free -h, ne stolpca free.
  5. Ko pomnilnika zmanjka, Linux ustavi proces; pogosto je to največji porabnik, podatkovna zbirka. Storitev, ki se sama znova zažene, je prvi znak, na katerega bodite pozorni.
  6. Izberite velikost, ki dopušča rast brez ponovne namestitve: potrebe aplikacije v produkciji rastejo z njenimi podatki.

Pravilo: seštejte, kar ostaja v pomnilniku

Strežnik ne porablja pomnilnika „na splošno“: vsak program, ki teče, zase zadrži del pomnilnika, dokler teče. Izračun se zato začne s seznamom procesov, ki so stalno prisotni, nato pa doda konico in rezervo:

Potreben pomnilnik = (sistem + stalne storitve + konica občasnih opravil) × 1,25

Koliko porabi vsak gradnik

Spodnji redi velikosti veljajo za aplikacijo običajne velikosti, izmerjeno v produkciji. So izhodišče; zadnjo besedo ima vedno meritev na vaši lastni aplikaciji, opisana v nadaljevanju.

GradnikObičajna poraba pomnilnikaOd česa je odvisna
Nginx, Caddy (spletni strežnik, proxy)10 do 50 MBSkoraj stalna: število povezav malo vpliva.
PHP-FPM (WordPress, Laravel, Symfony)40 do 80 MB na procesŠtevilo procesov, omejeno s pm.max_children: 10 procesov pomeni od 400 do 800 MB.
Node.js (API, Next.js, NestJS)60 do 300 MB na procesŠtevilo procesov (način cluster, PM2) in velikost kopice, omejena z --max-old-space-size.
Python (Django, FastAPI, Flask)80 do 200 MB na procesŠtevilo delovnih procesov Gunicorn ali Uvicorn in naložene knjižnice: pandas ali model strojnega učenja dodata več sto MB.
Java (Spring Boot)300 MB do 1 GB na aplikacijoNajvečja velikost kopice: JVM si privzeto dodeli četrtino pomnilnika, ki ga vidi.
Go, Rust10 do 100 MBPodatki, ki jih aplikacija sama hrani v pomnilniku.
PostgreSQL25 % pomnilnika za shared_buffers, plus nekaj MB na povezavoObseg pogosto branih podatkov, število povezav, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, privzeto 128 MBNa strežniku, namenjenem samo podatkovni zbirki, ta medpomnilnik pogosto zasede do 80 % pomnilnika.
RedisVelikost podatkov, plus njegove podatkovne struktureMed shranjevanjem na disk se spremenjene strani podvojijo: v najslabšem primeru do dvojne porabe.
Elasticsearch, OpenSearchVsaj 2 GB za kopicoKopica ostane pod polovico pomnilnika: preostanek služi predpomnilniku datotek.

Pri aplikacijah v JavaScriptu se pogosto ponovi ena konica: prevajanje (build). npm run build na projektu Next.js, Nuxt ali Angular samo zase pogosto zahteva od 1 do 2 GB, za nekaj minut, poleg vsega, kar že teče. Prevajati na strežniku pomeni dimenzionirati za to konico; prevajati na svojem računalniku ali v sistemu za stalno integracijo in na strežnik naložiti samo rezultat pomeni, da se ji izognete.

Enak razmislek velja za vsebnike Docker: vsak vsebnik je skupina procesov kot vsi drugi, demon Docker pa doda svojo porabo. docker stats prikaže, koliko zasede vsak.

Značilni profili

Ti profili seštejejo zgornje gradnike, vključno s konico in rezervo. Predpostavljajo aplikacijo običajne velikosti in promet ob zagonu; obsežna podatkovna zbirka ali stalen promet številko premakneta navzgor.

Kaj teče na strežnikuPotreben pomnilnik
Statična spletna stran, proxy, manjši bot ali načrtovan skript1 do 2 GB
Ena spletna stran WordPress z MariaDB in predpomnilnikom strani2 GB
Spletna trgovina WooCommerce ali več spletnih strani WordPress4 GB
API v Node.js ali Pythonu s PostgreSQL, prvi uporabniki4 GB
Aplikacija Next.js, prevedena na strežniku, njen API in podatkovna zbirka PostgreSQL6 do 8 GB
Več aplikacij v vsebnikih, predprodukcija in produkcija8 GB
Podatkovna zbirka z več deset GB, ki se intenzivno bere16 GB in več
Jezikovni model s 7 do 8 milijardami parametrov, ki teče na strežniku16 GB

Aplikacija, ki model umetne inteligence kliče prek API-ja (OpenAI, Anthropic, Mistral), se dimenzionira kot vsaka spletna aplikacija: model teče pri svojem ponudniku, vaš strežnik pa čaka na odgovor. Merilo spremeni šele izvajanje modela na samem strežniku.

Merjenje na strežniku, ki že teče

Na strežniku v produkciji meritev nadomesti oceno. Trije ukazi povedo, kje ste:

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

Merite v najbolj obremenjenem delu dneva in med občasnimi opravili: prevajanje, varnostno kopiranje, uvoz. Šteje konica.

Ko pomnilnika zmanjka

Strežnik, ki mu zmanjka pomnilnika, se ne upočasnjuje postopoma. Ko ni več ničesar, kar bi lahko sprostil, jedro Linuxa sproži OOM killer (out of memory): izbere proces, praviloma tisti, ki zaseda največ pomnilnika, in ga v trenutku ustavi. Na aplikacijskem strežniku je to pogosto podatkovna zbirka.

Simptomi: občasne napake 502 ali 503, storitev, ki se brez vidnega razloga znova zažene, prevajanje, ki se prekine z izpisom Killed. Dnevniki to potrdijo:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status ime-storitve

V izpisu ukaza systemctl status navedba Failed with result 'oom-kill' označuje storitev, ustavljeno zaradi pomanjkanja pomnilnika.

Swap, kadar ga strežnik ima, ta trenutek odloži, tako da najmanj uporabljeni pomnilnik premakne na disk. Je varnostna mreža, ne zmogljivost: strežnik, ki se nenehno opira na swap, odgovarja nekajkrat počasneje, tudi na NVMe SSD.

Rešitve, od najpreprostejše do najtrajnejše: zmanjšajte število procesov aplikacije (pm.max_children, delovni procesi Gunicorn), prevajajte zunaj strežnika, omejite pomnilnik podatkovne zbirke, nato preidite na večjo velikost.

Izbira velikosti in načrtovanje naprej

  1. Naštejte, kaj bo teklo: spletni strežnik, aplikacija in število njenih procesov, podatkovna zbirka, predpomnilnik, načrtovana opravila.
  2. Seštejte s pomočjo preglednice gradnikov, dodajte najzahtevnejšo konico (pogosto prevajanje), nato 25 % rezerve.
  3. Izberite velikost, ki to vsoto pokrije. Med dvema sosednjima velikostma zadošča manjša, če je prehod na večjo mogoč brez ponovne namestitve.
  4. Merite po zagonu v produkciji, ob dnevni konici, nato ob vsakem koraku rasti aplikacije.

Pomnilnik ni edini vir: procesor šteje za vse, kar računa (prevajanje, obdelava slik, izvajanje modela umetne inteligence), disk pa za podatkovno zbirko in datoteke. Pri spletni aplikaciji pa velikost skoraj vedno določi prav pomnilnik.

Prava velikost in svoboda, da jo spremenite

VPS Pro je na voljo v šestih velikostih, na procesorjih Intel Xeon, pomnilniku ECC in zrcaljenih NVMe SSD, na večjo velikost pa preide kadar koli, brez ponovne namestitve. Celovita podpora je vključena: opišite nam, kaj bo poganjal vaš strežnik, svetujemo vam velikost, nato pa ob vsakem vprašanju postavimo diagnozo in vam povemo, kaj storiti, od sistema do kode vaše aplikacije.

Odkrijte VPS Pro

Pogosta vprašanja

Koliko RAM-a potrebuje manjši VPS?

Statična spletna stran, proxy ali manjši skript tečejo v 1 do 2 GB. Ko si strežnik delita podatkovna zbirka in aplikacija (PHP, Node.js, Python), računajte 2 GB za spletno stran WordPress in 4 GB za aplikacijo po meri s PostgreSQL.

Koliko RAM-a za WordPress na VPS?

2 GB za spletno stran z MariaDB in predpomnilnikom strani, 4 GB za trgovino WooCommerce ali več spletnih strani. Število procesov PHP-FPM je prva nastavitev: vsak zasede od 40 do 80 MB.

Ali lahko swap nadomesti RAM?

Ne. Swap prepreči nenadno ustavitev, ko je pomnilnik poln, vendar strežnik, ki ga nenehno uporablja, odgovarja nekajkrat počasneje, tudi na NVMe SSD. Je varnostna mreža; velikost se izbira po pomnilniku.

Zakaj ukaz free kaže tako malo prostega pomnilnika?

Ker Linux neuporabljeni pomnilnik uporablja kot predpomnilnik datotek. Ta predpomnilnik se sprosti, takoj ko program potrebuje pomnilnik. Stolpec, ki ga preberete, je available, ki kaže dejansko razpoložljivi pomnilnik.

Koliko RAM-a za prevajanje aplikacije Next.js?

Računajte od 1 do 2 GB samo za prevajanje, poleg tega, kar že teče na strežniku. Prevajanje na vašem računalniku ali v sistemu za stalno integracijo, z nalaganjem samo rezultata, se tej konici izogne.

Stopite v stik z nami