W Linuksie istnieje wiele narzędzi do monitorowania systemu. Jeżeli chcemy sprawdzić zużycie pamięci czy obciążenie procesora sięgamy po program top. Nasłuchujące porty sprawdzamy poleceniem netstat. Często korzystamy z takich rozwiązań jak vmstat czy free. A teraz wyobraźmy sobie jedno narzędzie, które potrafi monitorować te wszystkie parametry.

Takim rozwiązaniem jest program nmon. Aplikacja znana jest administratorom systemów AIX. Dnia 27 lipca 2009 firma IBM udostępniła źródła programu na licencji GPL. Od tego momentu, program dostępny jest również na Linuksa.

nmon

W jednym oknie, konsoli aplikacja potrafi pokazać procesory, użycie pamięci, obciążenie sieci, dyski (wykresy obciążenia), zajętość systemu plików, top procesy, zasoby, informacje o systemie i wiele innych. Aplikację obsługuje się poprzez klawiaturę. Wciskając odpowiedni guzik, włączamy lub wyłączamy wykresy.

[bash]h = pomoc
r = bardzo ogólne informacje o systemie
c = obciążenie CPU per rdzeń
l = obciążenie CPU w długim czasie, wykres
m = statystyki pamięci
V = pamięć wirtualna oraz SWAP
k = ogólne liczniki Kernela
n = statystyki interfejsów sieciowych
N = statystyki NFS
d = wykresy I/O
D = statystyki I/O
o = mapa obciążenia I/O
p = statystyki partycji
b = tryb czarno-biały
. = tryb minimalny, tzn. tylko aktywne dyski i procesy[/bash]

Program może pracować w dwóch trybach. Pierwszy z nich to live mode, kiedy na bieżąco pokazuje dane na konsoli. W drugim trybie zbiera on dane i zapisuje do pliku. W tym drugim przypadku aplikacje należy uruchomić z parametrami np.: nmon -t -f -s2 -c 30.

Parametr -t określa, że chcemy zbierać informacje o procesorach, -f nakazuje zapisać dane do pliku, -s2 jest informacją o tym, że dane będą zbierane co 2 sekundy, a -c 30 określa, że zostanie wykonane 30 pobrań danych. Aplikacja zostaje uruchomia w tle.

[bash]root@muszelka:/tmp# ps -efww | grep nmon
root 4576 1 0 06:36 pts/1 00:00:00 nmon -t -f -s2 -c 30
root 4612 4253 0 06:37 pts/1 00:00:00 grep nmon[/bash]

Wygenerowany zostanie w ten sposób plik muszelka_100602_0627.nmon, który można poddać dalszej obróbce przez np. nmonanalyser. Jest to arkusz kalkulacyjny, który zawiera Makra. Przetwarzają one plik nmona i generują wykresy.

Wykres wygenerowany przez nmon Analyser

Przykładowy wykres i dane dostępne są w pliku muszelka-nmon.ods.

20 Komentarze

  1. Nie znałem tego rozwiązania wcześniej. Faktycznie fajne. Zamiast klepać tony poleceń odpalasz jedno i masz wszystko.

    A jak zrobić żeby po uruchomieniu od razu odpalał konkretne wykresy?

  2. Całkiem ciekawe narzędzie, ale raczej do analizowania obciążenia "jakiejś maszyny". Tak ad hoc za wygodniejsze uważam odpalenie top'a, iotop'a itp zależnie od potrzeby w danej chwili (np co mi zjada pamięć, ubije dziada :D)

  3. Od topa zdecydowanie lepszy jest htop. W takim zLinux, jak jakiś proces zaczyna za mocno utylizować procesor to system sam go ubije.

  4. O tak! Takiej aplikacji potrzebowałem. Ciekawe jak bardzo ona obciąża system. Top i htop czasem potrafią dociążyć maszynę, która i tak jest zawalona.

  5. Po samodzielnej kompilacji działa. Trochę śmiesznie, bo na kolorowych paskach nadal są widoczne litery, ale jednak jest to już bardziej przejrzyste.
    Przymierzam się właśnie do inżynierki nt. serwera SSH i myślę, że będzie to ciekawe narzędzie do monitorowania pracy systemu.

  6. W repo szukałem w pierwszej kolejności — niestety nie było. W openSUSE Build Service też nie znalazłem. Ściągnąłem właśnie źródło, może jeśli sam skompiluję, zadziała.

Odpowiedz