Przejdź do treści
Aktualny kupon:10% zniżkiUżyj w zamówieniu

Swap na VPS: kiedy go dodać i jak

Czym jest swap, kiedy pomaga, a kiedy nie. Utwórz plik swap, włącz go na stałe przez /etc/fstab, ustaw swappiness i dowiedz się, jak znów usunąć swap.

  • początkujący
  • ~10 min
  • Zaktualizowano 9.10.2026

Swap to miejsce na dysku, do którego system przenosi dane z RAM, gdy pamięci zaczyna brakować. Dodasz go w kilka minut, a dzięki niemu VPS nie zawiesi się przy krótkim skoku zużycia. Pokażemy też, kiedy swap nie pomaga i potrzebujesz więcej RAM.

Czego potrzebujesz

  • VPS w StormHost z Ubuntu 24.04 lub Debianem 13
  • Połączenie SSH jako root (poradnik)
  • Wolne miejsce na dysku co najmniej wielkości swapu (sprawdź przez df -h /)
  • Około 10 minut

Czym jest swap i kiedy pomaga#

Gdy RAM się kończy, a swapu nie ma, jądro Linuxa uruchamia OOM killer („out of memory”) i zabija proces zajmujący najwięcej pamięci. Zwykle jest to dokładnie Twoja baza danych, serwer gier lub aplikacja. W logu znajdziesz wtedy Out of memory: Killed process.

Ze swapem system najpierw przenosi rzadko używane dane na dysk, a proces działa dalej.

SytuacjaCzy swap pomaga?
Krótki skok (aktualizacje, kompilacja, kopia zapasowa)Tak, VPS przetrwa go bez awarii.
Dane wczytane raz i potem leżące bezczynnie (część pamięci bazy danych, nieużywane usługi)Tak, zwalnia RAM na to, co ważne.
Aplikacja stale potrzebuje więcej RAM, niż ma VPSNie. Dysk jest wielokrotnie wolniejszy od RAM, więc aplikacja zwalnia. Rozwiązaniem jest upgrade RAM.
Serwer gier (Minecraft, Rust) z pełną pamięciąNie. Serwer zaczyna lagować. Daj mu mniej pamięci albo dodaj RAM.

Sprawdzenie bieżącego stanu#

bash
swapon --show
free -h
  • swapon --show – wypisuje aktywny swap. Jeśli nic nie wypisze, VPS nie ma swapu (dla nowego VPS to normalne).
  • free -h – pokazuje zużycie RAM i swapu w czytelnych jednostkach (-h = human readable).

W wyjściu free -h obserwuj kolumnę available w linii Mem: ile pamięci naprawdę mają do dyspozycji aplikacje. Linia Swap pokazuje rozmiar i zużycie swapu.

Jak duży swap wybrać#

RAM VPSZalecany swapDlaczego
2 GB2 GBMały VPS najłatwiej dochodzi do limitu, więc rezerwa się przydaje.
4–⁠8 GB2–⁠4 GBWystarczy na pokrycie skoków.
16 GB i więcej2–⁠4 GBWiększy swap nie ma sensu. Jeśli VPS naprawdę go używa, potrzebuje więcej RAM.

Swap zajmuje miejsce na dysku, więc nie rób go niepotrzebnie dużego.

Tworzenie pliku swap#

Dotyczy zarówno Ubuntu 24.04, jak i Debiana 13. Dla przykładu utworzymy swap 2 GB w pliku /swapfile.

  1. Utwórz plik o wymaganym rozmiarze:

    bash
    fallocate -l 2G /swapfile
    • fallocate – szybko rezerwuje miejsce na dysku dla pliku.
    • -l 2G – rozmiar pliku (2G = 2 GB; dla 4 GB wpisz 4G).
    • /swapfile – ścieżka do pliku.
  2. Ustaw uprawnienia tak, aby plik mógł czytać tylko root. Swap może zawierać fragmenty pamięci z hasłami:

    bash
    chmod 600 /swapfile
    • 600 – odczyt i zapis tylko dla właściciela (root), nic dla pozostałych.
  3. Przygotuj plik jako swap:

    bash
    mkswap /swapfile
    • mkswap – zapisuje do pliku nagłówek swapu. Wypisuje Setting up swapspace version 1, size = 2 GiB.
  4. Włącz swap:

    bash
    swapon /swapfile
    • swapon – zaczyna używać swapu od razu, ale tylko do następnego restartu.
  5. Sprawdź wynik przez swapon --show. Zobaczysz linię /swapfile file 2G.

Gdy swapon zgłasza „holes”

Jeśli swapon wypisze skipping - it appears to have holes, system plików nie przyjął pliku utworzonego przez fallocate. Usuń go (rm /swapfile) i utwórz wolniej, ale niezawodnie przez dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress (count=2048 = 2048 × 1 MB = 2 GB). Potem kontynuuj od kroku 2.

Włączenie na stałe przez /etc/fstab#

Aby swap włączał się także po restarcie, dodaj go do pliku /etc/fstab.

  1. Zarchiwizuj plik:

    bash
    cp /etc/fstab /etc/fstab.bak
  2. Dodaj linię swapu na koniec pliku:

    bash
    echo '/swapfile none swap sw 0 0' >> /etc/fstab
    • echo '…' – wypisuje tekst w cudzysłowie.
    • >> – dopisuje tekst na koniec pliku. Uwaga: pojedynczy > nadpisałby cały plik.

    Co oznacza każda kolumna linii:

    KolumnaWartośćZnaczenie
    1. urządzenie/swapfilePlik swap.
    2. punkt montowanianoneSwap nie jest nigdzie montowany.
    3. typswapTo swap.
    4. opcjeswDomyślne opcje swapu.
    5. dump0Nie archiwizuj starym narzędziem dump.
    6. sprawdzanie0Nie sprawdzaj przy starcie (swap nigdy nie jest sprawdzany).
  3. Sprawdź, czy fstab jest w porządku:

    bash
    findmnt --verify
    • findmnt --verify – sprawdza składnię /etc/fstab. Wynik musi być Success, no errors or warnings detected albo podsumowanie z 0 parse errors, 0 errors. Same ostrzeżenia (warnings) o innych liniach nie zatrzymają startu VPS.

Zepsuty /etc/fstab może zatrzymać start VPS

Jeśli VPS nie wstanie po restarcie, otwórz konsolę w przeglądarce i przywróć kopię przez cp /etc/fstab.bak /etc/fstab.

Swappiness: jak chętnie system swapuje#

Wartość vm.swappiness (0–⁠200) mówi, jak szybko jądro zaczyna przenosić dane do swapu. Domyślnie 60. Na serwerze lepsza jest niższa wartość, aby swap służył głównie jako siatka bezpieczeństwa.

UstawienieCo robiZalecana wartośćKiedy zmieniać
vm.swappinessRównowaga między zwalnianiem cache plików a przenoszeniem pamięci procesów do swapu. Niższa liczba = mniej swapowania.10Wróć do 60 (domyślnej), jeśli VPS przy pełnej pamięci jest wolniejszy niż wcześniej. Wartość 0 nie oznacza „swap wyłączony”; system używa go tylko w ostateczności.
  1. Sprawdź bieżącą wartość:

    bash
    cat /proc/sys/vm/swappiness
  2. Zapisz nową wartość do własnego pliku (Debian 13 nie czyta już /etc/sysctl.conf; folder /etc/sysctl.d/ działa w obu systemach):

    bash
    echo 'vm.swappiness=10' > /etc/sysctl.d/99-swappiness.conf
  3. Wczytaj ustawienie bez restartu:

    bash
    sysctl --system
    • sysctl --system – wczytuje wszystkie ustawienia z folderów sysctl.d. W wyjściu zobaczysz linię vm.swappiness = 10.

Weryfikacja#

  • swapon --show pokazuje /swapfile z właściwym rozmiarem.
  • free -h ma niezerową wartość total w linii Swap.
  • Po restarcie VPS swap jest aktywny nawet bez ręcznego uruchamiania swapon.

Usuwanie swapu#

  1. Wyłącz swap: swapoff /swapfile. Jeśli swap jest mocno używany, trwa to dłużej, bo dane wracają do RAM. Jeśli brakuje na to RAM, polecenie kończy się błędem i nic się nie dzieje.
  2. Usuń linię /swapfile none swap sw 0 0 z pliku /etc/fstab (nano /etc/fstab).
  3. Usuń plik: rm /swapfile.

Rozwiązywanie problemów#

fallocate: fallocate failed: No space left on device#

Na dysku brakuje miejsca. Sprawdź wolne miejsce przez df -h / i wybierz mniejszy swap albo rozszerz dysk.

swapon: /swapfile: insecure permissions 0644, 0600 suggested.#

Uprawnienia pliku są za szerokie. Swap się włącza, ale plik może czytać każdy na VPS. Uruchom chmod 600 /swapfile.

swapon: /swapfile: swapon failed: Device or resource busy#

Swap jest już włączony. Sprawdź przez swapon --show.

VPS jest wolny nawet ze swapem, a swap jest stale pełny#

Aplikacje stale potrzebują więcej pamięci, niż ma VPS. Sprawdź, co zużywa pamięć (htop, sortowanie po kolumnie MEM%), i albo daj aplikacji mniej pamięci, albo dodaj RAM w zakładce Zmiana pakietu.

Podsumowanie

  • Swap chroni przed awarią przy krótkim braku RAM, ale nie zastępuje RAM.
  • Tworzenie: fallocate, chmod 600, mkswap, swapon.
  • Na stałe: linia /swapfile none swap sw 0 0 w /etc/fstab i sprawdzenie przez findmnt --verify.
  • Na serwerze ustaw vm.swappiness=10 w /etc/sysctl.d/99-swappiness.conf.
  • Pełny swap i wolny VPS oznaczają, że potrzebujesz więcej RAM.

Wyszukiwanie w poradnikach