5 najlepszych narzędzi do monitorowania wydajności Linux
Pięć narzędzi wiersza poleceń pokrywających monitorowanie CPU, pamięci, dysków i sieci na Linuksie.
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ścisi/sowskazują 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żewawskazuje na bottleneck I/O!
3. iostat - Analiza 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. Wysokieawaitto problem!%iowait(zvmstat): 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.
Razem te narzędzia pokrywają główne podsystemy: CPU, pamięć, dyskowe I/O i sieć. Dobierz odpowiednie do wąskiego gardła, które badasz.