- A+
在 Linux 系统管理中,性能监控是确保服务器稳定运行的关键任务。无论是排查性能瓶颈、优化资源分配,还是进行容量规划,都需要依赖可靠的工具来收集和分析系统指标。nmon(Nigel's Monitor)是一款轻量级、功能强大的命令行工具,能够实时监控 CPU、内存、磁盘、网络等关键性能指标,并支持生成可视化报告。本文将详细介绍 nmon 的安装、使用方法及其核心功能,帮助你快速掌握这一系统监控利器。
1. nmon 简介
nmon 是由 IBM 开发的开源工具,全称为 Nigel's Monitor(以开发者 Nigel Griffiths 命名)。它最初用于 AIX 系统,后来被移植到 Linux 平台,并迅速成为系统管理员和开发者的首选工具之一。nmon 的特点包括:
- 轻量级:无需复杂配置,启动即可使用。
- 实时监控:动态显示 CPU、内存、磁盘、网络等指标。
- 数据导出:支持将监控数据保存为 CSV 文件,便于后续分析。
- 可视化支持:可通过工具(如
nmon_analyser
)将数据转换为 Excel 图表。 - 跨平台:支持 Linux、AIX、PowerLinux 等系统。
2. 安装 nmon
2.1 基于 YUM/APT 的系统
# CentOS/RHEL 7/8
sudo yum install epel-release -y
sudo yum install nmon -y
# Ubuntu/Debian
sudo apt install nmon -y
3. nmon 基本用法
3.1 启动 nmon
直接运行 nmon
命令即可启动交互式界面
nmon

3.2 快捷键说明
快捷键 | 功能说明 |
---|---|
c | 查看 CPU 使用率(按核心/逻辑处理器显示) |
m | 查看内存使用情况(包括缓存、缓冲区) |
d | 查看磁盘 I/O 统计(读写速度、IOPS) |
n | 查看网络接口流量(接收/发送速率) |
t | 查看进程列表(按 CPU/内存排序) |
h | 显示帮助信息 |
q | 退出 nmon |
3.3 保存监控数据到文件
使用 -f
参数将数据保存为 CSV 文件(文件名自动包含主机名和日期)
nmon -f -s 10 -c 60
-s 10
:每 10 秒采集一次数据。-c 60
:共采集 60 次(即 10 分钟)。- 文件示例:
localhost_231001_1200.nmon
4. 高级功能与技巧
4.1 监控特定指标
通过参数直接启动特定监控模式
nmon -t -s 5 -c 12 //每5秒采样,共12次,显示进程信息
nmon -F /tmp/test.nmon -s 2 -c 300 //指定输出文件路径
4.2 结合 nmon_analyser
生成图表
- 下载
nmon_analyser
Excel 工具(可从 IBM 官网或 GitHub 获取)。 - 将
.nmon
文件重命名为.csv
(或直接使用 Excel 打开)。 - 运行
nmon_analyser
宏,自动生成图表。
4.3 定时任务自动化监控
通过 cron
设置定时任务,定期收集数据
# 每天凌晨1点运行nmon,采集1小时数据
0 1 * * * /usr/bin/nmon -f -s 300 -c 72 > /dev/null 2>&1
5. 实际应用场景
5.1 排查 CPU 瓶颈
- 按
c
查看各核心负载,识别高 CPU 消耗进程(top
或htop
辅助)。 - 检查是否有大量
si/so
(内存交换)导致 CPU 等待。
5.2 分析内存泄漏
- 按
m
查看内存使用趋势,关注free
和cached
变化。 - 结合
vmstat 1
观察swap in/out
。
5.3 磁盘 I/O 优化
- 按
d
查看磁盘读写速度和 IOPS,定位高负载设备。 - 使用
iostat -x 1
进一步分析%util
和await
。
5.4 网络性能诊断
- 按
n
查看网卡流量,识别突发流量或异常连接。 - 结合
iftop
或nethogs
定位具体进程。
6. 替代工具对比
工具 | 优点 | 缺点 |
---|---|---|
nmon | 轻量、实时、支持导出 CSV | 依赖终端,无 Web 界面 |
htop | 交互式进程管理,色彩高亮 | 侧重进程,性能指标较少 |
Glances | 综合监控,支持 Web 界面 | 资源占用较高 |
Prometheus + Grafana | 强大可视化,支持告警 | 配置复杂,适合中大型环境 |
7. 总结
nmon 以其简洁高效的特点,成为 Linux 系统性能监控的经典工具。无论是快速排查问题还是长期性能分析,nmon 都能提供关键数据支持。通过结合 nmon_analyser
或定时任务,你可以轻松实现自动化监控和报告生成。