Linux 系统性能监控工具nmon

  • A+
所属分类:Linux Ubuntu 系统运维

在 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
Linux 系统性能监控工具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 生成图表

  1. 下载 nmon_analyser Excel 工具(可从 IBM 官网或 GitHub 获取)。
  2. 将 .nmon 文件重命名为 .csv(或直接使用 Excel 打开)。
  3. 运行 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 或定时任务,你可以轻松实现自动化监控和报告生成。

xxx