How use Nmon and "Java Nmon Analyzer" for Monitor Linux Performance

Nmon is a  resource monitoring tool that can monitor CPU, Memory, Disks, Network, and even Filesystem on RHEL / Ubuntu systems. Java Nmon Analyzer is a tool that uses the nmon's output as an input. It will graph the nmon output into an informative graph to make it easier to read. This article I will show you how to install and use nmon on linux.

What is nmon and Java Nmon Analyzer

Nmon is short for Nigel’s Performance Monitor. This tool is used to monitor resources on Linux, Power, x86, x86_64, Mainframe and ARM (Raspberry Pi). There is two mode available of nmon.

1. Online Mode, which used to real-time monitoring.
2. Capture Mode, which the output will saved to a CSV file for later processing.

Java Nmon Analyzer will use nmon output as an input data to be processed. So to use it, we will first need to have nmon installed and working on your system. Let’s start.


Nmon is specializing to monitor and analyzing performance which includes:

  • CPU utilization
  • CPU Long-term
  • Memory usage
  • Virtual memory
  • Disks
  • Resource
  • Kernel
  • Filesystem
  • Network
  • NFS
  • Top-processes

Installing nmon

Nmon is available in binaries file or source code file for those who want to compile it by yourself. Binaries file is available on nmon download page while nmon source code is available in compiling nmon page. At the time of writing this article, the latest version of nmon is 14g.

Method 1: Using pre-compiled binaries file

  • Download nmon_linux_14i.tar.gz
  • Extract it
  • Go to the folder you extracted
  • Choose the appropriate binary file which match your system. For example, if you are using 32-bit version of Ubuntu 13, then you will found a binary file with name nmon_x86_ubuntu13
  • To run it, just type ./nmon_x86_ubuntu13

Method 2: Compile nmon from the source

If you want to compile nmon by yourself, here are the steps:

  • Download the source code file
  • Download the makefile
  • Rename the source code file to lmon.c . If you download lmon14g.c, then rename it.
  • Look at the makefile content and file the directive that matches your platform and Linux release
  • Make nmon. For example, if you are using Ubuntu 13.04, then you can type
$ make nmon_x86_ubuntu1304
  • Done. Next, you will find a binary file which name nmon_x86_ubuntu1304
  • Type ./nmon_x86_ubuntu1304 to run it
Nmon Interface

If you found about no ncurses.h file, then you need to install ncurses-dev package.

nmon error missing ncurses.h file

On Debian / Ubuntu-based distributions, you can install it using:

$ sudo apt-get install libncurses5-dev

How to Java Nmon Analyzer

Actually, we don’t install Java Nmon Analyzer. But we just run it with Java. This tool can be downloaded from Java Nmon Analyzer download page. After you finish download it, here are the steps how to run it.

  • Download and install nmon (make sure you have it)
  • Make a pipe for nmon
# mkfifo /tmp/nmonnamedpipe
  • Run analyzer agent in the target host :
# java -cp nmonanal_0.1.2.jar li.xiang.nmonanalyser.agent.Agent

The li.xiang.nmonanalyser.agent.Agent is a syntax. Don’t change it.

If it success, you will see a message below :

nmon analyzer start
  • Run nmon, begin performance capture
# nmon -s 20 -c 360 -F /tmp/nmonnamedpipe

20 second per snapshot, capture 360 snapshots, totally 2 hrs. you can put the command in crontab for long time data capture.

If it success, you will see an IP Address connected. See below :

nmon connected
  • Run Java Nmon Analyzer GUI
# java -jar nmonanal_0.1.2.jar

A pop-up window name System Performance Monitor for LINUX & AIX will show. Then you need to load the data.

  • Click Data Loader > From Agent. Then enter target IP Address and its port. By default, it will use 8187 port number
Enter IP Address and Port
  • Click OK
  • Wait for couple seconds and the GUI start showing you the result
jnmon CPU monitoring
jnmon memory monitoring
jnmon disk monitoring
nmon network monitoring

You can also choose to display the output within a specific time range. The available time range are:

  • 1 minutes
  • 5 minutes
  • 10 minutes
  • 30 minutes
  • 1 hours
  • 2 hours
  • 3 hours
  • 6 hours
  • 12 hours
  • 1 day
  • 2 day

With Java Nmon Analyzer, we can graph nmon output to make it easier to read. This application also easy to use because we don’t need to install it and it has simple menus to understand.

Leave a Comment