Wstęp: Dlaczego monitorowanie jest kluczowe?

Wydajność systemu Linux jest jak puls organizmu – regularne sprawdzanie pozwala wykryć problemy, zanim staną się krytyczne. Niezależnie od tego, czy zarządzasz serwerem produkcyjnym, czy po prostu chcesz zoptymalizować swój desktop, znajomość podstawowych narzędzi do monitorowania w czasie rzeczywistym jest absolutnie niezbędna.

W tym artykule przedstawimy Top 5 narzędzi wiersza poleceń, które pomogą Ci szybko zdiagnozować, co dzieje się z Twoim systemem.


1. top i htop - Królowie monitorowania procesów

top

top to klasyczne narzędzie, które dostarcza dynamicznego widoku procesów działających w systemie. Domyślnie sortuje procesy według zużycia CPU, odświeżając widok co kilka sekund.

top

Co warto wiedzieć o top:

  • Pierwsza linia: Informacje o uptime, liczbie zalogowanych użytkowników, load average (średnie obciążenie systemu - liczba procesów oczekujących na CPU).
  • Linia CPU: Procentowe zużycie CPU przez użytkowników (us), system (sy), nice (procesy z zmienionym priorytetem), idle (nieaktywność CPU), wa (oczekiwanie na I/O).
  • Linie pamięci: Informacje o fizycznej pamięci RAM (Mem) i pamięci SWAP (Swap).
  • Tabela procesów: Lista procesów z PID-em, użytkownikiem, zużyciem CPU, pamięci i czasem działania.

htop

htop to ulepszona, interaktywna wersja top, oferująca znacznie bardziej przyjazny dla użytkownika interfejs i dodatkowe funkcje.

htop

Zalety htop:

  • Kolorowy interfejs: Łatwiejszy w czytaniu.
  • Paski postępu: Graficzne przedstawienie zużycia CPU i pamięci.
  • Interaktywność: Możliwość przewijania, sortowania (F6), filtrowania (F4) i zabijania procesów (F9) bezpośrednio w interfejsie.
  • Widok drzewa: (F5) Pokazuje procesy w hierarchicznej strukturze.

2. vmstat - Szybka diagnostyka pamięci i I/O

vmstat (virtual memory statistics) to narzędzie do szybkiego podglądu aktywności pamięci wirtualnej, procesów, blokowych operacji I/O, pułapek i aktywności CPU. Jest idealne do szukania “wąskich gardeł”.

vmstat 1 5

Powyższe polecenie wyświetli 5 raportów, co 1 sekundę.

Kluczowe kolumny vmstat:

  • Procs: r (oczekujące na uruchomienie), b (uśpione, czekające na I/O).
  • Memory: swpd (użycie SWAP), free (wolna pamięć), buff (bufor), cache (cache).
  • Swap: si (swap-in, pamięć z dysku do RAM), so (swap-out, pamięć z RAM do dysku). Duże wartości si/so wskazują na problemy z pamięcią!
  • IO: bi (bloki odebrane), bo (bloki wysłane) – aktywność dysku.
  • CPU: us (użytkownik), sy (system), id (bezczynny), wa (oczekiwanie na I/O). Duże wa wskazuje na bottleneck I/O!

3. iostat - Detektyw wydajności dysków

Gdy podejrzewasz, że problemem jest wolny dysk, iostat (input/output statistics) jest Twoim narzędziem.

iostat -x 1 5

Powyższe polecenie wyświetli 5 raportów, co 1 sekundę, z rozszerzonymi statystykami.

Kluczowe kolumny iostat -x:

  • %util: Procent czasu, przez jaki urządzenie I/O było zajęte. Wartości bliskie 100% oznaczają przeciążenie dysku!
  • await: Średni czas (w ms), jaki operacja I/O czekała w kolejce + czas jej wykonania. Wysokie await to problem!
  • %iowait (z vmstat): Czas, w którym CPU czekało na zakończenie operacji I/O. Duże wartości to bottleneck dyskowy.

4. ss (Socket Statistics) - Analiza połączeń sieciowych

ss to nowocześniejszy następca netstat, służący do wyświetlania informacji o otwartych gniazdach (socketach). Jest znacznie szybszy i oferuje więcej szczegółów.

ss -tuln

Powyższe polecenie wyświetli otwarte porty TCP (t) i UDP (u), w trybie nasłuchu (l), z numerami portów zamiast nazw usług (n).

Przykłady użycia ss:

  • ss -s: Podsumowanie statystyk połączeń.
  • ss -tnp: Aktywne połączenia TCP, pokaż PID procesów.
  • ss -lp 'sport = :ssh': Pokaż procesy nasłuchujące na porcie SSH.

5. nmon - Wszystko w jednym, interaktywny kombajn

nmon (Nigel’s Monitor) to interaktywne narzędzie, które łączy w sobie funkcjonalność wielu innych. Wyświetla zużycie CPU, pamięci, dysków, sieci i wiele innych, w jednym, odświeżanym widoku.

nmon

Zalety nmon:

  • Wszystko w jednym: Nie musisz przełączać się między różnymi narzędziami.
  • Interaktywność: Klawisze takie jak c (CPU), m (pamięć), d (dyski), n (sieć) przełączają widoki.
  • Eksport danych: Możliwość eksportu danych do pliku w formacie, który można później zaimportować do arkusza kalkulacyjnego do analizy.

Podsumowanie

Znajomość tych pięciu narzędzi to solidna podstawa do monitorowania i diagnozowania problemów wydajnościowych w Linuksie. Pamiętaj, że każdy system jest inny, a kluczem jest praktyka i zrozumienie, co oznaczają poszczególne metryki. Wybierz narzędzie odpowiednie do zadania i zacznij obserwować swój system!