Skip to content
VDS · Rozwiązywanie problemów

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 us i sy, duże r — ogranicza CPU;
  • wysokie wa, duże b — ogranicza dysk;
  • niezerowe si i so — 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 nice i ionice;
  • płaski plateau od tygodni — po prostu przerosłeś swój tier.

Co zrobić z tym ustaleniem

Wąskie gardłoSzybkie działanieDługoterminowe rozwiązanie
CPUznajdź i zatrzymaj zbędny procestier z większą liczbą rdzeni
Pamięćogranicz workery i bufory bazy, dodaj swaptier z większą ilością pamięci
Dyskogranicz backupy przez ionice, przytnij logiwyższy tier: plateau rośnie wraz z liczbą rdzeni
Siećogranicz pobieranie w tle przez --bwlimitzbadaj ź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 available i swap, a nie na free.
  • 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 -s na potrzebny adres.