当前位置:首页 > 技术 > 正文内容

AIX/Linux 系统性能监控工具详解

访客 技术 2026年8月8日 1

nmon 性能分析工具

nmon 是一款免费的系统性能分析工具,可用于 AIX 和 Linux 系统。

nmon 监控指标说明

SYS_SUMM系统汇总信息,蓝线表示 CPU 占用率变化,粉线表示磁盘 IO 变化
AAA操作系统及 nmon 本身相关信息
BBBB系统外挂存储容量及类型
BBBC系统外挂存储位置、状态及描述
BBBD磁盘适配器信息(名称及描述)
BBBE通过 lsdev 命令获取的系统设备特征,显示 vpaths 和 hdisks 映射关系
BBBG磁盘组详细映射关系
BBBL逻辑分区(LPAR)配置详情
BBBN网络适配器信息
BBBPvmtune、schedtune、emstat 和 lsattr 命令输出
CPUnnCPU 占用情况,包含 user%、sys%、wait% 和 idle%
CPU_ALL所有 CPU 概述,显示平均占用情况及 SMT 状态
CPU_SUMM每个 CPU 执行时间内的占用情况
DGBUSY磁盘组 hdisk 设备平均占用情况
DGREAD每个磁盘组平均读情况
DGSIZE每个磁盘组平均读写情况(块大小)
DGWRITE每个磁盘组平均写情况
DGXFER每个磁盘组 I/O 每秒操作次数
DISKBSIZE执行时间内每个 hdisk 传输块大小
DISKBUSY每个 hdisk 设备平均占用情况
DISKREAD每个 hdisk 平均读情况
DISKWRITE每个 hdisk 平均写情况
DISKXFER每个 hdisk I/O 每秒操作次数
DISKSERV每个收集间隔中 hdisk 评估服务时间
DISK_SUMM总体 disk 读、写及 I/O 操作
JFSFILE每个文件系统间隔区间使用空间百分比
JFSINODE每个文件系统间隔区间使用 inode 百分比
MEM空闲实存数量
NET每个网络适配器数据传输速率(KB/s)
NETPACKET每个适配器网络读写包数量
PAGE相关页信息记录
PROCnmon 内核内部统计信息
TOP系统进程信息
ZZZZ自动转换 nmon 时间戳为真实时间

自动化脚本工具

提供自动化 hosts 配置和 nmon 数据分析功能:

  • AnalyseNmon.jar
  • AddHost.jar
  • run.bat

run.bat 脚本内容

@echo off
:main
cls
echo ******************************
echo 1. 添加HOSTS(将输入的IP地址、主机名映射添加至目标机器列表的HOSTS文件中)
echo 2. 删除HOSTS(将输入的IP地址、主机名映射从目标机器列表的HOSTS文件中删除)
echo 3. 分析NMON数据(取得NMON文件中某时段的资源平均使用信息保存在output.csv中)
echo 4. 退出
echo ******************************
set /p cmd=请输入序号:
if %cmd%==1 goto cmd1
if %cmd%==2 goto cmd2
if %cmd%==3 goto cmd3
if %cmd%==4 goto exit
goto main

:cmd1
set /p ip=请输入IP:
set /p name=请输入HostName:
java -jar AddHost.jar %ip% %name% ADD
pause
goto exit

:cmd2
set /p ip=请输入IP:
set /p name=请输入HostName:
java -jar AddHost.jar %ip% %name% DEL
pause
goto exit

:cmd3
set /p folder=请输入NMON文件或文件夹(exp. D:\NMon\solrapp01_120830_0000.nmon或D:\NMon):
set /p start=请输入开始时间(exp. 16:31:23或00:00:02 30-AUG-2012):
set /p end=请输入结束时间(exp. 16:31:23或00:00:02 30-AUG-2012):

java -jar AnalyseNmon.jar "%folder%" %start% %end%
REM "%folder%"  此处需要引号用来兼容用户有空格的文件夹

output.csv
pause
goto exit

:exit

AIX 系统 CPU 监控

vmstat 命令

vmstat 提供系统资源和性能问题的简要信息。

# vmstat 2
System configuration: lcpu=8 mem=8192MB

kthr    memory           page            faults      cpu
-----   -----------      ------------------------    -----------
 r  b   avm   fre      re  pi  po  fr  sr  cy      in   sy  cs us sy id wa
 0  0 1596212 186517    0   0   0   0   0   0     157 2242 757  5  0 95  0
 1  0 1602824 179905    0   0   0   0   0   0     276 8731 986 23  1 76  0

CPU 列说明

  • us: 用户模式下 CPU 时间百分比
  • sy: 系统模式下 CPU 时间百分比
  • id: 无磁盘 IO 时 CPU 空闲时间百分比
  • wa: 等待磁盘 IO 的 CPU 空闲时间百分比

kthr 列说明

  • r: 可运行内核线程平均数
  • b: 等待队列中的内核线程数

faults 列说明

  • in: 每秒设备中断数
  • sy: 每秒系统调用次数
  • cs: 每秒上下文切换次数

iostat 命令

快速获取系统第一印象,同时报告 CPU 统计信息。

# iostat -t 2 5
System configuration: lcpu=8

tty:   tin   tout   avg-cpu:  %user  %sys  %idle  %iowait
       0.0   16.0      1.0     0.3    98.6     0.1
       0.0   70.0      6.1     0.3    93.6     0.0

sar 命令

收集系统统计数据,但会增加系统负载。

实时采样显示

# sar -u 1 10
AIX SISDB_B 3 5 00C674AF4C00 07/14/09
System configuration: lcpu=8 mode=Capped

16:24:44  %usr  %sys  %wio  %idle  physc
16:24:45    17     5     2     76   4.00
16:24:46    22     5     1     72   4.03

每个处理器信息

# sar -uP ALL 3 2
AIX SISDB_B 3 5 00C674AF4C00 07/14/09
System configuration: lcpu=8 mode=Capped

16:33:32  cpu  %usr  %sys  %wio  %idle  physc
16:33:35    0    8     2     1     89    0.54
            1    0     0     0    100    0.45
            -    6     2     0     93    3.99

tprof 命令

统计每个进程的 CPU 使用情况。

# tprof -x sleep 10
Tue Jul 14 17:09:01 2009
System: AIX 5.3 Node: i2db Machine: 00CC886E4C00
Starting Command sleep 10
stopping trace collection.
Generating sleep.prof

ps 命令

显示进程当前状态。

# ps aux |head -20
USER    PID  %CPU  %MEM   SZ   RSS  TTY STAT  STIME    TIME COMMAND
root   57372   6.1   0.0  384   384  -   A   Jan 10 131504:45 wait
root   73764   6.1   0.0  384   384  -   A   Jan 10 129539:44 wait

topas 命令详解

监控系统活动:memory、I/O、paging space、cpu、process。

参数说明

  • -d: 指定监控磁盘数,默认2
  • -i: 设置监控间隔(秒),默认2秒
  • -n: 设置监控网络接口数,默认2
  • -p: 指定监控进程数,默认20
  • -c: 指定监控CPU数,默认2
  • -P: 显示全屏进程
  • -W: 显示全屏WLM类

子命令

  • a: 显示所有监控部分
  • c: 在累积报告和最忙CPU间切换
  • d: 在最忙磁盘和系统总磁盘活动间切换
  • n: 在最忙接口和系统总网络活动间切换
  • p: 进程开关切换
  • P: 全屏进程显示
  • q: 退出程序
  • r: 更新显示

各部分含义

PAGING 部分

  • Faults: 每秒分页错误总数
  • Steals: 每秒被虚拟内存管理器偷走的物理内存帧
  • PgspIn: 每秒从分页空间读取的4k分页数
  • PgspOut: 每秒写入分页空间的4k分页数

Memory 部分

  • Real,MB: 实际内存大小(MB)
  • %Comp: 计算分页片断占实际内存百分比
  • %Nocomp: 非计算分页片断占实际内存百分比
  • %Client: 缓冲远程挂载文件内存占实际内存百分比

CPU 部分

  • User%: 用户程序占用CPU百分比
  • Kern%: 内核程序占用CPU百分比
  • Wait%: 等待IO操作占用CPU百分比
  • Idel%: CPU空闲百分比

nmon 使用示例

[oracle@ppptdb nmon]$ ./nmon_x86_rhel45 --help
Hint: nmon_x86_rhel45 [-h] [-s <seconds>] [-c <count>] [-f -d <disks> -t -r <name>] [-x]
-h FULL help information
Interactive-Mode:
read startup banner and type: "h" once it is running
For Data-Collect-Mode (-f)
-f spreadsheet output format [note: default -s300 -c288]
optional
-s <seconds> between refreshing the screen [default 2]
-c <number> of refreshes [default millions]
-d <disks> to increase the number of disks [default 256]
-t spreadsheet includes top processes
-x capacity planning (15 min for 1 day = -fdt -s 900 -c 96)

sysstat / sar 工具

系统性能监控工具集。

sar 安装问题解决

首次执行 sar 命令时可能出现错误:

Cannot open /var/log/sa/sa**: No such file or directory

解决方案:

#sar -o 2 7

执行后 /var/log/sa/ 目录下将生成相应文件。

标签: nmon

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。