性能监控工具nmon
nmon 是一款用于监控 Linux 和 AIX 系统性能的开源工具(原名 Nigel's Monitor),能够实时显示 CPU、内存、磁盘、网络、进程等关键指标,并支持将数据保存为 CSV 文件供后续分析。以下是其详细使用方法:
一、安装 nmon
1. Linux 系统
- Debian/Ubuntu:
sudo apt-get install nmon - RHEL/CentOS:
sudo yum install epel-release # 先启用 EPEL 仓库 sudo yum install nmon
2. 直接下载二进制文件
从 nmon 官方站点 下载对应系统的二进制文件,赋予执行权限即可使用:
chmod +x nmon_x86_64_linux
./nmon_x86_64_linux
二、基础使用:交互模式
直接运行 nmon 进入交互式界面,通过快捷键切换监控视图:
- CPU:按
c - 内存:按
m - 磁盘 I/O:按
d - 网络:按
n - 进程:按
p - 退出:按
q
三、数据记录与分析
1. 保存监控数据
使用 -f 参数后台运行并生成 CSV 文件:
nmon -f -s 10 -c 60 -m /path/to/logs/
-s 10:每隔 10 秒采集一次数据。-c 60:总共采集 60 次(即持续 10 分钟)。-m /path/to/logs/:保存日志文件的目录。- 文件命名规则:
hostname_YYMMDD_HHMM.nmon
2. 停止监控进程
手动结束任务或等待自动完成,建议用 pkill 终止:
pkill nmon
四、分析数据
1. 使用 nmon Analyzer
将 .nmon 文件转换为可视化报告(需 Excel):
- 下载 nmon Analyzer。
- 用 Excel 打开工具,加载
.nmon文件,自动生成图表报告。
2. 命令行分析
直接用脚本或工具(如 awk)解析 CSV 文件:
# 示例:提取 CPU 使用率
awk -F, '/CPU_ALL/ {print $4 "," $5 "," $6}' hostname_240610_1200.nmon
五、高级用法
1. 定时任务监控
通过 cron 定期运行 nmon,以下示例每天 9 点到 18 点每小时监控 5 分钟:
0 9-18 * * * nmon -f -s 300 -c 12 -m /var/nmon_logs
2. 监控特定子系统
通过参数指定需要监控的模块:
nmon -f -t -T -p -r test_run
-t:包含 Top 进程统计。-T:输出网络和磁盘的详细信息。-p:记录进程状态。
六、结果解读关键指标
-
CPU 使用率
- User%: 用户程序占用。
- Sys%: 系统内核占用。
- Wait%: I/O 等待时间(高值可能表示磁盘瓶颈)。
-
内存
- MemFree: 空闲内存。
- Cached: 缓存内存(可被快速释放供程序使用)。
- Swap 使用率: 过高可能需增加物理内存。
-
磁盘 I/O
- Disk KB/s: 每秒读写数据量。
- IO/s: 每秒 I/O 操作次数(高值可能需优化磁盘配置)。
-
网络
- Recv/s 与 Trans/s: 网络接收/发送速度,警惕流量突增。
七、注意事项
- 资源消耗:nmon 本身占用资源极低,适合长期监控。
- 文件管理:定期清理旧日志,避免磁盘空间不足。
- 权限:普通用户可运行,但部分系统信息需要 root 权限(建议使用
sudo)。
通过结合实时监控和日志分析,nmon 能有效定位系统性能瓶颈。需要更深入分析时,可配合 sar、vmstat 或 Grafana 等工具使用。
浙公网安备 33010602011771号