Ile RAM potrzebuje VPS: zasada doboru dla każdego zastosowania

Pamięć to zasób, który najczęściej decyduje o rozmiarze serwera: kończy się jako pierwsza, a gdy jej zabraknie, serwer nie zwalnia, tylko zatrzymuje usługi. Ten poradnik podaje zasadę obliczania, zużycie każdego elementu aplikacji, typowe profile i sposób pomiaru na serwerze, który już działa.

Opublikowano 15 października 2026 Autor: Czas czytania: 9 minut

Wszystkie poradniki

W skrócie

  1. Proszę zsumować to, co stale zajmuje pamięć: system, serwer WWW, każdy proces aplikacji, bazę danych, pamięć podręczną.
  2. Rozmiar dobiera się do szczytu, a nie do średniej: kompilacja, kopia zapasowa lub zaplanowane zadanie mogą na kilka minut podwoić zużycie.
  3. Proszę dodać 25 % zapasu. Wolna pamięć służy jako pamięć podręczna dysku i przyspiesza bazę danych.
  4. Na działającym serwerze proszę czytać kolumnę available polecenia free -h, a nie kolumnę free.
  5. Gdy brakuje pamięci, Linux zatrzymuje proces, często największy: bazę danych. Usługa, która sama się restartuje, to pierwszy sygnał do obserwowania.
  6. Proszę wybrać rozmiar, który pozwala przejść wyżej bez ponownej instalacji: potrzeby aplikacji produkcyjnej rosną razem z jej danymi.

Zasada: zsumować to, co pozostaje w pamięci

Serwer nie zużywa pamięci „ogólnie”: każdy działający program zajmuje jej część tak długo, jak działa. Obliczenie zaczyna się więc od listy procesów obecnych na stałe, a następnie dodaje szczyt i zapas:

Potrzebna pamięć = (system + stałe usługi + szczyt zadań okresowych) × 1,25

Ile zużywa każdy element

Poniższe rzędy wielkości dotyczą aplikacji typowej wielkości, zmierzonej na produkcji. Są punktem wyjścia; ostatnie słowo zawsze należy do pomiaru własnej aplikacji, opisanego niżej.

ElementTypowe zużycie pamięciOd czego zależy
Nginx, Caddy (serwer WWW, proxy)Od 10 do 50 MBPrawie stałe: liczba połączeń ma niewielki wpływ.
PHP-FPM (WordPress, Laravel, Symfony)Od 40 do 80 MB na procesLiczba procesów, ograniczona przez pm.max_children: 10 procesów to od 400 do 800 MB.
Node.js (API, Next.js, NestJS)Od 60 do 300 MB na procesLiczba procesów (tryb cluster, PM2) i rozmiar sterty, ograniczony przez --max-old-space-size.
Python (Django, FastAPI, Flask)Od 80 do 200 MB na procesLiczba workerów Gunicorn lub Uvicorn oraz załadowane biblioteki: pandas czy model uczenia maszynowego dodają setki MB.
Java (Spring Boot)Od 300 MB do 1 GB na aplikacjęMaksymalny rozmiar sterty: domyślnie JVM przydziela sobie ćwierć pamięci, którą widzi.
Go, RustOd 10 do 100 MBDane, które aplikacja sama przechowuje w pamięci.
PostgreSQL25 % pamięci na shared_buffers, plus kilka MB na połączenieIlość często odczytywanych danych, liczba połączeń, work_mem.
MySQL, MariaDBinnodb_buffer_pool_size, domyślnie 128 MBNa serwerze przeznaczonym wyłącznie dla bazy ten bufor zajmuje często do 80 % pamięci.
RedisRozmiar danych plus jego strukturyPodczas zapisu na dysk zmodyfikowane strony są duplikowane: w najgorszym przypadku nawet dwukrotność.
Elasticsearch, OpenSearchCo najmniej 2 GB na stertęSterta nie przekracza połowy pamięci: reszta służy jako pamięć podręczna plików.

W aplikacjach JavaScript często powraca jeden szczyt: kompilacja. npm run build w projekcie Next.js, Nuxt lub Angular potrzebuje zwykle sam od 1 do 2 GB przez kilka minut, ponad to, co już działa. Kompilacja na serwerze oznacza dobór rozmiaru do tego szczytu; kompilacja na własnym komputerze lub w ciągłej integracji (CI) i wgrywanie tylko wyniku pozwala go uniknąć.

To samo rozumowanie dotyczy kontenerów Docker: każdy kontener to zestaw zwykłych procesów, a demon Dockera dodaje własne zużycie. docker stats pokazuje, ile zajmuje każdy z nich.

Typowe profile

Te profile sumują powyższe elementy, łącznie ze szczytem i zapasem. Zakładają aplikację typowej wielkości i ruch z okresu uruchomienia; duża baza lub stały ruch przesuwają wynik w górę.

Co działa na serwerzePotrzebna pamięć
Strona statyczna, proxy, mały bot lub zaplanowany skryptOd 1 do 2 GB
Jedna strona WordPress z MariaDB i pamięcią podręczną stron2 GB
Sklep WooCommerce lub kilka stron WordPress4 GB
API w Node.js lub Pythonie z PostgreSQL, pierwsi użytkownicy4 GB
Aplikacja Next.js kompilowana na serwerze, jej API i baza PostgreSQLOd 6 do 8 GB
Kilka aplikacji w kontenerach, środowisko testowe i produkcyjne8 GB
Baza danych o rozmiarze kilkudziesięciu GB, intensywnie odpytywana16 GB i więcej
Model językowy o 7 do 8 miliardach parametrów uruchamiany na serwerze16 GB

Aplikację, która wywołuje model AI przez API (OpenAI, Anthropic, Mistral), dobiera się jak każdą aplikację webową: model działa u swojego dostawcy, a Państwa serwer czeka na odpowiedź. Skalę zmienia dopiero uruchomienie modelu na samym serwerze.

Pomiar na działającym serwerze

Na działającym serwerze pomiar zastępuje szacunki. Trzy polecenia pokazują, jak wygląda sytuacja:

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

Proszę mierzyć w najbardziej obciążonej porze dnia oraz podczas zadań okresowych: kompilacji, kopii zapasowej, importu. Liczy się szczyt.

Gdy brakuje pamięci

Serwer, któremu kończy się pamięć, nie zwalnia stopniowo. Gdy nie ma już czego zwolnić, jądro Linuksa uruchamia OOM killer (out of memory): wybiera proces, zwykle ten, który zajmuje najwięcej pamięci, i natychmiast go zatrzymuje. Na serwerze aplikacji często jest to baza danych.

Objawy: sporadyczne błędy 502 lub 503, usługa, która restartuje się bez widocznego powodu, kompilacja przerwana komunikatem Killed. Potwierdzają to logi:

Terminal
journalctl -k | grep -i "out of memory"
systemctl status nazwa-uslugi

W wyniku systemctl status wpis Failed with result 'oom-kill' oznacza usługę zatrzymaną z powodu braku pamięci.

Swap, jeśli serwer go ma, opóźnia ten moment, przenosząc na dysk najrzadziej używaną pamięć. To siatka bezpieczeństwa, a nie dodatkowa pojemność: serwer, który stale korzysta ze swapu, odpowiada kilkakrotnie wolniej, nawet na SSD NVMe.

Rozwiązania, od najprostszego do najtrwalszego: zmniejszyć liczbę procesów aplikacji (pm.max_children, workery Gunicorn), kompilować poza serwerem, ograniczyć pamięć bazy danych, a następnie przejść na większy rozmiar.

Wybór rozmiaru i plan na przyszłość

  1. Proszę spisać, co będzie działać: serwer WWW, aplikacja i liczba jej procesów, baza danych, pamięć podręczna, zaplanowane zadania.
  2. Proszę zsumować zużycie według tabeli elementów, dodać najcięższy szczyt (często kompilację), a potem 25 % zapasu.
  3. Proszę wybrać rozmiar, który pokrywa tę sumę. Z dwóch sąsiednich rozmiarów wystarczy mniejszy, o ile przejście na większy odbywa się bez ponownej instalacji.
  4. Proszę mierzyć po uruchomieniu, w szczycie dnia, a potem na każdym etapie wzrostu aplikacji.

Pamięć to nie jedyny zasób: procesor liczy się przy tym, co wykonuje obliczenia (kompilacja, przetwarzanie obrazów, uruchamianie modelu AI), a dysk przy bazie danych i plikach. W przypadku aplikacji webowej to jednak prawie zawsze pamięć wyznacza rozmiar.

Właściwy rozmiar i swoboda jego zmiany

VPS Pro jest dostępny w sześciu rozmiarach, na procesorach Intel Xeon, pamięci ECC i SSD NVMe w konfiguracji lustrzanej, i przechodzi na większy rozmiar w dowolnej chwili, bez ponownej instalacji. Kompleksowe wsparcie jest w cenie: proszę opisać, co będzie działać na Państwa serwerze, a doradzimy rozmiar, potem zaś przy każdym pytaniu diagnozujemy i wskazujemy, co zrobić, od systemu po kod Państwa aplikacji.

Poznaj VPS Pro

Częste pytania

Ile RAM potrzebuje mały VPS?

Strona statyczna, proxy lub mały skrypt działają w 1 do 2 GB. Gdy tylko serwer dzielą baza danych i aplikacja (PHP, Node.js, Python), należy liczyć 2 GB dla strony WordPress i 4 GB dla aplikacji na zamówienie z PostgreSQL.

Ile RAM dla WordPressa na VPS?

2 GB dla strony z MariaDB i pamięcią podręczną stron, 4 GB dla sklepu WooCommerce lub kilku stron. Pierwszym ustawieniem do sprawdzenia jest liczba procesów PHP-FPM: każdy zajmuje od 40 do 80 MB.

Czy swap może zastąpić RAM?

Nie. Swap zapobiega nagłemu zatrzymaniu, gdy pamięć jest pełna, ale serwer, który stale z niego korzysta, odpowiada kilkakrotnie wolniej, nawet na SSD NVMe. To siatka bezpieczeństwa; rozmiar dobiera się według pamięci.

Dlaczego free prawie nie pokazuje wolnej pamięci?

Ponieważ Linux wykorzystuje nieużywaną pamięć jako pamięć podręczną plików. Ta pamięć podręczna zwalnia się, gdy tylko program potrzebuje pamięci. Należy czytać kolumnę available, która podaje pamięć faktycznie dostępną.

Ile RAM potrzeba do kompilacji aplikacji Next.js?

Od 1 do 2 GB na samą kompilację, ponad to, co już działa na serwerze. Kompilacja na własnym komputerze lub w ciągłej integracji i wgrywanie tylko wyniku pozwala uniknąć tego szczytu.

Skontaktuj się z nami