Analiza wydajności systemu Linux z użyciem narzędzi htop i iostat
Linux

Analiza wydajności systemu Linux z użyciem narzędzi htop i iostat

Analiza wydajności systemu Linux z użyciem narzędzi htop i iostat 🖥️📊

Wprowadzenie

Monitorowanie wydajności to kluczowy aspekt zarządzania systemem Linux. Pozwala wykrywać wąskie gardła (CPU, RAM, I/O), diagnozować przeciążenia i reagować zanim usługa stanie się niestabilna. W tym artykule pokażę, jak używać dwóch popularnych narzędzi — htop i iostat — do analizy obciążenia w czasie rzeczywistym oraz historycznie.

Dla szerszego kontekstu zobacz też artykuł: „Problemy z wydajnością systemu Linux: Wysokie zużycie CPU/RAM, wolne działanie dysku i metody diagnozowania wąskich gardeł”. (netbe.pl)


1. htop — monitorowanie zasobów w czasie rzeczywistym

1.1 Co to jest htop

  • htop to interaktywne narzędzie terminalowe, ulepszona wersja top, z kolorowym interfejsem, możliwością przewijania, filtrowania i zarządzania procesami bezpośrednio z terminala. (netbe.pl)
  • Dzięki htop możesz na bieżąco obserwować zużycie CPU (całych rdzeni i poszczególnych procesów), pamięć RAM / swapa, load average, liczby procesów oraz inne metryki.

1.2 Instalacja

W typowej dystrybucji Debian / Ubuntu instalacja jest prosta:

sudo apt update
sudo apt install htop

(w Debianie/Ubuntu menedżer pakietów apt używa się w tym celu) (netbe.pl)

1.3 Uruchamianie i podstawowe użycie

Po zainstalowaniu:

htop

Po uruchomieniu zobaczysz interaktywny widok procesów. Możesz:

  • sortować kolumny (np. CPU %, MEM %, czas działania),
  • filtrować procesy / wyszukiwać po nazwie,
  • zabić proces lub zmienić priorytet,
  • zobaczyć szczegóły dotyczące wątków / użytkowników.
Czytaj  Jak ustawić limit FPS w Apex Legends

1.4 Co analizować w htop

Kilka wskazówek, na co zwrócić uwagę:

Metryka Co oznacza / Dlaczego ważna
CPU % dla pojedynczych procesów Procesy najbardziej obciążające — wskazuje źródło wykorzystania CPU
Load Average Obciążenie systemu w czasie — liczy się w kontekście liczby rdzeni
Użycie RAM / swap Czy systemu zaczyna korzystać ze swapu — może to wskazywać niewystarczającą pamięć fizyczną
Liczba procesów / wątków Nagły wzrost procesów może wskazywać problem (fork-bomb, wyciek procesów)
Czas działania procesów Długotrwale działające procesy mogą akumulować błędy lub nieszczelności (memory leak)

1.5 Dodatkowe opcje i skróty

  • W htop możesz zmieniać sortowanie klawiszami (np. klikając na nagłówki kolumny w interfejsie lub używając klawiszy F6 / F2 / F9).
  • Możliwość pokazywania procesu jako drzewo, filtrowania po użytkowniku lub wątku.

To narzędzie świetnie sprawdza się do szybkiego diagnozowania przeciążenia CPU lub pamięci w czasie rzeczywistym.

 

Analiza wydajności systemu Linux z użyciem narzędzi htop i iostat
Analiza wydajności systemu Linux z użyciem narzędzi htop i iostat

2. iostat — analiza I/O i CPU historycznie

iostat to z kolei narzędzie z pakietu sysstat, służące do zbierania statystyk wejścia/wyjścia urządzeń dyskowych oraz CPU. Pozwala sprawdzić, które dyski lub interfejsy I/O są najbardziej obciążone oraz jak wygląda wykorzystanie CPU z perspektywy czasu.

2.1 Instalacja i podstawowe uruchomienie

Na Debianie / Ubuntu:

sudo apt update
sudo apt install sysstat

Upewnij się, że usługa sysstat działa — czasami konieczne jest włączenie zbierania statystyk (np. w pliku /etc/default/sysstat).

Przykładowe podstawowe użycie:

iostat

Lub z odświeżaniem co sekundę, np. 5 pomiarów:

iostat 1 5

2.2 Ważne metryki i interpretacja

iostat dostarcza kilka sekcji, m.in.:

Sekcja Co pokazuje
CPU usage procentowy rozkład pracy CPU: użytkownik (user), system (system), nice, idle, IO-wait
Device util informacje o poszczególnych urządzeniach / dyskach — np. ile procent czasu urządzenie jest zajęte (util), ile operacji I/O na sekundę (tps), transfer danych (kB/s)
Average queue size jak długo procesy czekają na operacje I/O
rrqm/s i wrqm/s liczba żądań scalanych (read / write merged)
%util procent wykorzystania urządzenia; wartości bliskie 100 % mogą wskazywać przeciążenie dysku
Czytaj  Zero Trust Architecture (ZTA) – Kompleksowe podejście do bezpieczeństwa sieci nowej generacji

2.3 Przykład użycia i interpretacji

Załóżmy, że wykonujesz:

iostat -x 1 5

Parametr -x daje rozszerzone statystyki (rozszerzona analiza I/O). Każda linia pokazuje wartości dla urządzeń takich jak /dev/sda:

  • Jeśli %util blisko 100% → dysk jest mocno obciążony — może być wąskim gardłem I/O.
  • Jeśli „await” (średni czas oczekiwania na I/O) jest wysoki → operacje I/O „stoi w kolejce” i powodują opóźnienia.
  • Można zestawić to z wynikami z htop: jeśli CPU-wait / IO-wait rośnie w htop (kolumna „wa”), wygląda to na problem I/O-bound.

2.4 Weryfikacja przeciążeń I/O

Kiedy kariera procesora wydaje się być w normie, ale skargi dotyczą szybkości I/O (opóźnienia, wolne zapisy / odczyty), użyj iostat by:

  1. Sprawdzić, który dysk obsługuje operacje I/O najwięcej.
  2. Ustalić czy system jest „I/O bound” (więcej czasu oczekuje na operacje dyskowe niż przetwarza CPU).
  3. Zidentyfikować konieczność przeniesienia plików / logów na inny dysk lub zastosowania RAID / NVMe lub przyspieszenie warstwy storage.

3. Kombinacja htop + iostat — jak korzystać razem

Połączenie wyników z htop i iostat pozwala lepiej diagnozować problemy wydajności:

  • Użyj htop, aby zobaczyć, czy obciążenie pochodzi z procesora lub pamięci, lub czy prowadzi do IO-wait.
  • Sprawdź w htop kolumnę „wa” (CPU wait) — jeśli widzisz wzrost „wa”, to wskazówka I/O bound.
  • Następnie uruchom iostat -x równolegle, by sprawdzić, które urządzenia są przeciążone (wysokie %util, wysoki „await”).
  • Na serwerze produkcyjnym można uruchomić oba narzędzia jednocześnie w różnych terminalach lub skryptach loggerów, by śledzić zmienność w czasie (np. zapisywać logi co minutę).

4. Automatyzacja monitoringu i alerty 🛎️

Aby nie ciągle patrzeć ręcznie na htop/iostat, można:

  • Zapisać wyjście iostat w log (cron lub systemd timer), np. co minutę, w pliku tekstowym, a potem analizować skryptyem (grep, awk).
  • Używać prostych skryptów bash — np.:
#!/bin/bash
iostat -x 1 1 | grep -E "/dev/sda|Device" >> /var/log/iostat-monitor.log

i uruchamiać je przez cron:

* * * * * /usr/local/bin/iostat-monitor.sh
  • Możesz też zebrać dane z htop przy pomocy htop --delay … lub innych narzędzi wspierających zrzuty ekranów terminalowych — choć htop jest głównie interaktywny.
  • Dla długoterminowego monitoringu rozważ użycie narzędzi takich jak collectd, Munin, Zabbix lub systemy observability — netbe.pl ma artykuł o narzędziach diagnostycznych i monitorowaniu systemu Linux.
Czytaj  Wprowadzenie Windows Subsystem for Linux (WSL)

5. Najlepsze praktyki

Kilka wskazówek, które warto wziąć pod uwagę przy analizie wydajności:

  • Monitoruj zarówno CPU, pamięć, jak i I/O — ignorowanie jednej kategorii może prowadzić do błędnych diagnoz.
  • Uwzględniaj obciążenie wielordzeniowych CPU — load average vs liczba rdzeni.
  • Sprawdzaj okresy szczytowe (peak loads), nie tylko średnią.
  • Ustal progi alertów dla I/O (np, gdy %util > 80%), „await” powyżej określonej wartości.
  • Nie zapomnij o wpływie swapu i pamięci Cache / Buffers.
  • Uruchamiaj testy w warunkach maksymalnego obciążenia (np. test kopiowania dużych plików, backup, intensywne zapisy) i obserwuj I/O wait / czas odpowiedzi usług.

Podsumowanie

Narzędzia htop i iostat są fundamentalnymi pomocnikami administratora Linuxa, służącymi do bieżącej analizy wydajności i diagnozy problemów. Kombinując je efektywnie i automatyzując zbieranie danych, można wcześnie wykrywać przeciążenia, reagować i poprawiać konfigurację sprzętu lub aplikacji.

Jeśli chcesz, mogę przygotować wersję rozszerzoną artykułu (z meta-title / meta-description / sekcjami H2-H3) gotową do publikacji na netbe.pl — lub zasugerować grafikę (zrzuty ekranu htop / iostat).

 

Polecane wpisy
Jak sprawdzić dostępność pakietu w repozytoriach Debiana i Ubuntu
Jak sprawdzić dostępność pakietu w repozytoriach Debiana i Ubuntu

Jak sprawdzić dostępność pakietu w repozytoriach Debiana i Ubuntu Istnieje kilka sposobów sprawdzenia, czy pakiet jest dostępny w repozytoriach Debiana Czytaj dalej

Windows 11: Aktualizacja KB5058499 – Co nowego w wersji 24H2?
Windows 11: Aktualizacja KB5058499 – Co nowego w wersji 24H2?

🖥️ Windows 11: Aktualizacja KB5058499 – Co nowego w wersji 24H2? 📌 Wprowadzenie Aktualizacja KB5058499 dla Windows 11 wersji 24H2 Czytaj dalej