 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Swap i RAM na VPS — konfiguracja

# Swap i RAM na VPS — konfiguracja i optymalizacja pamięci

Opublikowano: 8 kwietnia 2026 · Kategoria: VPS i serwery

Mały VPS (1-2 GB RAM) to najczęstszy wybór dla stron WordPress i małych aplikacji. Problem pojawia się, gdy MySQL, PHP-FPM i nginx jednocześnie potrzebują więcej pamięci niż dostępne RAM — Linux uruchamia OOM Killer, który losowo zabija procesy. Prawidłowo skonfigurowany swap i optymalizacja pamięci zapobiegają temu scenariuszowi.

## Sprawdzenie aktualnego stanu pamięci

\# Przegląd RAM i swap
free -h

# Szczegółowy widok swap
swapon --show

# Top 10 procesów według zużycia RAM
ps aux --sort=-%mem | head -11

# Zużycie RAM w czasie rzeczywistym
top -o %MEM

# Czy OOM Killer działał? (sprawdź logi)
sudo dmesg | grep -i "killed process"
sudo grep -i "out of memory" /var/log/syslog | tail -20

## Dodanie pliku swap

Rekomendowany rozmiar swap: 2x RAM dla serwerów <4 GB RAM, lub stałe 4 GB dla większych.

\# Utwórz plik swap (2 GB)
sudo fallocate -l 2G /swapfile

# Jeśli fallocate nie działa (niektóre systemy plików):
# sudo dd if=/dev/zero of=/swapfile bs=1M count=2048

# Zabezpiecz plik (tylko root może czytać)
sudo chmod 600 /swapfile

# Sformatuj jako przestrzeń swap
sudo mkswap /swapfile

# Aktywuj swap
sudo swapon /swapfile

# Sprawdź czy działa
free -h
swapon --show

Aby swap był trwały po restarcie, dodaj do `/etc/fstab`:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

## Konfiguracja swappiness

`vm.swappiness` (0-100) kontroluje jak agresywnie kernel używa swap. Domyślna wartość 60 jest zbyt wysoka dla serwerów web.

\# Sprawdź aktualną wartość
cat /proc/sys/vm/swappiness

# Zmień tymczasowo (bez restartu)
sudo sysctl vm.swappiness=10

# Zmień trwale
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

Zastosowanie

swappiness

Opis

Serwer web (nginx + PHP)

**10**

Preferuj RAM, swap tylko w awaryjności

Baza danych (MySQL/MariaDB)

**1**

Maksymalizuj RAM dla buforów DB

Desktop Ubuntu

**60**

Domyślna wartość (zbyt wysoka dla serwera)

Serwer Redis/cache

**0-10**

Cache w RAM, swap szkodzi wydajności

## Optymalizacja MySQL/MariaDB — limit pamięci

MySQL jest głównym konsumentem RAM na VPS. Kluczowy parametr to `innodb_buffer_pool_size` — powinien być ok. 50-70% dostępnego RAM:

\# /etc/mysql/mysql.conf.d/mysqld.cnf lub /etc/my.cnf

\[mysqld\]
# 1 GB RAM na VPS — ustaw na 256-512 MB
innodb\_buffer\_pool\_size = 256M

# 2 GB RAM na VPS — ustaw na 512 MB - 1 GB
# innodb\_buffer\_pool\_size = 512M

# Ogranicz pamięć dla tabel tymczasowych
tmp\_table\_size = 64M
max\_heap\_table\_size = 64M

# Sprawdzenie aktualnego użycia po restarcie:
# SHOW VARIABLES LIKE 'innodb\_buffer\_pool\_size';

## Optymalizacja PHP-FPM — liczba procesów

\# /etc/php/8.2/fpm/pool.d/www.conf

\[www\]
# Tryb dynamiczny — dostosowuje liczbę procesów
pm = dynamic

# Ile RAM zajmuje jeden proces PHP?
# Sprawdź: ps -o rss= -C php-fpm8.2 | awk '{sum+=$1} END {print sum/NR/1024 " MB"}'
# Typowy WordPress: 30-60 MB / proces

# Dla 1 GB RAM (po odjęciu nginx + MySQL ~400 MB zostaje ~600 MB dla PHP):
# 600 MB / 40 MB (avg) = max 15 procesów
pm.max\_children = 10
pm.start\_servers = 3
pm.min\_spare\_servers = 2
pm.max\_spare\_servers = 5

# Ograniczenie pamięci na request
php\_admin\_value\[memory\_limit\] = 128M

## Orientacyjne wymagania RAM

Konfiguracja

Min. RAM

Komfortowe RAM

nginx + PHP-FPM + WordPress (1 strona)

512 MB

1 GB

nginx + PHP-FPM + MySQL + WordPress

1 GB

2 GB

WooCommerce + duży katalog produktów

2 GB

4 GB

WordPress Multisite (5+ stron)

2 GB

4 GB

nginx + PHP + Redis + MySQL

1.5 GB

3 GB

## Najczęstsze pytania

Jak dodać swap do VPS? +

Dodanie 2 GB swap: sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile. Aby swap był trwały po restarcie, dodaj do /etc/fstab: /swapfile none swap sw 0 0. Weryfikacja: free -h lub swapon --show.

Ile RAM potrzebuje WordPress na VPS? +

WordPress z kilkoma wtyczkami potrzebuje min. 256 MB RAM na proces PHP-FPM. Serwer z nginx + PHP-FPM + MySQL + WordPress bezpiecznie działa na 1 GB RAM. WooCommerce z dużym katalogiem produktów potrzebuje 2 GB+. Monitoruj: free -h i ps aux --sort=-%mem | head.

Co to jest OOM Killer i jak go uniknąć? +

OOM Killer (Out of Memory Killer) to mechanizm Linux, który zabija procesy gdy system wyczerpie dostępną pamięć RAM + swap. Typowe ofiary: MySQL, PHP-FPM, lub sam nginx. Objaw: proces nagle znika, w logach "Killed process". Zapobieganie: dodaj swap, zmniejsz memory\_limit w PHP, zoptymalizuj innodb\_buffer\_pool\_size w MySQL.

Jaka jest optymalna wartość swappiness na VPS? +

Domyślna wartość swappiness to 60 — system zaczyna używać swap gdy RAM jest zapełniony w 40%. Dla serwerów web: swappiness=10 (używaj swap tylko gdy naprawdę konieczne, preferuj RAM). Dla baz danych: swappiness=1. Zmiana tymczasowa: sudo sysctl vm.swappiness=10. Trwała zmiana: echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf.

## Do testów swapu i pamięci wybieraj VPS, nie shared hosting

Tutaj najłatwiej porównać, ile RAM naprawdę dostajesz i jak wygląda sensowny punkt startowy dla własnej konfiguracji.

Mikrus

Dobry do sprawdzenia minimalnych konfiguracji i pracy z OOM killerem.

Budżet

[Aktywuj rabat →](/out/mikrus)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus)

Contabo

Warto porównać, jeśli priorytetem są zasoby pamięci.

RAM

[Aktywuj rabat →](/out/contabo)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo)

ProSerwer.pl

Polska alternatywa dla własnych ustawień pamięci i monitoringu.

PL VPS

[Aktywuj rabat →](/out/proserwer-pl)

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer)

## Powiązane strony

-   [PHP-FPM — konfiguracja i optymalizacja](/baza-wiedzy/php-fpm-konfiguracja-optymalizacja)
-   [Redis cache dla WordPress](/baza-wiedzy/redis-cache-wordpress)
-   [Nginx — konfiguracja virtual hosts](/baza-wiedzy/nginx-vhost-konfiguracja)
-   [Serwer dedykowany vs VPS](/baza-wiedzy/hosting-dedykowany-vs-vps)
-   [Wszystkie artykuły](/baza-wiedzy/)