【AIX 学习】性能优化--sar

简介: sar 是unix中的性能监控工具,是system activity report 的缩写,主要收集,显示,和保存系统的活动信息,包括cpu效率,内存使用状况,系统调用的使用,文件读写情况,进程活动即PIC有关活动等。

sar 是unix中的性能监控工具,是system activity report 的缩写,主要收集,显示,和保存系统的活动信息,包括cpu效率,内存使用状况,系统调用的使用,文件读写情况,进程活动即PIC有关活动等。
sar 命令设计由cron守候进程启动执行,如果cron 进程每天都没有执行sar命令,
当运行不带参数的sar命令时会出现如下提示:
ufserver[/]#sar
Can't open /var/adm/sa/sa10
Try running /usr/lib/sa/sa1
执行一次,就可以使用sar命令
ufserver[/]#/usr/lib/sa/sa1 2 5

ufserver[/]#sar ---不带参数显示cpu 统计信息
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
13:51:40    %usr    %sys    %wio   %idle   physc
13:51:42       1       1       0      99    2.00
13:51:44       0       1       0      99    2.00
13:51:46       0       1       0      99    2.01
13:51:48       1       1       0      99    2.00
Average        1       1       0      99    2.00
%usr cpu花在用户应用程序上的时间百分比。
%sys 处于系统模式下的时间,cpu花在内核程序上的时间百分比。
%wio cpu为等待磁盘I/O完成而空闲的百分比
%idle cpu纯粹地处于空闲状态的时间百分比,即没有磁盘I/O请求。
physc  ?
ufserver[/]#sar 5 5  --每隔5秒收集一次cpu信息,共采集10次。
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
13:58:44    %usr    %sys    %wio   %idle   physc
13:58:49       1       1       0      98    2.00
13:58:54       1       1       0      99    2.00
13:58:59       1       1       0      98    2.00
13:59:04       1       1       0      99    2.00
13:59:09       1       1       0      98    2.00
Average        1       1       0      98    2.00

ufserver[/]#sar -a 3 5  --以3秒为周期采样5次,报告文件系统的文件读写操作情况
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:16:21  iget/s lookuppn/s dirblk/s
14:16:24       0       1079        0
14:16:27       0        663        0
14:16:30       0       1621        0
14:16:33       0        749        0
14:16:36       0       1437        0

Average        0       1110        0
ufserver[/]# --系统调用的情况。系统调用是有操作系统提供的系统函数,这些函数可以由应用程序或系统程序调用。
ufserver[/]#sar -c 3 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:19:05 scall/s sread/s swrit/s  fork/s  exec/s rchar/s wchar/s
14:19:08    2158      21      19    0.66    0.66    4564    1206
14:19:11    5170     300      18    1.94    3.56 1055832    1184
14:19:14    2141      16      16    0.00    0.00    1066    1105
14:19:17    2730      17      17    0.00    0.00    1082    1121
14:19:20    2164      19      16    0.00    0.00    1389    1105

Average     2886      76      17    0.53    0.86  218176    1144
各个字段的含义:
scall/s 表示每秒钟使用系统调用的总数
sread/s 表示每秒钟使用read()系统调用的总数
依次类推

ufserver[/]#sar -d 2 3 --统计块设备活动信息 (可以使用iostat 代替sar -d )
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4 drives=3  mode=Capped
13:52:50     device    %busy    avque    r+w/s    Kbs/s   avwait   avserv
13:52:52     hdisk1      0      0.0        0        0      0.0      0.0
             hdisk0      2      0.0        3       15      0.0      7.0
                cd0      0      0.0        0        0      0.0      0.0
13:52:54     hdisk1      0      0.0        0        0      0.0      0.0
             hdisk0      0      0.0        0        8      0.0      4.2
                cd0      0      0.0        0        0      0.0      0.0
13:52:56     hdisk1      0      0.0        0        0      0.0      0.0
             hdisk0      0      0.0        0        0      0.0      0.0
                cd0      0      0.0        0        0      0.0      0.0
Average      hdisk1      0      0.0        0        0      0.0      0.0
             hdisk0      0      0.0        1        7      0.0      3.7
                cd0      0      0.0        0        0      0.0      0.0
---统计队列活动信息 runq-sz
ufserver[/]#sar -q 2 5 查看队列的信息统计
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:23:13 runq-sz %runocc swpq-sz %swpocc
14:23:15     1.0      50               
14:23:17                               
14:23:19     1.0      50               
14:23:21                               
14:23:23                               
Average      1.0      20  
各个字段的含义:
runq-sz :指运行队列中内核线程的平均总数
%runocc :占用的时间百分比
swpq-sz :指内核线程等待页面调入的平均数,即交换队列的大小
%swpocc :指交换队列占用的时间百分比
---统计页面调度的活动
ufserver[/]#sar -r 2 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4 mem=3920MB  mode=Capped
14:28:49   slots cycle/s fault/s  odio/s
14:28:51 1141869    0.00  426.25   74.36
14:28:53 1141869    0.00  670.12   99.26
14:28:55 1141869    0.00  333.50    0.00
14:28:57 1141869    0.00  336.00   16.00
14:28:59 1141869    0.00 2152.19    0.50
Average  1141869       0     781      38
各个字段的含义:
cycle/s : 报告每秒页面替换循环的数量。
fault/s :报告每秒缺页故障的数量。它没有对生成 I/O 的缺页故障进行计数,因为一些缺页故障可以在没有 I/O 的情况下解决。
slots   :报告在调页空间中空闲页的数量。
odio/s  :报告每秒非页面调度磁盘 I/O 的数量。
----查看系统表的使用情况。
ufserver[/]#sar -v 2 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration:  mode=Capped
14:31:25  proc-sz     inod-sz     file-sz     thrd-sz  
14:31:27  142/262144  0/206       935/41675   356/524288
14:31:29  142/262144  0/206       935/41675   356/524288
14:31:31  141/262144  0/206       935/41675   355/524288
14:31:33  142/262144  0/206       935/41675   356/524288
14:31:35  141/262144  0/206       935/41675   355/524288
报告进程、内核线程、i-node 和文件表的状态。将显示以下数值:
file-sz 文件表, inod-sz i 节点表, proc-sz 进程表, thrd-sz 内核线程表
报告每个表中正在使用的条目数。
各列的值是分数,分子表示采样时 已经使用的表的个数,分母表示总的个数。通过监控表的使用情况,可以判断相应的系统表是否溢出。当发生溢出时 要调整相应的系统内核参数。

---统计TTY设备的信息
ufserver[/]#sar -y 2 6
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:37:06 rawch/s canch/s outch/s rcvin/s xmtin/s mdmin/s
14:37:08       0       0      71       0       0       0
14:37:10       0       0      29       0       0       0
14:37:12       0       0      29       0       0       0
14:37:14       0       0      29       0       0       0
14:37:16       0       0      29       0       0       0
14:37:18       0       0      29       0       0       0
Average        0       0      36       0       0       0
报告每秒 tty 设备的活动。
canch/s 报告 tty 规范输入队列字符。对于 AIX V4 及以后的版本,本字段总是 0(零)。
mdmin/s 报告 tty 调制解调器中断次数。
outch/s 报告 tty 输出队列字符数。
rawch/s 报告 tty 输入队列字符数。
revin/s 报告 tty 接收中断次数。
xmtin/s 报告 tty 发送中断次数

---缓冲区的信息统计  (测试机比较空闲)
ufserver[/]#sar -b 3 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:39:50 bread/s lread/s %rcache bwrit/s lwrit/s %wcache pread/s pwrit/s
14:39:53       0       0       0       0       0       0       0       0
14:39:56       0       0       0       0       0       0       0       0
14:39:59       0       0       0       0       0       0       0       0
14:40:02       0       0       0       0       0       0       0       0
14:40:05       0       0       0       0       0       0       0       0
Average        0       0       0       0       0       0       0       0
ufserver[/]#

报告缓冲区活动中每秒用于传输、存取以及高速缓存(内核块高速缓存)的命中率。存取第 3 版本中的大多数文件会忽略内核块缓冲,因此不生成这些统计信息。然而,如果程序打开块设备或裸字符设备进行 I/O,则使用传统的存取机制使生成的统计信息变得有意义。将显示以下数值:
bread/s, bwrit/s
报告 I/O 操作的块的数目。这些 I/O 通常由内核执行来管理块高速缓存区,正如在 lread/s 值的描述中所论述的那样。
lread/s, lwrit/s
报告逻辑 I/O 请求的数量。当执行对块设备的逻辑读或写时,可能请求小于整块大小的逻辑传输大小。系统对所有块的物理设备单元进行存取,并将这些块缓冲在为此目的而留出的内核缓冲区(块 I/O 高速缓存区)中。这个高速缓存区由内核管理,因此对块设备的多个逻辑读写可以存取以前缓冲在高速缓存中的数据,而且不需要对该设备进行真正的 I/O。应用程序对块的读写请求作为逻辑读写而统计地报告。由管理高速缓存区的内核所执行的对块设备的块 I/O 作为块读写而报告。
pread/s, pwrit/s
报告对裸设备的 I/O 操作的数量。对裸字符设备的 I/O 请求不像对块设备的 I/O 请求那样缓冲。直接对设备执行 I/0。
%rcache, %wcache
报告高速缓存的效率(高速缓存命中百分比)。此百分比由下式计算得出:[(100)x(lreads - breads)/ (lreads)]。

--报告内核进程活动。将显示以下数值:
ufserver[/]#sar -k 3 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:44:01 ksched/s kproc-ov  kexit/s
14:44:04        0        0        0
14:44:07        0        0        0
14:44:10        0        0        0
14:44:13        0        0        0
14:44:16        0        0        0
Average         0        0        0
字段含义:
kexit/s 
报告每秒内核进程终止数。
kproc-ov/s 
报告由于实施进程阈值限制而不能创建内核进程的次数。
ksched/s
报告每秒分配执行任务的内核进程数。

--报告每秒消息(发送和接收)以及信号量(创建、使用或破坏)活动。
当与 -P 标志一起使用时,为每个指定的处理器提供此信息;否则,只在系统范围内提供此信息。将显示以下数值:
ufserver[/]#sar -m 2 6
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:45:15   msg/s  sema/s
14:45:17    0.00    9.94
14:45:19    0.00   10.00
14:45:21    0.00   14.50
14:45:23    0.00   10.00
14:45:25    0.00   10.00
14:45:27    0.00   10.00
Average     0.00   10.74
 
ufserver[/]#sar -mP 2 6  ---使用参数P
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:46:09 cpu   msg/s  sema/s
14:46:15  2     0.00   10.83
msg/s
报告 IPC 消息原语的数量。
sema/s
报告 IPC 信号量原语的数量。

--报告系统切换的活动。
当与 -P 标志一起使用时,为每个指定的处理器提供此信息;否则,只在系统范围内提供此信息。将显示以下数值:
ufserver[/]#sar -w 3 5
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped
14:47:31 cswch/s
14:47:34    1040
14:47:37    1132
14:47:40    1057
14:47:43    1425
14:47:46    1459
Average     1223
字段含义:
cswch/s
报告每秒上下文转接的数量。
---报告所有处理器和系统范围内的消息、信号量及 CPU 活动,:
ufserver[/]#sar -mu -P ALL
AIX ufserver 3 5 00CECD3E4C00    09/10/10
System configuration: lcpu=4  mode=Capped

13:51:40 cpu   msg/s  sema/s
13:51:42  0     0.00    9.95
          1     0.00    0.00
          2     0.00    0.00
          3     0.00    0.00
          -     0.00    9.85
13:51:44  0     0.00   10.00
          1     0.00    0.00
          2     0.00    0.00
          3     0.00    0.00
          -     0.00   10.00
13:51:46  0     0.00    1.00
          1     0.00    0.00
          2     0.00    8.78
          3     0.00    0.00
          -     0.00    9.93
13:51:48  0     0.00    0.00
          1     0.00    0.00
          2     0.00   10.00
          3     0.00    0.00
          -     0.00    9.88
Average   0     0.00    5.18
          1     0.00    0.00
          2     0.00    4.71
          3     0.00    0.00
          -     0.00    9.91
System configuration: lcpu=4  mode=Capped
13:51:40 cpu    %usr    %sys    %wio   %idle   physc
13:51:42  0        2       2       0      96    0.53
          1        0       0       0     100    0.47
          2        0       0       0      99    0.52
          3        0       0       0     100    0.48
          -        1       1       0      99    2.00
13:51:44  0        2       2       0      97    0.52
          1        0       0       0     100    0.47
          2        0       0       0      99    0.52
          3        0       0       0     100    0.48
          -        0       1       0      99    2.00
13:51:46  0        2       1       0      97    0.53
          1        0       0       0     100    0.48
          2        0       1       0      99    0.53
          3        0       0       0     100    0.48
          -        0       1       0      99    2.01
13:51:48  0        2       2       0      97    0.52
          1        0       0       0     100    0.47
          2        0       1       0      99    0.52
          3        0       0       0     100    0.48
          -        1       1       0      99    2.00
Average   0        2       2       0      97    0.53
          1        0       0       0     100    0.47
          2        0       1       0      99    0.52
          3        0       0       0     100    0.48
          -        1       1       0      99    2.00
ufserver[/]#

目录
相关文章
|
Linux BI 开发者
Linux性能优化之cpu性能评估工具| 学习笔记
快速学习Linux性能优化之cpu性能评估工具。
94 0
Linux性能优化之cpu性能评估工具| 学习笔记
|
缓存 监控 Linux
Linux性能优化之内存性能评估工具| 学习笔记
快速学习Linux性能优化之内存性能评估工具。
210 0
Linux性能优化之内存性能评估工具| 学习笔记
|
Linux 网络架构 开发者
Linux性能优化之磁盘/网络性能评估以及性能优化标准| 学习笔记
快速学习Linux性能优化之磁盘/网络性能评估以及性能优化标准。
176 0
|
Linux BI
Linux性能优化之cpu性能评估工具
一、vmstat 二、iostat 三、uptime命令 四、top命令
Linux性能优化之cpu性能评估工具
|
缓存 监控 Linux
Linux性能优化之内存性能评估工具
一、内存性能评估之free命令 二、内存性能评估之Sat/pidstat命令 三、磁盘性能评估
Linux性能优化之内存性能评估工具
|
缓存 网络协议 Linux