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  Problemy z Windows 12: typowe problemy i ich rozwiązania

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  Apache HTTP Server, często nazywany po prostu Apache, jest najpopularniejszym serwerem internetowym na świecie

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  Formatowanie partycji dyskowej w systemie Linux: Poradnik dla użytkowników

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 skonfigurować kopię zapasową za pomocą rsync na Ubuntu
Jak skonfigurować kopię zapasową za pomocą rsync na Ubuntu

Jak skonfigurować kopię zapasową za pomocą rsync na Ubuntu Tworzenie kopii zapasowych to jeden z kluczowych elementów dbania o bezpieczeństwo Czytaj dalej

Cloud Cost Anomalies – jak działa wykrywanie nienaturalnych wzrostów kosztów przy użyciu AI
Cloud Cost Anomalies – jak działa wykrywanie nienaturalnych wzrostów kosztów przy użyciu AI

Cloud Cost Anomalies – jak działa wykrywanie nienaturalnych wzrostów kosztów przy użyciu AI W chmurze koszty potrafią rosnąć szybciej niż Czytaj dalej

Marek "Netbe" Lampart Inżynier informatyki Marek Lampart to doświadczony inżynier informatyki z ponad 25-letnim stażem w zawodzie. Specjalizuje się w systemach Windows i Linux, bezpieczeństwie IT, cyberbezpieczeństwie, administracji serwerami oraz diagnostyce i optymalizacji systemów. Na netbe.pl publikuje praktyczne poradniki, analizy i instrukcje krok po kroku, pomagając administratorom, specjalistom IT oraz zaawansowanym użytkownikom rozwiązywać realne problemy techniczne.