How do I install nmon command under Linux operating systems to find out performance information for my CPU, memory, network, disk, virtual memory, top process and other part of my HP server running on Debian Linux or CentOS Linux 6.x amd64 bit server?
This systems administrator, tuner, benchmark tool gives you a huge amount of important performance information in one go with a single binary.
| Tutorial details | |
|---|---|
| Difficulty | Intermediate (rss) |
| Root privileges | Yes |
| Requirements | None |
It works on Linux, IBM AIX Unix, Power, x86, amd64 and ARM based system such as Raspberry Pi. The nmon command displays and records local system information. The command can run either in interactive or recording mode.
Debian / Ubuntu Linux Install nmon
Type the following apt-get command:
# apt-get install nmon
Sample outputs:
Reading package lists... Done Building dependency tree Reading state information... Done The following NEW packages will be installed: nmon 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 52.5 kB of archives. After this operation, 164 kB of additional disk space will be used. Get:1 http://mirror.anl.gov/debian/ squeeze/main nmon amd64 13g+debian-1 [52.5 kB] Fetched 52.5 kB in 1s (32.0 kB/s) Selecting previously deselected package nmon. (Reading database ... 29511 files and directories currently installed.) Unpacking nmon (from .../nmon_13g+debian-1_amd64.deb) ... Processing triggers for man-db ... Setting up nmon (13g+debian-1) ...
A note about RHEL / CentOS Linux user
You can download nmon binary version by visiting this page.
Compiling Nmon Under RHEL / CentOS / Fedora / Scientific Linux
Grab the source code and makefile using wget command:
$ wget http://ncu.dl.sourceforge.net/project/nmon/lmon14g.c
$ wget http://ncu.dl.sourceforge.net/project/nmon/makefile
You need to install ncurses-devel package, enter:
# yum install ncurses-devel
Rename file, enter:
$ mv lmon14g.c lmon.c
Open the makefile and find the the directive that matches your platform and Linux release:
$ vi makefile
To compile for RHEL/CentOS v5.x, enter:
$ make nmon_x86_rhel52
Sample outputs:
cc -o nmon_x86_rhel52 lmon.c -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -g
You can move nmon_x86_rhel52 to /usr/local/sbin, enter:
# mv nmon_x86_rhel52 /usr/local/sbin/nmon
How do I use nmon?
Simply type the following command:
# nmon
Sample outputs:
nmon keyboard shortcuts
- q - To stop and exit nmon.
- h - To see quick help (hint) screen and press h again to remove the hints.
- Use the following command to turn on or off stats:
- c - See cpu stats.
- m - See memory stats.
- d - See disk stats.
- k - See kernel stats.
- n - See network stats.
- N - See NFS stats.
- j - See file system stats.
- t - See top process.
- V - See virtual memory stats.
- . - See only busy disks/procs.
- v - Verbose mode (display as Ok/warning/danger on screen).
Sample output from my home server:
How do I set default monitoring options for nmon?
To see the memory, network, disk and processor statistics immediately after the nmon command is started, run (or add in your shell startup file):
# export NMON=mndc
Run the nmon command:
# nmon
Capturing and analyzing data with nmon
You can capture the data to a file for later analysis and graphing. Type the following command:
# nmon -f -s2 -c 30
OR
# nmon -ft -s 30 -c 120
nmon will run as a daemon in the background and you can log out. nmon will complete the data file capture and it will save in a file *.nmon file such as nas02_120806_0202.nmon. Where,
- -f : Start data collect mode and output in spreadsheet format.
- -s 2 : Wait between 2 seconds refreshing the screen.
- -c30 : Total number of refreshes (30).
- -t : Spreadsheet includes top processes.
- -d disks : to increase the number of disks [default 256]
- -x : Capacity planning (15 min for 1 day = -fdt -s 900 -c 96)
You need to download nmonanalyser which is an Excel spreadsheet that takes an output file from nmon and produces some nice graphs to aid in analysis and report writing.
Check out related media
See a quick installation and demo of nmon command:
Recommended readings:
You should follow me on twitter here or grab rss feed to keep track of new changes.
Featured Articles:
- 30 Handy Bash Shell Aliases For Linux / Unix / Mac OS X
- Top 30 Nmap Command Examples For Sys/Network Admins
- 25 PHP Security Best Practices For Sys Admins
- 20 Linux System Monitoring Tools Every SysAdmin Should Know
- 20 Linux Server Hardening Security Tips
- Linux: 20 Iptables Examples For New SysAdmins
- Top 20 OpenSSH Server Best Security Practices
- Top 20 Nginx WebServer Best Security Practices
- 20 Examples: Make Sure Unix / Linux Configuration Files Are Free From Syntax Errors
- 15 Greatest Open Source Terminal Applications Of 2012

- My 10 UNIX Command Line Mistakes
- Top 10 Open Source Web-Based Project Management Software
- Top 5 Email Client For Linux, Mac OS X, and Windows Users
- The Novice Guide To Buying A Linux Laptop















{ 11 comments… read them below or add one }
Very useful, thanks!
Thanks.
It’s much better organized than top
this tool is java based and can work on multi platforms better than working on excel noly
you can pass the .nmon file to it and it will display a graph for the results
http://sourceforge.net/projects/jnmonanalyser/
Nice find.
Appreciate your comment.
This page is great !!
Regards
Try htop – it’s probably better
Hi,
Thanks,
very nice article……
Is it possible that it automatically output the result in a custom LOG FILE at regular intervals ????
I don’t know this tool, and see very useful. Other tool like this, it’s atop, vivek knows :) http://www.cyberciti.biz/faq/show-all-running-processes-in-linux/linux-unix-atop-command/
Noce one
It working fin for me.
Hi I used nmon precompiled binary file to monitor my server (centos 6.4).Its recorded 230 kb and 630 kb data for 10 minutes.I used java nmon analyzer to see the graphs but it closed suddenly when I tried to open the file.I dont know why is it happened.I installed java and set environment variables successfully but this software didnt worked for me.Any help?Its very urgent for me.