Małym serwerom pamięć kończy się w najgorszym momencie: przy apt upgrade, buildzie Dockera, nocnej kopii zapasowej. Bez swapu OOM killer jądra wybiera proces i go zabija, często twoją bazę danych. Plik swap to tani pas bezpieczeństwa, który daje tym skokom ujście. Wystarczy pięć poleceń.
1. Sprawdź, co masz
swapon --show
free -h
Jeśli swapon --show nic nie wypisuje, swapu jeszcze nie ma.
2. Utwórz plik swap
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
chmod 600 jest ważne: swap może zawierać fragmenty wszystkiego, co było w pamięci, łącznie z sekretami, więc czytać go powinien tylko root. Jeśli fallocate zwróci błąd „operation not supported”, użyj zamiast niego dd:
dd if=/dev/zero of=/swapfile bs=1M count=2048 status=progress
3. Utrwal go
Bez tego kroku swap zniknie po restarcie:
echo '/swapfile none swap sw 0 0' >> /etc/fstab
4. Ustaw swappiness
Poproś jądro, żeby preferowało RAM i używało swapu głównie pod presją:
echo 'vm.swappiness=10' > /etc/sysctl.d/99-swap.conf
sysctl --system
5. Sprawdź
swapon --show
free -h
Powinieneś zobaczyć urządzenie swap o rozmiarze 2 GB, a cat /proc/sys/vm/swappiness powinno wypisać 10.
Jak duży?
- Serwer z 1–2 GB RAM-u: 1–2 GB swapu.
- 4 GB i więcej: 1–2 GB nadal wystarcza jako siatka bezpieczeństwa.
Nie dobieraj swapu według zasady „dwa razy tyle co RAM”. Na serwerze swap ma amortyzować krótkie skoki, a nie uruchamiać obciążenia, które nie mieszczą się w pamięci.
Kiedy swap nie jest odpowiedzią
Obserwuj go przez kilka dni:
vmstat 5
Kolumny si i so pokazują strony wczytywane ze swapu i zapisywane do niego na sekundę. Sporadyczna aktywność jest normalna. Stałe wartości niezerowe oznaczają, że serwerowi brakuje pamięci i wszystko czeka na dysk. Wtedy rozwiązaniem jest więcej RAM-u: zobacz, ile RAM-u potrzebuje VPS. W EQVPS możesz przejść na wyższy plan bez reinstalacji; twoje dane zostają na miejscu.
Komentarze
Brak komentarzy. Bądź pierwszy.