Cik RAM vajag VPS serverim: noteikums katram lietojumam

Atmiņa visbiežāk nosaka servera izmēru: tā beidzas pirmā, un, kad tās pietrūkst, serveris nevis palēninās, bet aptur pakalpojumus. Šajā ceļvedī ir aprēķina noteikums, tas, ko patērē katra lietojumprogrammas sastāvdaļa, tipiski profili un veids, kā izmērīt jau strādājošu serveri.

Publicēts 2026. gada 15. oktobrī Autors: Lasīšanas laiks: 9 minūtes

Visi ceļveži

Galvenais

  1. Saskaitiet visu, kas pastāvīgi atrodas atmiņā: sistēmu, tīmekļa serveri, katru lietojumprogrammas procesu, datubāzi, kešatmiņu.
  2. Dimensionējiet pēc slodzes maksimuma, nevis pēc vidējā: kompilēšana, rezerves kopēšana vai ieplānots uzdevums var uz dažām minūtēm divkāršot patēriņu.
  3. Pieskaitiet 25 % rezervi. Brīvā atmiņa kalpo kā diska kešatmiņa un paātrina datubāzi.
  4. Strādājošā serverī skatieties komandas free -h kolonnu available, nevis kolonnu free.
  5. Kad atmiņas pietrūkst, Linux aptur kādu procesu, bieži vien lielāko: datubāzi. Pakalpojums, kas pats restartējas, ir pirmā pazīme, kurai sekot.
  6. Izvēlieties izmēru, ko var palielināt bez pārinstalēšanas: produkcijā strādājošas lietojumprogrammas vajadzības aug līdz ar tās datiem.

Noteikums: saskaitīt to, kas paliek atmiņā

Serveris nepatērē atmiņu «vispār»: katra strādājoša programma aizņem savu daļu, kamēr vien darbojas. Tāpēc aprēķins sākas ar pastāvīgi strādājošo procesu sarakstu, un pēc tam pieskaita slodzes maksimumu un rezervi:

Paredzamā atmiņa = (sistēma + pastāvīgie pakalpojumi + epizodisko uzdevumu maksimums) × 1,25

Ko patērē katra sastāvdaļa

Tālāk norādītie lielumi attiecas uz parasta izmēra lietojumprogrammu un ir mērīti produkcijā. Tie ir sākumpunkts; pēdējais vārds vienmēr pieder mērījumam jūsu pašu lietojumprogrammā, kā aprakstīts tālāk.

SastāvdaļaTipiskā atmiņaNo kā tā mainās
Nginx, Caddy (tīmekļa serveris, starpniekserveris)10 līdz 50 MBGandrīz nemainīga: savienojumu skaits to ietekmē maz.
PHP-FPM (WordPress, Laravel, Symfony)40 līdz 80 MB uz procesuProcesu skaits, ko ierobežo pm.max_children: 10 procesi ir 400 līdz 800 MB.
Node.js (API, Next.js, NestJS)60 līdz 300 MB uz procesuProcesu skaits (klastera režīms, PM2) un kaudzes (heap) izmērs, ko ierobežo --max-old-space-size.
Python (Django, FastAPI, Flask)80 līdz 200 MB uz procesuGunicorn vai Uvicorn darba procesu (workers) skaits un ielādētās bibliotēkas: pandas vai mašīnmācīšanās modelis pieliek simtiem MB.
Java (Spring Boot)No 300 MB līdz 1 GB uz lietojumprogrammuMaksimālais kaudzes izmērs: pēc noklusējuma JVM paņem ceturtdaļu no atmiņas, ko tā redz.
Go, Rust10 līdz 100 MBDati, ko lietojumprogramma pati glabā atmiņā.
PostgreSQL25 % atmiņas parametram shared_buffers, plus daži MB uz katru savienojumuBieži lasīto datu apjoms, savienojumu skaits, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, pēc noklusējuma 128 MBServerī, kas veltīts tikai datubāzei, šis buferis parasti aizņem līdz 80 % atmiņas.
RedisDatu apjoms plus to struktūrasSaglabājot datus diskā, mainītās lapas tiek dublētas: sliktākajā gadījumā līdz divkāršam apjomam.
Elasticsearch, OpenSearchVismaz 2 GB kaudzeiKaudze nepārsniedz pusi atmiņas: pārējais kalpo failu kešatmiņai.

JavaScript lietojumprogrammās bieži atkārtojas viens maksimums: kompilēšana (build). npm run build Next.js, Nuxt vai Angular projektā pati par sevi uz dažām minūtēm parasti prasa 1 līdz 2 GB, papildus tam, kas jau darbojas. Kompilēt serverī nozīmē dimensionēt šim maksimumam; kompilēt savā datorā vai nepārtrauktās integrācijas (CI) vidē un augšupielādēt tikai rezultātu nozīmē no tā izvairīties.

Tāds pats spriedums attiecas uz Docker konteineriem: katrs konteiners ir procesu kopums kā jebkurš cits, un Docker dēmons pieliek savu patēriņu. docker stats parāda, cik aizņem katrs no tiem.

Tipiski profili

Šie profili saskaita iepriekšējās sastāvdaļas, ieskaitot maksimumu un rezervi. Tie pieņem parasta izmēra lietojumprogrammu un palaišanas brīža datplūsmu; apjomīga datubāze vai pastāvīgi liela datplūsma bīda skaitli uz augšu.

Kas darbojas serverīParedzamā atmiņa
Statiska vietne, starpniekserveris, neliels bots vai ieplānots skripts1 līdz 2 GB
Viena WordPress vietne ar MariaDB un lapu kešatmiņu2 GB
WooCommerce veikals vai vairākas WordPress vietnes4 GB
Node.js vai Python API ar PostgreSQL, pirmie lietotāji4 GB
Next.js lietojumprogramma, kompilēta serverī, ar savu API un PostgreSQL datubāzi6 līdz 8 GB
Vairākas lietojumprogrammas konteineros, testa un produkcijas vide8 GB
Vairākus desmitus GB liela datubāze ar intensīvu lasīšanu16 GB un vairāk
Valodas modelis ar 7 līdz 8 miljardiem parametru, kas darbojas pašā serverī16 GB

Lietojumprogramma, kas izsauc mākslīgā intelekta modeli caur API (OpenAI, Anthropic, Mistral), tiek dimensionēta kā jebkura tīmekļa lietojumprogramma: modelis darbojas pie sava izstrādātāja, un jūsu serveris gaida tā atbildi. Mērogu maina tieši modeļa darbināšana pašā serverī.

Mērīt strādājošā serverī

Strādājošā serverī mērījums aizstāj aplēsi. Trīs komandas parāda, kāda ir situācija:

Terminālis
free -h
ps aux --sort=-rss | head -n 15
vmstat 5 5

Mēriet dienas noslogotākajā brīdī un epizodisko uzdevumu laikā: kompilēšanas, rezerves kopēšanas, importa. Izšķirošs ir maksimums.

Kad atmiņas pietrūkst

Serveris, kuram beidzas atmiņa, nepalēninās pakāpeniski. Kad vairs nav ko atbrīvot, Linux kodols iedarbina OOM killer (out of memory): tas izvēlas procesu, parasti to, kas aizņem visvairāk atmiņas, un aptur to uz vietas. Lietojumprogrammu serverī tā bieži ir datubāze.

Simptomi: brīžiem kļūdas 502 vai 503, pakalpojums, kas restartējas bez redzama iemesla, kompilēšana, kas pārtrūkst ar Killed. Žurnāli to apstiprina:

Terminālis
journalctl -k | grep -i "out of memory"
systemctl status pakalpojuma-nosaukums

Komandas systemctl status izvadē ieraksts Failed with result 'oom-kill' norāda uz pakalpojumu, kas apturēts atmiņas trūkuma dēļ.

Swap (mijmaiņas apgabals diskā), ja serverim tāds ir, šo brīdi attālina, pārvietojot uz disku vismazāk izmantoto atmiņu. Tas ir drošības tīkls, nevis jauda: serveris, kas pastāvīgi balstās uz swap, atbild vairākas reizes lēnāk, pat uz NVMe SSD.

Risinājumi, no vienkāršākā līdz ilgtspējīgākajam: samazināt lietojumprogrammas procesu skaitu (pm.max_children, Gunicorn darba procesi), kompilēt ārpus servera, ierobežot datubāzes atmiņu, pēc tam pāriet uz lielāku izmēru.

Izvēlēties izmēru un plānot turpmāko

  1. Uzskaitiet, kas darbosies: tīmekļa serveris, lietojumprogramma un tās procesu skaits, datubāze, kešatmiņa, ieplānotie uzdevumi.
  2. Saskaitiet pēc sastāvdaļu tabulas, pieskaitiet smagāko maksimumu (bieži tā ir kompilēšana), pēc tam 25 % rezervi.
  3. Izvēlieties izmēru, kas sedz šo kopsummu. No diviem blakus esošiem izmēriem der mazākais, ja pāreja uz lielāku notiek bez pārinstalēšanas.
  4. Mēriet pēc palaišanas, dienas maksimuma brīdī, un pēc tam katrā lietojumprogrammas izaugsmes posmā.

Atmiņa nav vienīgais resurss: procesors ir svarīgs visam, kas skaitļo (kompilēšana, attēlu apstrāde, mākslīgā intelekta modeļa darbināšana), disks ir svarīgs datubāzei un failiem. Tomēr tīmekļa lietojumprogrammai izmēru gandrīz vienmēr nosaka tieši atmiņa.

Pareizais izmērs un brīvība to mainīt

VPS Pro ir pieejams sešos izmēros uz Intel Xeon procesoriem, ECC atmiņas un spoguļotiem NVMe SSD, un jebkurā brīdī pāriet uz lielāku izmēru bez pārinstalēšanas. Visaptverošais atbalsts ir iekļauts: aprakstiet, ko darbinās jūsu serveris, un mēs ieteiksim izmēru, pēc tam katrā jautājumā diagnosticēsim un pateiksim, kas jādara, no sistēmas līdz pat jūsu lietojumprogrammas kodam.

Skatīt VPS Pro

Biežāk uzdotie jautājumi

Cik RAM vajag nelielam VPS?

Statiska vietne, starpniekserveris vai neliels skripts darbojas ar 1 līdz 2 GB. Tiklīdz serveri dala datubāze un lietojumprogramma (PHP, Node.js, Python), rēķinieties ar 2 GB WordPress vietnei un 4 GB pēc pasūtījuma izstrādātai lietojumprogrammai ar PostgreSQL.

Cik RAM vajag WordPress vietnei VPS serverī?

2 GB vietnei ar MariaDB un lapu kešatmiņu, 4 GB WooCommerce veikalam vai vairākām vietnēm. Pirmais iestatījums ir PHP-FPM procesu skaits: katrs aizņem 40 līdz 80 MB.

Vai swap var aizstāt RAM?

Nē. Swap novērš pēkšņu apstāšanos, kad atmiņa ir pilna, bet serveris, kas to izmanto pastāvīgi, atbild vairākas reizes lēnāk, pat uz NVMe SSD. Tas ir drošības tīkls; izmēru izvēlas pēc atmiņas.

Kāpēc free rāda tik maz brīvas atmiņas?

Tāpēc, ka Linux neizmantoto atmiņu izmanto kā failu kešatmiņu. Šī kešatmiņa atbrīvojas, tiklīdz kādai programmai vajadzīga atmiņa. Jāskatās kolonna available, kas rāda patiešām pieejamo atmiņu.

Cik RAM vajag Next.js lietojumprogrammas kompilēšanai?

Rēķinieties ar 1 līdz 2 GB tikai kompilēšanai, papildus tam, kas serverī jau darbojas. Kompilējot savā datorā vai nepārtrauktās integrācijas vidē un augšupielādējot tikai rezultātu, no šī maksimuma var izvairīties.

Sazinieties ar mums