系统性能调整的总体步骤应该是CPU——》MEMORY——》DISK——》NETWORK——》综合测试。
以上几个方面的性能测试可以使用SAR、VMSTAT、IOSTAT、NETSTAT、建立具体测试用例来具体完成,同时,需要对各方面的测试数据加以统一的分析,互相联合,才能确定在几个表面瓶颈的方面究竟是哪个方面为真正的瓶颈之源。
常用测试命令及使用方法
sar(System Activity Report)命令
sar命令是最常用的全面系统性能监控命令,它主要有以下几种使用方法:
sar [ –A|a|b|c|e|f|i|k|m|o|P ALL|q|r|u|v|w|y ] Interval Number
监控系统各个方面的性能参数,并以Interval为间隔,采样Number次,在终端上直接显示出来。
sadc [ Interval Number ][Outfile ]
功能与sar相似,但是将性能数据以二进制的方式输出到Outfile中。可以用sar –f Outfile命令将Outfile中的数据以文本方式显示出来。
sa1 [ Interval Number ]
在crontab中定时执行这个命令,可以起到按照sadc的功能定时将监控数据存储在二进制/var/adm/sa/sadd文件中,其中dd是当日的日期。
sa2
在crontab中定时执行这个命令,可以起到按照sar的功能定时将监控数据存储在二进制/var/adm/sa/sardd文件中,其中dd是当日的日期。
Vmstat 命令
vmstat 命令的主要功能是报告系统内核进程的总体状态、虚拟内存的使用情况(含实际内存使用情况和页面调度的使用情况)、CPU的当前状态以及产生系统调用的情况和系统中断的次数等数据
使用语法(最常用方式)
vmstat Interval Number
各项简单说明
☆ kthr
它反映了进程状态变化的动态信息。
r:在Interval时间间隔中,运行态进程的总个数。
b:在Interval时间间隔中,等待态进程的总个数。
一般而言,每秒运行态进程的总个数N= r/Interval应该满足以下条件:N<( 5 x (Ntotal - Nbind)),其中Ntotal是该系统的CPU总个数,Nbind是该系统以捆绑了进程的CPU个数(可以用bindprocessor命令查看)。如果持续N>=( 5 x (Ntotal - Nbind)),则说明系统的CPU资源较紧张,需要检查总的进程的状况。另外,b的数量应该基本维持在0~1之间,如果持续在2以上,说明进程等待的资源(CPU、DISK、QUEUE、SEMAPHORE等)较紧张,如对系统没有造成不良影响可以不处理,否则要和其他资源检查命令一起查明原因。
☆ memory
它反映了虚拟内存使用情况。
avm: 活动的已分配的页面数,每个页面4KB。当系统未分配的页面数<128时,系统将杀死部分进程,以便释放页面空间。
Fre: 剩余页面数,这个数目必须>(2*系统物理内存MB-8),即MINFREE参数,这个参数可以用vmtune命令调整。
☆ Page
它反映了页面调度的动态信息。
Re: 页面申请数(调入、调出)
Pi: 页面调入数
Po: 页面调出数
Fr: 释放的页面数
Sr: 页面调度算法搜索的页面数
Cy: 页面调度算法使用的时钟周期
如果上述各项数目持续较大,说明系统有可能处于“颠簸”状态。
☆ Faults
它反映了系统软硬件中断的信息。
In: 硬件中断的次数
Sy: 系统调用的次数
Cs: 进程上下文切换的次数
☆ CPU
它反映了CPU的使用状况。
Us: 用户代码使用CPU的百分比。
Sy: 系统代码使用CPU的百分比。
Id: CPU处于空闲的百分比。
Wa: CPU处于等待外设的百分比。
iostat 命令
iostat命令主要功能是检测系统I/O的使用情况。我们都知道,当前应用系统的瓶颈经常出现在I/O部分,一方面是由于I/O设备与MEMORY等相比固有的效率低,但是,另一方面经常是由于我们没有更好的使用配置I/O设备造成的,没有将整个I/O任务平均分配在各个DISK上;人为制造I/O冲突等等。因此,熟练使用该命令对于查找I/O瓶颈是非常重要的。 物理级上,是由裸设备Physical Disk或某个Disk Array Adapter控制的Physical Disks组成的。其具体性能调整超出本文范围,可以忽略。在这一级上,我们可以依靠操作系统或Adapter软件配置RAID0、RAID1、RAID0+1、RAID5等各种RAID DISK ARRAY。在作完这些基本配置之后,体现在我们视野的才是“所谓的”物理盘。我们的IOSTAT命令主要是检查这些“所谓的”物理盘的性能。因此,如果不了解你的机器的具体DISK配置,即便你得到性能数据,你仍有可能无的放矢。在这些“所谓的”物理盘上,我们可以建立Volume Group(VG),在VG中我们可以建立Logical Volume(LV),我们的应用系统可以直接访问LV(如ORACLE DATAFILE、IBM ENCINA SFS SERVER等等);也可以在LV上建立FS(最常用的方法)。
IOSTAT 语法
iostat [-d | -t] [physicalVolume ...] [interval | count]
-d:仅仅显示DISK信息。
-t:仅仅显示TERMINAL信息。
IOSTAT各项简单含义
☆ tin
表示interval内,在系统全部终端读入的字符数。
☆ tout
表示interval内,写向系统全部终端上的字符数。
☆ %user、%sys、%idle、%iowait
参考vmstat。
☆ Disks
“所谓的”物理盘。
☆ %tm_act
表明该DISK的活动率=处于激活的时间/interval。
☆ kbps
表明该DISK在interval中传输的字节数(KB)(含READ和WRITE)。
☆ Kb_read
表明该DISK在interval中READ的字节数(KB)。
☆ Kb_writn
表明该DISK在interval中WRITE的字节数(KB)。
netstat命令
netstat命令主要作用是监控TCP/IP协议端口的IP包发送和接收状况,它可以有多种用法,可以检查端口配置、检查通讯状况等等。常用的用法是:
Netstat –i
其中5项对性能测试有关系:
☆ Ipkts: 输入的包的个数。
☆ Ierrs: 输入的包中错误包的个数。
☆ Opkts: 输出的包的个数。
☆ Oerrs: 输出的包中错误包的个数。
☆ Coll: 产生冲突包的个数。
以上各项的数目需要和Mtu的数目联系起来,Mtu是该端口IP包的长度(单位是字节),同时也要和该端口的网速S为10MBPS/100MBPS有关系,另外也和系统的网卡工作方式W(1:半双工、2:全双工)有关系。即简单的说,某端口的负载程度X=(Ipkts+Opkts)/((S/Mtu)*W)*100%,由此,可以看出系统的网络负载程度。
需要说明的是上述命令每次只执行一次,需要多次重复执行才能连续对端口进行检测。
小结
以上是AIX系统最常用的一点测试方法,应该说系统测试是非常复杂的,必须对系统有全面的熟悉才能更好的对系统进行性能检测,另外,AIX系统还提供了其他非常强大的性能测试命令,在初步确定了系统的性能瓶颈后,可以用测试功能更强的命令对系统进行进一步的测试,以便查明细节。
Trackback: http://tb.donews.net/TrackBack.aspx?PostId=211967