1.1 Aix vmstat命令解析
1.1.1 概述
vmstat 命令报告内核线程、虚拟内存、磁盘、Traps、CPU 活动的统计数据。
AIX 4.3.2 和更早版本中使用的方法如下:在每个处理器的每一次时钟中断(每个处理器一秒钟 100 次),确定上一个 10 毫秒时间要归入四种类别(usr/sys/wio/idle)中的哪一个。如果在时钟中断的时候,CPU 正忙于 usr 方式,那么 usr 将获取该时钟周期添加到其类别中。如果在时钟中断的时候,CPU 正忙于内核方式,那么 sys 类别获取该时钟周期。如果 CPU 不忙的话,则检测是否有磁盘 I/O 正在进行。如果有任何正在进行的磁盘 I/ O,则累加 wio 类别。如果没有磁盘 I/O 正在进行且 CPU 不忙,则 idle 类别获取该时钟周期。由于所有的空闲 CPU 都被归入 wio 类别,而不管正在等待 I/O 的线程数量,所以会产生夸大的 wio 时间报告。例如,只有一个 I/O 线程的系统可能会报告 90% 以上的 wio 时间,而不管它拥有的 CPU 数量。sar(%wio)、vmstat(wa)和 iostat(% iowait)命令报告 wio 时间。
操作系统 AIX 4.3.3 及其更新版本使用的方法如下:如果一个未完成的 I/O 在空闲的 CPU 上启动,则操作系统 AIX 4.3.3 中的更改将只把该 CPU 标记成 wio。当只有少量线程在进行 I/O 而系统其它部分是空闲的,此方法能报告低得多的 wio 时间。例如,一个有四个 CPU 和一个正在进行 I/O 的线程的系统将报告最多 25% 的 wio 时间。有 12 个 CPU 和一个正在进行 I/O 的线程的系统只报告最大为 8% 的 wio 时间。NFS 客户机通过 VMM 读取/写入,biods 在 VMM 中花费的等待 I/O 完成的时间现在报告为 I/O 等待时间。
1.1.2 vmstat 命令报告输出及其解析
# vmstat 1 3
System configuration: lcpu=8 mem=32000MB
kthr memory page faults cpu
----- ----------- ------------------------ ------------ -----------
r b avm fre re pi po fr sr cy in sy cs us sy id wa
2 0 3845546 16248 0 1 0 0 0 0 1299 25203 5285 40 3 57 0
1 0 3845572 16220 0 0 0 0 0 0 966 15702 4526 25 2 73 0
0 0 3845631 16159 0 0 0 0 0 0 1199 18302 4975 31 2 66 1
#
1.1.2.1 Kthr: kernel thread state(内核线程状态,表示每秒钟在采样间隔时间上对各种队列的内核线程数求得的平均值)
r: 取样期间可运行的内核线程的平均数,包括正在运行的线程和指准备运行但尚在等待运行的进程。如果这个数字大于CPU的数据,至少有一个线程要等待CPU,等待CPU的线程越多,越有可能产生性能影响
b:表示每秒VMM等待队列中的内核线程平均数(等待资源或I/O),这里参考值为2,大于2表示被阻塞列线程数目太多。
1.1.2.2 Memory(包括虚拟内存和实际内存的信息)
avm: 活动的虚拟页面(Active virtual pages,以4k为单位),该值较高并不意味着性能不好。记住,虚拟内存的概念是提供给我们寻址大于实内存容量的能力(一些在 RAM 内存中,而另一些在调页空间中)。但是如果虚拟内存远大于实内存,可能造成过度的页面调度,从而导致延时。如果 avm 小于 RAM,那么当 RAM 中填满文件页时就会引起调页空间的页面调度。这种情况下,调整 minperm、maxperm 和 maxclient 的值可以减少调页空间的页面调度量。
fre: 自由表(free list)的大小。真实内存的大部分被用作文件系统数据的缓存。因此,自由表(free list)的大小保持比较小并不稀奇。
1.1.2.3 Page:页面错误和分页活动的信息。此值为指定时间周期内每秒给定单位的平均值。
re 页面调度程序(Pager)输入输出列表(input/output)列表。
pi 表示每秒钟从Paging Space置换到内存的页数,调页空间是驻留在磁盘上的虚拟内存的一部分。当内存过量使用时,它用作溢出。调页空间由用于存储从实内存中窃取到的工作组页面的逻辑卷组成。当进程访问一个窃取页时,产生了一个缺页故障,这一页必须从调页空间读入内存。这里设置pi的参考值为5,大于5说明内存不足。
po 表示每秒钟从内存置换到Paging Space的页数,无论什么时候窃取工作存储器的一页,如果它仍未驻留在调页空间中或已被修改,那它会被写入调页空间。如果不被再次访问,它会留在页面调度设备中直到进程终止或放弃空间。如果包含在出故障页面中的后续地址引用导致缺页故障,那么这些页面将会由系统个别调进。当一个进程正常终止,任何分配给该进程的调页空间将被释放。 [如果这两列持续大于5,则系统的性能瓶颈很可能是内存不足,而导致交换频繁。]
fr 表示每秒钟页面置换算法释放的页数。当 VMM 页面替换例程扫描页面帧表(Page Frame. Table,PFT)时,它使用一些条件选取要窃取的页面以插入到可用内存帧的空闲列表中。
sr 表示每秒钟页面置换算法检查的页数,页面替换算法在可以窃取足够的页面以满足页面替换线程的需要之前可能不得不扫描许多页面帧。
cy 页面置换算法所使用的时钟周期。即表示每秒页面替换代码扫描了 PFT 多少次。因为插入空闲列表可以不需要完全扫描 PFT,并且因为所有的 vmstat 字段报告为整数,这一字段通常为 0。
1.1.2.4 Faults 故障列:样例时间周期中,每秒陷阱(Trap )和中断率的平均值。
in 设备中断次数 ,iostat命令输出更有参考意义。
sy 系统调用次数 ,通过明确的系统调用,用户进程可以使用资源。这些调用指示内核执行调用线程的操作,并在内核和该进程之间交换数据。因为工作负载和应用程序变化很大,不同的调用执行不同的功能,所以不可能定义每秒钟有多少系统调用才算太多。这里设置参考值为10000,超过10000,用户需要注意。
cs 内核线程上下文交换 Kernel thread context switches.[即时间片用完后,再轮到时的上下文计算,如果太高,则要仔细观察]
1.1.2.5 CPU:CPU 使用时间百分比细目分类
us 用户进程CPU占用,一个 UNIX 进程可以在用户方式下执行,也可以在系统(内核)方式下执行。当在用户方式下时,进程在它自己的应用程序代码中执行,不需要内核资源来进行计算、管理内存或设置变量。
sy 系统进程CPU占用 ,这包括内核进程(kprocs)和其它需要访问内核资源的进程所消耗的 CPU 资源。如果一个进程需要内核资源,它必须执行一个系统调用,并由此切换到系统方式从而使该资源可用。例如,对一个文件的读或写操作需要内核资源来打开文件、寻找特定的位置,以及读或写数据,除非使用内存映射文件。这里us + sy的参考值为80%,如果us+sy 大于 80%说明可能存在CPU不足。
id 系统空闲 CPU idle time
wa 表示IO等待时间,即系统等待未完成的 disk/NFS I/O 请求期间的CPU 空闲时间,
如果us与sy之和持续超过90%时,CPU出现了瓶颈。
如果wa长期很高>50,则表示IO太忙,具体看是应用IO多,还是交换分页多,如果是后者,则显示内存不足;如果是前者,则应关注应用的IO性能状况,优化应用与磁盘设备
pc 消耗物理处理器的数目。只在使用共享处理器运行的分区显示(只在微分区环境中显示)
ec 消耗授权容量的百分比。只在使用共享处理器运行的分区显示(只在微分区环境中显示)
1.2 Aix sar命令解析
1.2.1 概述
sar 命令收集、报告、或保存系统活动信息。
sar 命令默认的报告(CPU 使用报告)可能是系统管理员进行系统活动调查必须使用的第一工具,因为它监控着主要的系统资源。
可使用标记选择特定系统活动的信息。不指定任何标记只选择系统单元的活动,指定 -A 标记选择所有的活动。Sar 命令在开始输出统计数据之前,会先输出当前活动的 CPU 和磁盘数目。
1.2.2 命令报告输出及其解析
1.2.2.1 查看CPU 情况
# sar 2 10
AIX Db01 3 5 0001CCCDD600 12/07/07
System configuration: lcpu=8 mode=Capped
10:55:37 %usr %sys %wio %idle physc
10:55:39 86 4 0 11 4.00
10:55:41 78 4 1 17 4.00
%idle CPU空闲时间的百分比
%sys CPU使用时间投入到核心进程的百分比
%usr CPU使用时间投入到用户进程的百分比
physc 消耗物理处理器的数目,只在共享处理器或启用同时多线程的分区上报告
%entc 消耗分配容量的百分比。只在共享处理器的分区上报告
1.2.2.2 查看IO情况
sar -d 10 2
12:11:16 device %busy avque r+w/s blks/s avwait avserv
12:11:26 hdisk0 34 1.0 50 201 0.0 0.0
hdisk1 41 0.0 64 259 0.0 0.0
其中
%busy 对应的 % tm_act
avque 表示等待IO对列数,其值很高则预示着磁盘有较大瓶颈
r+w/s 对应tps,blks/s是按 0.5Kbytes/s 计算的传输速度
sar -d 最大好处是可以对较长时间的值会有一个总体平均值
注意:如果没有请求其他特定内容的选项,sar 命令报告系统单元的活动。如果使用 -P 标记,并且分区使用共享处理器运行,并且如果分配了分区的使用容量,那么,命令则报告带 cpuid U 的 CPU 行,显示全系统(system-wide)未使用的容量。
如果分区使用 uncapped 模式的共享处理器运行,那么,%entc 将报告每个 CPU 行 granted entitled capacity 的百分比,和全系统 CPU 行中 allocated entitled capacity 百分比。
1.2.2.3 查看进程队列情况
# sar -q 2 4
AIX Db01 3 5 0001CCCDD600 12/07/07
System configuration: lcpu=8 mode=Capped
11:00:03 runq-sz %runocc swpq-sz %swpocc
11:00:05 19.0 100 1.0 50
11:00:07 7.0 100
11:00:09 3.0 100
11:00:11 4.0 100
命令#sar -q 报告队列统计信息。输出:
runq-sz = 运行队列的平均长度。(运行队列的平均长度就是等待在队列中的进程数目)
%runocc = 运行队列被占用的时间百分比。
swap-sz = 等待被内存页交换的进程的平均数目。
%swapocc = 内存页交换队列被占用的时间百分比。
1.2.2.4 其它情况
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sar可以针对SMP系统来分别查看CPU使用情况
#sar -P ALL 3 2
AIX testhost 1 5 0050C33A4C00 06/28/05
17:30:02 cpu %usr %sys %wio %idle
17:30:05 0 38 4 43 15
32 3 49 16
51 3 44 2
53 3 42 2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/154324/viewspace-545685/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/154324/viewspace-545685/