AIX的sar命令详解(原创)
sar概述
sar 命令将操作系统中选定的累计活动计数器的内容写到标准输出。基于 Number 和 Interval 参数的值,记帐系统以指定的时间间隔(以秒为单位)和指定间隔次数写入信息。Number参数的缺省采样时间间隔为 1 秒。收集的数据也可以保存在由 -o File 标志所指定的文件中。
?
计算等待磁盘 I/O 所花费 CPU 时间(wio 时间)百分比的方法的改进。
在 AIX 4.3.2 及早期操作系统版本中采用的方法在某些情况下会在 SMP 上显示出夸大的 wio 时间。wio 时间是由 sar(%wio)命令、vmstat(wa)命令和 iostat(% iowait)命令报告的。
AIX 4.3.2 及早期版本中使用的方法如下:每个处理器上的每次时钟中断(每个处理器 100 次/秒)时,都须确定要将最后 10 ms 时间花费在四个类别(usr/sys/wio/idle)中的哪个上。如果时钟中断时 CPU 正处于 usr 模式下,则 usr 类别获取该时钟信号加入其中。如果时钟中断时 CPU 处于 kernel 模式下,则 sys 类别获取该信号。如果 CPU 不忙,则检查是否有任何磁盘 I/O 正在进行。如果有正在进行的磁盘 I/O,则增加 wio 类别。如果没有正在进行的磁盘 I/O 且 CPU 不忙,则 idle 类别取得该信号。wio 时间的夸大是由于所有空闲 CPU 都被视为 wio,而不管等待 I/O 的线程数。例如,只有一个线程正在执行 I/O 的系统可能报告大于 90% 的 wio 时间,而不管该系统拥有的 CPU 数量。
操作系统 AIX 4.3.3 及以后版本中使用的方法如下:在操作系统 AIX 4.3.3 中所作的更改是仅当某空闲 CPU 上有未完成的 I/O 开始时才将其标记为 wio。当只有几个线程正在执行 I/O,或者系统为空闲时,此方法所报告的 wio 时间要低得多。例如,系统中有四个CPU 且一个线程正在执行 I/O 时,最多只报告 25% 的 wio 时间。系统中有十二个 CPU 且一个线程正在执行 I/O 时,最多报告 8% 的 wio 时间。NFS客户机通过 VMM 进行读/写,现在将 biod 在 VMM等待 I/O 完成所花费的时间报告为 I/O 等待时间。
sar参数
?
-A没有使用 -P 标志时,使用 -A 标志相当于指定 -abckmqruvwy。当与 -P 标志一起使用时,-A 相当于指定 -acmuw。-a 报告使用文件存取系统例程指定每秒调用各种系统文件存取例程的次数。当与 -P 标志一起使用时,只为每个指定处理器提供此信息;否则,只在系统范围内提供此信息。将显示以下数值:注:根据 sar 命令运行的时间间隔,它本身可以生成相当多的读和写。在无工作负荷的情况下运行 sar 统计,以了解 sar 命令在总统计信息中的份额。-d报告每个块设备(除磁带驱动器外)的活动。所报告的活动数据是:
avserv每个I/O请求的平均(服务)完成时间,单位是毫秒. 表示 I/O 请求到达I/O 设备后,从设备上得到返回结果的时间 -e hh[:mm[:ss]] 设置报告的结束时间。缺省结束时间是 18:00。-X File从 File文件中抽取记录,该文件由 sar/sadc 命令的 AIX 4.3 或 AIX 4.2 版本生成。-f File从 File(由 -o File 标志创建)文件中抽取记录。File参数的缺省值是当前每日数据文件,即 /var/adm/sa/sadd 文件。-i Seconds 以尽可能接近 Seconds参数所指定的秒数选择数据记录。否则,sar 命令将报告在该数据文件中找到的所有秒数。-k 报告内核进程活动。将显示以下数值:
注:任何列为空值表示相关的队列为空。-r 报告页面调度统计信息。将显示以下数值:
报告每个处理器或整个系统的统计信息。当与 -P 标志一起使用时,为每个指定的处理器提供此信息;否则,只在系统范围内提供此信息。因为 -u 标志信息以百分比表示,所以系统范围信息只是每个处理器统计信息的平均值。并且,I/O 等待状态是以整个系统而不是每个处理器来定义的。将显示以下数值:
? %idle
注:如果没有请求其它特定的内容选项,则sar 命令报告系统部件的活动。
? physc??????????
??????? 消耗物理处理器的数目,只在共享处理器或启用同时多线
?????????? 程的分区上报告
-V 读取在以前操作系统版本中创建的 sar 文件。此标志只能与 -f 标志一起使用。-v 报告进程、内核线程、i-node 和文件表的状态。将显示以下数值:使用示例
1、要在随后的 20 秒内每隔 2 秒报告当前的 tty 活动和页面调度统计信息:
sar -y? -r 2 20
2、要观察系统部件 10 分钟,并以保存为二进制文件temp:
sar? -o temp 60 10
3、要报告最前面的两个处理器的 cpu 活动:
sar? -u? -P 0,1
sar命令的缺省参数为-u参数,故不加-u参数亦可
4、要报告所有处理器和系统范围内的消息、信号量及 CPU 活动:
sar? -mu? -P ALL
5、要读取在以前操作系统版本上生成的名为 File 的系统活动文件中聪14:20开始到15:00结束的内容中系统切换和队列统计信息的那部分。其中,-s 并不是包含性的,所以必须从所选择的开始时间中多减去十分钟。:
sar? -f File -s 14:20 -e 15:00 -w -q
参考至:http://www.ibm.com/developerworks/cn/aix/library/es-unix-perfmonsar.html
???????????? http://hi.baidu.com/h_sn999/blog/item/413c97b755c0b4e530add156.html
???????????? http://www.wangchao.net.cn/bbsdetail_532003.html
???????????? http://www.kuqin.com/aixcmds/aixcmds5/sar.htm#a26891631
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com