性能监控工具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):

  1. 下载 nmon Analyzer
  2. 用 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:记录进程状态。

六、结果解读关键指标

  1. CPU 使用率

    • User%: 用户程序占用。
    • Sys%: 系统内核占用。
    • Wait%: I/O 等待时间(高值可能表示磁盘瓶颈)。
  2. 内存

    • MemFree: 空闲内存。
    • Cached: 缓存内存(可被快速释放供程序使用)。
    • Swap 使用率: 过高可能需增加物理内存。
  3. 磁盘 I/O

    • Disk KB/s: 每秒读写数据量。
    • IO/s: 每秒 I/O 操作次数(高值可能需优化磁盘配置)。
  4. 网络

    • Recv/s 与 Trans/s: 网络接收/发送速度,警惕流量突增。

七、注意事项

  • 资源消耗:nmon 本身占用资源极低,适合长期监控。
  • 文件管理:定期清理旧日志,避免磁盘空间不足。
  • 权限:普通用户可运行,但部分系统信息需要 root 权限(建议使用 sudo)。

通过结合实时监控和日志分析,nmon 能有效定位系统性能瓶颈。需要更深入分析时,可配合 sarvmstatGrafana 等工具使用。

posted @ 2025-05-23 15:38  玛卡巴卡糖  阅读(449)  评论(0)    收藏  举报