Terminal pogryzł człowieka: nmon
Monitorowanie zasobów komputera z poziomu tekstowej linii komend ma wielowiekową tradycję i niebagatelne znaczenie dla administratorów serwerów. Ale natłok informacji o naszej maszynie nie jest zarezerwowany jedynie dla wtajemniczonych, każdy może w większym lub mniejszym stopniu sprawdzić co w układach scalonych piszczy. Osiągnąć możemy to za pomocą wielu narzędzi, ale skoro wspomnieliśmy o terminalu, to dlaczego by nie przetestować nmon. Ten sympatyczny program wśród wielu ciekawostek ma jeszcze jedną unikatową funkcję – może działać w tle i zapisywać statystyki zużycia zasobów naszego komputera. A to jest naprawdę ciekawe.
- informacje o kernelu, procesorze, systemie,
- zużycie mocy CPU,
- wykorzystanie pamięci konwencjonalnej,
- wykorzystanie pamięci wirtualnej,
- informacje o dyskach, partycjach, systemie plików,
- operacje I/O,
- wykorzystanie urządzeń sieciowych,
- NFS,
- lista procesów.
I na tym nie koniec. Jak sam autor podsumowuje próbę udokumentowania możliwości programu – „Ha ha ha ha – you are joking right :-)”. Całkiem nieźle, prawda? Na dodatek większość z tych danych nmon będzie w stanie wyświetlić nam na jednym ekranie.
$# nmon -h
Hint: nmon [-h] [-s <seconds>] [-c <count>] [-f -d <disks> -t -r <name>] [-x]
-h FULL help information
Interactive-Mode:
read startup banner and type: "h" once it is running
For Data-Collect-Mode (-f)
-f spreadsheet output format [note: default -s300 -c288]
optional
-s <seconds> between refreshing the screen [default 2]
-c <number> of refreshes [default millions]
-d <disks> to increase the number of disks [default 256]
-t spreadsheet includes top processes
-x capacity planning (15 min for 1 day = -fdt -s 900 -c 96)
Version - nmon 14g
For Interactive-Mode
-s <seconds> time between refreshing the screen [default 2]
-c <number> of refreshes [default millions]
-g <filename> User Defined Disk Groups [hit g to show them]
- file = on each line: group_name <disks list> space separated
- like: database sdb sdc sdd sde
- upto 64 disk groups, 512 disks per line
- disks can appear more than once and in many groups
-b black and white [default is colour]
example: nmon -s 1 -c 100
For Data-Collect-Mode = spreadsheet format (comma separated values)
Note: use only one of f,F,z,x or X and make it the first argument
-f spreadsheet output format [note: default -s300 -c288]
output file is <hostname>_YYYYMMDD_HHMM.nmon
-F <filename> same as -f but user supplied filename
-r <runname> used in the spreadsheet file [default hostname]
-t include top processes in the output
-T as -t plus saves command line arguments in UARG section
-s <seconds> between snap shots
-c <number> of snapshots before nmon stops
-d <disks> to increase the number of disks [default 256]
-l <dpl> disks/line default 150 to avoid spreadsheet issues. EMC=64.
-g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines
-N include NFS Network File System
-I <percent> Include process & disks busy threshold (default 0.1)
don't save or show proc/disk using less than this percent
-m <directory> nmon changes to this directory before saving to file
example: collect for 1 hour at 30 second intervals with top procs
nmon -f -t -r Test1 -s30 -c120
To load into a spreadsheet:
sort -A *nmon >stats.csv
transfer the stats.csv file to your PC
Start spreadsheet & then Open type=comma-separated-value ASCII file
The nmon analyser or consolidator does not need the file sorted.
Capacity planning mode - use cron to run each day
-x sensible spreadsheet output for CP = one day
every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)
-X sensible spreadsheet output for CP = busy hour
every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)
Gdy już wykujemy powyższe parametry na blachę, czas na klawiszologię, którą możemy uskuteczniać w czasie działania nmon:
Interactive Mode Commands
key --- Toggles to control what is displayed ---
h = Online help information
r = Machine type, machine name, cache details and OS version + LPAR
c = CPU by processor stats with bar graphs
l = long term CPU (over 75 snapshots) with bar graphs
m = Memory stats
L = Huge memory page stats
V = Virtual Memory and Swap stats
k = Kernel Internal stats
n = Network stats and errors
N = NFS Network File System
d = Disk I/O Graphs
D = Disk I/O Stats
o = Disk I/O Map (one character per disk showing how busy it is)
o = User Defined Disk Groups
j = File Systems
t = Top Process stats use 1,3,4,5 to select the data & order
u = Top Process full command details
v = Verbose mode - tries to make recommendations
b = black and white mode (or use -b option)
. = minimum mode i.e. only busy disks and processes
key --- Other Controls ---
+ = double the screen refresh time
- = halves the screen refresh time
q = quit (also x, e or control-C)
0 = reset peak counts to zero (peak = ">")
space = refresh screen now
Jednak głównym gwoździem programu jest kolekcjonowanie w tle statystyk obciążenia CPU, zużycia pamięci, operacji I/O i aktywności na interfejsach sieciowych. Po wywołaniu z parametrem „f” i podaniu okresu zbierania danych oraz częstotliwości takich prób, nmon przechodzi do działania w tle i gromadzenia danych. Przykładowy zapis danych przez okres 2 godzin („-c”), co 30 sekund („-s”):
nmon -f -s30 -c240
java -jar NMON*.jar
Oczywiście na tym nie koniec. Dla zainteresowanych jest jeszcze programik Java Nmon Analyser, który może nie wyświetla całej palety danych zgromadzonych przez nmon, ale ma ciekawą funkcję – można uruchomić w nim podgląd statystyk na żywo.
A na koniec – nmon znajdziemy w repozytoriach niemal wszystkich dystrybucji.





Wow, jestem pod wrażeniem. Muszę to mieć 😀
To trochę nie poprawne politycznie, ale trzeba o tym wspomnieć: podstawowym i jak dotąd najlepszym narzędziem do analizy statystyk nmona jest non analyser czyli plik. .. Excela. Który niestety ni cholery nie chce działać pod libre /open office. Nie dawno byłem na konferencji, na której Nigel Griffiths pokazywał swoje narzędzie i pytałem go o analysera, ale powiedział, że nie ma szans na wersję linux friendly. Z dobrych informacji mogę powiedzieć, że nie długo oficjalnym narzędziem do wizualizacji tych statystyk będzie Google Graph.
Osobiście bardzo dużo używam nmona (głównie na aixie, skąd pochodzi) i do wizualizacji polecam także tekstowe narzędzie nmon2rrd.
Fajny artykuł. W ogóle lubię ten cykl, bo mimo ponad 20 lat pracy z linuxem.,cały czas mogę znaleźć tu coś ciekawego. Tak trzymać!
Z podobnego softu mozna sie tez zainteresowac glances: https://github.com/nicolargo/glances