Linux · System Tools
nmon
nmon is a lightweight console tool that monitors CPU, memory, disk, network, and processes on Linux systems.
- License
- GPL-2.0
- Latest version
- 16s
What is nmon?
nmon, short for "Nigel's performance Monitor", first appeared in 2009 as a shell script for AIX and later ported to Linux. Over the years it has become a staple for system administrators who need quick, real‑time insight into resource usage without a graphical interface.
The tool is aimed at power users and sysadmins who prefer terminal workflows. It runs inside a terminal session, displaying data in a grid that updates every few seconds, and can log data to a file for later analysis.
Compared to Windows Process Explorer, nmon feels more utilitarian: no mouse interaction, no fancy UI, but it delivers the same core metrics—CPU, memory, processes, I/O—directly in the console, which many Linux users find more efficient for remote or headless servers.
Best for: System administrators and power users who need lightweight, terminal‑based performance monitoring.
Key features of nmon
- Real‑time CPU, memory, disk, network, and process stats
- Configurable refresh rate
- Supports logging to CSV for post‑analysis
- Displays I/O per device and per process
- Keyboard shortcuts for navigation
- Can run as a background daemon
- Supports multiple output formats (CSV, JSON)
Pros
- Runs in any terminal, no GUI required
- Very low resource footprint
- Highly configurable and scriptable
- Long history of stable releases
Cons
- No graphical interface, steep learning curve for beginners
- Limited to text output, no interactive charts
- Requires manual key presses for navigation
- Lacks advanced filtering compared to modern tools
Windows programs nmon replaces
How to install nmon on Linux
sudo apt install nmonsudo apt install nmonsudo dnf install nmonsudo pacman -S nmonsudo zypper install nmonTips for Windows users
If you come from Process Explorer, expect to use keyboard shortcuts (e.g., F1 for help, F2 to toggle views) instead of mouse clicks. nmon outputs data in CSV, which can be imported into spreadsheets for analysis. Unlike Process Explorer’s hierarchical view, nmon lists processes in a flat table; you’ll need to sort by PID or CPU to find what you need. Workflow changes: use the command line to start nmon (nmon -f -s 5 -c 60 to log every 5 seconds for 60 cycles) and then open the log file with awk or csvkit for deeper inspection.
nmon: frequently asked questions
How do I start nmon in logging mode?
Run nmon -f -s 5 -c 60 to log every 5 seconds for 60 cycles. The log file will be named nmon_YYYYMMDD_HHMMSS.csv.
Can I view network statistics with nmon?
Yes, press n while nmon is running to toggle the network view, which shows per‑interface throughput.
Is nmon available on all major distributions?
It is packaged in Arch, Debian, Fedora, openSUSE, and Ubuntu; you can also install it from source if needed.
Does nmon support multi‑core CPU monitoring?
Yes, it displays per‑CPU usage and aggregates totals, making it suitable for multi‑core systems.
Updated