Serwer działa wolno: od czego zacząć
Pięciominutowa procedura diagnostyczna: CPU, pamięć, dysk, sieć — jak kilkoma komendami ustalić, co dokładnie jest wąskim gardłem i co dalej robić.
Zaktualizowano 23 sierpnia 2026
„Wszystko działa wolno” to nie diagnoza. Wąskich gardeł są tylko cztery: CPU, pamięć, dysk i sieć. Poniżej znajdziesz kolejność sprawdzania, która w pięć minut wskaże jedno z nich.
Krok 1: ogólny obraz
uptime
free -h
df -h
Trzy komendy od razu wykluczają połowę opcji. Jeśli średnie obciążenie jest wyraźnie wyższe niż liczba rdzeni w twoim tierze, masz kolejkę — zobacz Load average. available blisko zera oznacza pamięć. Jeśli partycja jest zapełniona w 100%, nie szukaj dalej — przeczytaj Out of space.
Krok 2: co dokładnie jest wąskim gardłem
vmstat 2 5
Spójrz na uśrednione kolumny, wszystkie oprócz pierwszego wiersza:
- wysokie
usisy, dużer— ogranicza CPU; - wysokie
wa, dużeb— ogranicza dysk; - niezerowe
siiso— następuje swapping, czyli kończy się pamięć; - wysokie
st— czas zabrany przez hypervisor, to przyczyna zewnętrzna, napisz do supportu.
Krok 3: znajdź winowajcę
ps aux --sort=-%cpu | head -10
ps aux --sort=-%mem | head -10
iotop -boPan 3 | head -20 # apt install iotop
ss -tn state established | wc -l
Żywy obraz łatwiej czytać w htop lub btop. Uważaj na procesy w stanie D — czekają na dysk i podbijają obciążenie.
Jeśli winowajcą jest twoja aplikacja, kolejne pytanie dotyczy jej: wolne zapytania do bazy, brakujący indeks, zbyt wiele workerów, nieskończona pętla po deployu. Powiąż moment rozpoczęcia spowolnienia z logiem:
journalctl --since "1 hour ago" -p warning
Krok 4: sprawdź historię
Otwórz „Overview” w panelu /hosting/vds/m/<id> i popatrz na wykresy z ostatniego dnia i tygodnia. Trzy typowe wzorce:
- skok w konkretnym momencie — coś się zmieniło: deploy, aktualizacja, nowy cron;
- regularny szczyt według harmonogramu — zadanie w tle; przenieś je na noc albo ogranicz przez
niceiionice; - płaski plateau od tygodni — po prostu przerosłeś swój tier.
Co zrobić z tym ustaleniem
| Wąskie gardło | Szybkie działanie | Długoterminowe rozwiązanie |
|---|---|---|
| CPU | znajdź i zatrzymaj zbędny proces | tier z większą liczbą rdzeni |
| Pamięć | ogranicz workery i bufory bazy, dodaj swap | tier z większą ilością pamięci |
| Dysk | ogranicz backupy przez ionice, przytnij logi | wyższy tier: plateau rośnie wraz z liczbą rdzeni |
| Sieć | ogranicz pobieranie w tle przez --bwlimit | zbadaj źródło ruchu |
Plateau dysku oblicza się tak: 60 MB/s zapisów na rdzeń, nie mniej niż 60 i nie więcej niż 400, przy odczytach dwa razy wyższych. Jeśli stale jesteś na plateau, dysk nie przyspieszy bez przejścia wyżej — zobacz Benchmark.
Częste błędy
- Natychmiastowy restart maszyny. Restart zaciera obraz, a za godzinę wszystko się powtórzy. Najpierw zbierz liczby.
- Wiara w pojedynczą klatkę. Skok w momencie uruchomienia htop nic nie znaczy — obserwuj przez minutę.
- Traktowanie pełnej pamięci jako problemu. Patrz na
availablei swap, a nie nafree. - Zmiana tieru bez ustalenia przyczyny. Wyciek pamięci albo zapętlony skrypt przeniesie się razem z tobą na nowy tier. Powrót do niższego nie jest obsługiwany.
Jeśli CPU, pamięć i dysk są spokojne, a aplikacja działa wolno, wąskie gardło jest poza maszyną: wolne zewnętrzne API, DNS albo sieć klienta. Sprawdź
curl -w '%{time_total}\n' -o /dev/null -sna potrzebny adres.