菜鸟科技网

aix nmon命令如何高效使用?

在aix系统中,nmon(nagios monitor)是一款广受欢迎的性能监控工具,由ibm提供并针对aix系统进行了深度优化,它能够实时收集和展示系统各项关键性能指标,帮助管理员快速定位性能瓶颈、分析系统负载情况,是aix日常运维和性能调优的必备利器,nmon命令的最大优势在于其轻量级、高效性和丰富的监控维度,同时支持将监控数据导出为csv格式,便于后续的长期分析和报表生成。

aix nmon命令如何高效使用?-图1
(图片来源网络,侵删)

nmon命令的基本使用

nmon命令的语法格式为nmon [选项],其中常用的选项包括:

  • -f:后台运行模式,自动生成数据文件,文件名包含主机名和日期时间。
  • -s:设置采样间隔,单位为秒,例如-s 5表示每5秒采样一次。
  • -c:设置采样次数,例如-c 60表示共采样60次,持续时间为5分钟(若间隔为5秒)。
  • -m:指定数据文件的输出目录,默认为当前目录。
  • -t:显示top进程信息,按CPU使用率排序。
  • -x:监控扩展信息,包括网络、文件系统等详细数据。
  • -h:显示帮助信息。

要监控系统5分钟,每10秒采样一次,并将数据保存到/var/log/nmon目录,可以使用以下命令:

nmon -f -s 10 -c 30 -m /var/log/nmon

执行后,nmon会在后台运行,并在指定目录生成类似hostname_YYYYMMDD_HHMM.nmon的数据文件。

nmon的监控界面与交互

当直接执行nmon命令(不带-f选项)时,会进入交互式监控界面,界面分为多个区域,分别显示不同类别的性能数据:

aix nmon命令如何高效使用?-图2
(图片来源网络,侵删)
  • CPU区域:显示每个CPU核心的使用率(用户态、系统态、空闲、等待),以及逻辑CPU数量。
  • 内存区域:显示物理内存总量、已用内存、空闲内存、缓存(cached)和缓冲区(buffer)的使用情况。
  • 磁盘区域:显示每个磁盘设备的名称、传输速率(读/写)、I/O操作次数(读/写)和等待时间。
  • 网络区域:显示每个网络接口的名称、接收/发送的数据包数量、传输字节数和错误数。
  • 文件系统区域:显示每个文件系统的挂载点、总容量、已用空间、可用空间和使用率。
  • 进程区域:显示CPU使用率最高的前几个进程及其PID、CPU占用率和内存占用率。

在交互界面中,用户可以通过按键盘上的快捷键切换监控视图:

  • c:切换到CPU监控。
  • m:切换到内存监控。
  • d:切换到磁盘监控。
  • n:切换到网络监控。
  • j:切换到文件系统监控。
  • t:切换到进程监控。
  • q:退出nmon监控。

nmon数据文件的解析与分析

nmon生成的数据文件是文本格式,包含以开头的注释行(说明主机信息、采样时间间隔等)和以字母开头的数据行,每行数据对应一个时间点的采样结果,列之间用逗号分隔。

TIMESTAMP,HOSTNAME,VERSION,CPUs,LINUX,DATE,TIME,CPU_ALL,%user,%sys,%wait,%idle,DISK_READ,hdisk0,hdisk1,DISK_WRITE,hdisk0,hdisk1
20231101 10:00:00,server1,aix71,8,0,2023-11-01,10:00:00,CPU_ALL,10.2,5.3,2.1,82.4,DISK_READ,1024,512,DISK_WRITE,2048,1024

要分析这些数据,可以使用nmon自带的nmon analyser工具(Excel宏文件)或第三方脚本。nmon analyser的使用步骤如下:

  1. 将生成的.nmon文件复制到安装了Excel的Windows系统中。
  2. 打开nmon analyser vXX.xls(XX为版本号),点击“Start Here”工作表中的“Select an nmon file”按钮,选择.nmon文件。
  3. 工具会自动解析数据并生成多个工作表,包括CPU、内存、磁盘、网络等性能图表,方便直观分析。

nmon的高级功能

  1. 自定义监控指标
    通过修改/etc/nmon.conf文件,可以自定义需要监控的磁盘、网络接口或文件系统,仅监控hdisk0ent0设备,可以在配置文件中添加:

    aix nmon命令如何高效使用?-图3
    (图片来源网络,侵删)
    disks hdisk0
    interfaces ent0

    然后使用-C选项指定配置文件路径:

    nmon -C /etc/nmon.conf
  2. 远程监控
    可以通过sshrsh远程执行nmon命令,将监控数据保存到本地,通过ssh远程监控server1并保存数据到本地:

    ssh user@server1 "nmon -f -s 10 -c 60 -m /tmp"
    scp user@server1:/tmp/*.nmon ./
  3. 实时性能报警
    虽然nmon本身不提供报警功能,但可以结合cron任务和脚本实现,编写一个脚本检测CPU使用率超过90%时发送邮件报警:

    #!/bin/bash
    threshold=90
    cpu_usage=$(nmon -x -s 1 -c 1 | grep "CPU_ALL" | awk -F',' '{print $3}')
    if (( $(echo "$cpu_usage > $threshold" | bc -l) )); then
        echo "High CPU usage: $cpu_usage%" | mail -s "CPU Alert" admin@example.com
    fi

监控指标说明与表格示例

以下是nmon主要监控指标的说明及示例数据:

指标类别 关键指标说明 示例数据(单位)
CPU %user:用户态CPU占用率;%sys:系统态CPU占用率;%wait:I/O等待CPU占用率 CPU_ALL: 15.2, 8.1, 3.5, 73.2
内存 Real MB:物理内存总量;Free MB:空闲内存;Cached MB:缓存内存 MEM: 16384, 2048, 8192, 6144
磁盘I/O MBREAD/s:磁盘读取速率;MBWRITTEN/s:磁盘写入速率;WAIT ms:磁盘平均等待时间 DISK_READ: hdisk0=512, hdisk1=256
网络 PACKETS/s:数据包速率;ERR/s:错误包速率;KB/s:传输速率 NET: ent0=1024, 0, 512
文件系统 MBFS:文件系统总容量;MBFREE:剩余空间;%USE:使用率 JFS2: /data=10240, 2048, 80.0

相关问答FAQs

Q1: nmon生成的数据文件如何转换为Excel图表?
A1: 使用nmon自带的nmon analyser工具(Excel宏文件)转换步骤如下:

  1. .nmon文件传输到Windows系统;
  2. 打开nmon analyser vXX.xls,点击“Select an nmon file”选择数据文件;
  3. 工具自动解析并生成CPU、内存、磁盘等性能图表,可直接查看或导出为PDF/PNG格式。

Q2: 如何通过nmon持续监控系统性能并自动清理旧数据?
A2: 可以结合cron任务实现长期监控和清理。

  1. 创建监控脚本/usr/local/bin/nmon_monitor.sh
    #!/bin/bash
    nmon -f -s 60 -c 1440 -m /var/log/nmon  # 每分钟采样,持续24小时
    find /var/log/nmon -name "*.nmon" -mtime +7 -delete  # 删除7天前的数据
  2. 添加到cron任务,每天凌晨执行:
    0 0 * * * /usr/local/bin/nmon_monitor.sh >/dev/null 2>&1
分享:
扫描分享到社交APP
上一篇
下一篇