Колко RAM е нужна за VPS: правилото, според всяка употреба

Паметта е ресурсът, който най-често определя размера на един сървър: тя свършва първа, а когато свърши, сървърът не се забавя, а спира услуги. Това ръководство дава правилото за изчисление, колко консумира всеки компонент на едно приложение, типични профили и начина да измерите сървър, който вече работи.

Публикувано на 15 октомври 2026 г. Автор: Време за четене: 9 минути

Всички ръководства

Накратко

  1. Съберете всичко, което остава постоянно в паметта: системата, уеб сървъра, всеки процес на приложението, базата данни, кеша.
  2. Оразмерявайте по пика, а не по средното: компилиране, резервно копие или планирана задача могат да удвоят консумацията за няколко минути.
  3. Добавете 25 % резерв. Паметта, която остава свободна, служи за дисков кеш и ускорява базата данни.
  4. На сървър, който вече работи, четете колоната available на free -h, а не колоната free.
  5. Когато паметта не стига, Linux спира процес, често най-големия: базата данни. Услуга, която се рестартира сама, е първият признак, който да следите.
  6. Изберете размер, който позволява растеж без преинсталиране: нуждите на едно приложение в продукция растат заедно с данните му.

Правилото: съберете това, което остава в паметта

Сървърът не консумира памет „изобщо“: всяка работеща програма заема своя дял, докато работи. Затова изчислението започва от списъка на процесите, които присъстват постоянно, след което добавя пика и резерв:

Памет за предвиждане = (система + постоянни услуги + пик на еднократните задачи) × 1,25

Колко консумира всеки компонент

Порядъците по-долу важат за приложение с обичаен размер, измерено в продукция. Те дават отправна точка; измерването на собственото ви приложение, описано по-долу, винаги има последната дума.

КомпонентТипична паметКакво я променя
Nginx, Caddy (уеб сървър, прокси)10 до 50 MBПочти постоянна: броят на връзките тежи малко.
PHP-FPM (WordPress, Laravel, Symfony)40 до 80 MB на процесБроят на процесите, ограничен от pm.max_children: 10 процеса са 400 до 800 MB.
Node.js (API, Next.js, NestJS)60 до 300 MB на процесБроят на процесите (cluster режим, PM2) и размерът на heap паметта, ограничен от --max-old-space-size.
Python (Django, FastAPI, Flask)80 до 200 MB на процесБроят на worker процесите на Gunicorn или Uvicorn и заредените библиотеки: pandas или модел за машинно обучение добавят стотици MB.
Java (Spring Boot)300 MB до 1 GB на приложениеМаксималният размер на heap паметта: по подразбиране JVM си заделя една четвърт от паметта, която вижда.
Go, Rust10 до 100 MBДанните, които самото приложение държи в паметта.
PostgreSQL25 % от паметта за shared_buffers, плюс няколко MB на връзкаОбемът на често четените данни, броят на връзките, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, 128 MB по подразбиранеНа сървър, посветен на базата, този буфер обикновено заема до 80 % от паметта.
RedisРазмерът на данните, плюс структурите муПо време на запис на диска променените страници се дублират: до двойно в най-лошия случай.
Elasticsearch, OpenSearchПоне 2 GB за heap паметтаHeap паметта не надвишава половината от паметта: останалото служи за кеш на файловете.

Един пик се връща често при JavaScript приложенията: компилирането. npm run build на проект с Next.js, Nuxt или Angular обикновено изисква само по себе си 1 до 2 GB за няколко минути, в допълнение към всичко, което вече работи. Да компилирате на сървъра означава да го оразмерите за този пик; да компилирате на своя компютър или в непрекъснатата интеграция (CI) и да качвате само резултата означава да го избегнете.

Същото разсъждение важи за Docker контейнерите: всеки контейнер е набор от процеси като всички останали, а Docker демонът добавя собствена консумация. docker stats показва колко заема всеки от тях.

Типични профили

Тези профили събират компонентите от предишния раздел, с включени пик и резерв. Те предполагат приложение с обичаен размер и трафика при старта; обемна база данни или постоянно висок трафик изместват стойността нагоре.

Какво работи на сървъраПамет за предвиждане
Статичен сайт, прокси, малък бот или планиран скрипт1 до 2 GB
Един WordPress сайт с MariaDB и кеш на страниците2 GB
Онлайн магазин с WooCommerce или няколко WordPress сайта4 GB
API на Node.js или Python с PostgreSQL, първи потребители4 GB
Приложение с Next.js, компилирано на сървъра, неговото API и база PostgreSQL6 до 8 GB
Няколко приложения в контейнери, тестова и продукционна среда8 GB
База данни от няколко десетки GB с интензивно четене16 GB и повече
Езиков модел със 7 до 8 милиарда параметъра, изпълняван на сървъра16 GB

Приложение, което извиква AI модел през API (OpenAI, Anthropic, Mistral), се оразмерява като всяко уеб приложение: моделът работи при своя създател, а вашият сървър чака отговора му. Изпълнението на модела на самия сървър е това, което променя мащаба.

Измерване на работещ сървър

На сървър в експлоатация измерването заменя оценката. Три команди показват текущото състояние:

Терминал
free -h
ps aux --sort=-rss | head -n 15
vmstat 5 5

Измервайте в най-натоварения момент от деня и по време на еднократните задачи: компилиране, резервно копие, импорт. Решаващ е пикът.

Когато паметта не стига

Сървър, на който паметта не стига, не се забавя постепенно. Когато вече няма какво да освободи, ядрото на Linux задейства OOM killer (out of memory): избира процес, обикновено този, който заема най-много памет, и го спира рязко. На сървър с приложение това често е базата данни.

Симптомите: грешки 502 или 503 от време на време, услуга, която се рестартира без видима причина, компилиране, което прекъсва с Killed. Журналите го потвърждават:

Терминал
journalctl -k | grep -i "out of memory"
systemctl status ime-na-uslugata

В изхода на systemctl status записът Failed with result 'oom-kill' означава услуга, спряна поради липса на памет.

Swap, когато сървърът разполага с такъв, отлага този момент, като премества на диска най-малко използваната памет. Той е предпазна мрежа, а не капацитет: сървър, който постоянно разчита на swap, отговаря няколко пъти по-бавно, дори на NVMe SSD.

Решенията, от най-простото към най-трайното: намалете броя на процесите на приложението (pm.max_children, worker процесите на Gunicorn), компилирайте извън сървъра, ограничете паметта на базата данни, след това преминете към по-голям размер.

Изборът на размер и следващите стъпки

  1. Избройте какво ще работи: уеб сървър, приложение и брой процеси, база данни, кеш, планирани задачи.
  2. Съберете стойностите с таблицата на компонентите, добавете най-тежкия пик (често компилирането), след това 25 % резерв.
  3. Изберете размера, който покрива тази сума. Между два съседни размера по-малкият е подходящ, стига преминаването към по-голям размер да става без преинсталиране.
  4. Измервайте след пускането онлайн, в пика на деня, и след това при всеки етап от растежа на приложението.

Паметта не е единственият ресурс: процесорът има значение за всичко, което изчислява (компилиране, обработка на изображения, изпълнение на AI модел), а дискът за базата данни и файловете. За едно уеб приложение обаче почти винаги паметта определя размера.

Правилният размер и свободата да го промените

VPS Pro се предлага в шест размера, на процесори Intel Xeon, ECC памет и NVMe SSD в огледален режим, и преминава към по-голям размер по всяко време, без преинсталиране. Цялостната поддръжка е включена: опишете ни какво ще работи на сървъра ви и ще ви препоръчаме размера, а след това при всеки въпрос поставяме диагноза и ви казваме какво да направите, от системата до кода на вашето приложение.

Разгледайте VPS Pro

Често задавани въпроси

Колко RAM е нужна за малък VPS?

Статичен сайт, прокси или малък скрипт работят с 1 до 2 GB. Щом база данни и приложение (PHP, Node.js, Python) споделят сървъра, предвидете 2 GB за WordPress сайт и 4 GB за приложение по поръчка с PostgreSQL.

Колко RAM е нужна за WordPress на VPS?

2 GB за сайт с MariaDB и кеш на страниците, 4 GB за онлайн магазин с WooCommerce или за няколко сайта. Броят на процесите на PHP-FPM е първата настройка: всеки от тях заема 40 до 80 MB.

Може ли swap да замени RAM паметта?

Не. Swap предотвратява рязкото спиране, когато паметта е пълна, но сървър, който го използва постоянно, отговаря няколко пъти по-бавно, дори на NVMe SSD. Той е предпазна мрежа; размерът се избира по паметта.

Защо free показва почти нулева свободна памет?

Защото Linux използва неизползваната памет като кеш на файловете. Този кеш се освобождава веднага щом някоя програма има нужда от памет. Колоната, която трябва да четете, е available: тя показва паметта, която е реално на разположение.

Колко RAM е нужна за компилиране на приложение с Next.js?

Предвидете 1 до 2 GB само за компилирането, в допълнение към това, което вече работи на сървъра. Компилирането на вашия компютър или в непрекъснатата интеграция (CI), с качване само на резултата, избягва този пик.

Свържете се с нас