Unix/Liux操作系统的主要计数器
unix与linux 操作系统的命令稍微有些差别:
unix系统的主要计数器监控命令vmstat、iostat、top、sar和sag
linux中vmstat命令,没有iostat
1、内存分析
1)查看Memory\Available Mbytes指标。
这个计数器是描述系统可用内存的直接指标,在对系统进行操作系统级别的内存分析时,首先通过这个指标建立一个初步的印象,了解性能测试过程中系统是否仍然有足够的内存可用。
如果这个指标的数据比较小,系统可能出现了内存方面的问题。
在unix/linux系统中,对应的指标是Free
2)Pages/sec 、 Pages Read/sec 和Page Faults/sec指标
操作系统经常会利用磁盘交换的方式提高系统可用的内存量或内存的使用效率。这三个指标直接反映了操作系统进行磁盘交换的频度。
如果Pages/sec 的计数器持续高于几百,很可能会有内存方面的问题产生,但Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所导致。Page Faults/sec 值表示每秒发生页面失效的次数,页面失效次数越多,说明操作系统向内存读取的次数越多。些时还需要查看Pages Read/sec 的计数值,该计数器的阀值为5,如果计数值超过5,则可以判断内存存在问题。
对应的指标是(page)si 和 (page) so
3)根据Physical Disk计数器的值分析性能瓶颈
Physical Disk 计数器的分析包括对Pages Read/sec和 %Disk Time及Average Disk Queue Length 的分析。如果Pages Read/sec 很低,同时%Disk Time和Average Disk Queue Length 的值很高,则可能有磁盘瓶颈。但是,如果队列长度增加的同时 Page Read/sec 并未降低,则是由于内存不足。
对应指标是Read是(Writes)per sec、percent of time the disk is busy 和Average number of transactions waiting for service
2、处理器分析方法
1)查看System\%Total Processor Time性能计数器的计数值
此值体现服务器整体的处理器利用率。对多处理系统而言,体现的是所有CPU的平均利用率。如果该值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,可以增加处理器来提高性能。在某些多CPU系统中,该数据本身并不大,但是CPU之间的负载状态很不均衡,也可以视为系统产生了处理器方面的瓶颈。
2)查看每个CPU的Processor\%Processor Time、Processor\%User Time和Processor\%Privileged Time
如果Processor\%User Time值较大,可以考虑是否能通过算法优化等方法优化该值,如果服务器是数据库,Processor\%User Time值打的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
3)研究系统处理器瓶颈
查看System\Processor Queue Length计数器的值,当大于CPU总量+1时,说明产生了处理器堵塞,在处理器的%Process Time值很高时一般都伴随着处理器堵塞。反之则不然,此时必须查找处理器堵塞的原因。
%DPC Time是另一个需要关注的,该计数值越低越好。在多处理器系统中,如果该值大于50%且Processor\%Processor Time值比较高,则考虑加一个网卡来提高性能。
3、磁盘I/O分析方法
1)计算每磁盘的I/O数
每磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘的I/O数超过了磁盘标称的I/O能力,则说明确定存在磁盘的性能瓶颈。
每磁盘的I/O的计算方法 | |
Raid类型 | 计算方法 |
Raid0 | (Reads+Writes)/Number of Disks |
Raid1 | (Read+2*Writes)/2 |
Raid5 | (Read+4*Writes)/Number of Disks |
Raid10 | (Read+2*Writes)/Number of Disks |
2)与Processor\Privileged Time组合进行分析
如果在Physical Disk计数器中,只有%Disk Time值较大,其他值适中,则硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80%,则可能是内存泄露。
3)根据Disk sec/Transfer进行分析
一般来说,定义Transfer数值小于15ms为优秀,15~30ms之间为良好,30~60ms之间可以接受,超过60ms则需要考虑更换硬盘或者硬盘的Raid方式了。
4、进程分析方法
1)查看进程的%Processor Time值
该值反映进程消耗的处理器时间。不同进程进行对比,可以轻易看出具体哪个进程在测试过程中消耗了最多的处理器时间,从而据此针对应用进行优化。
2)查看每个进程产生的页面失效
Process\Page Failures/sec与Memory\Page Failures/sec的比值,判断哪个进程产生了最多的页面失效,该进程要么是需要大量内存的进程,要么是非常活跃的进程,可以对其进行重点分析。
3)了解进程的Process\Private Bytes
该值指进程所分配的无法与其他进程共享的当前字节数量,主要用来判断进程在性能测试过程中有无内存泄露。例如一个在IIS上的Web应用,如果测试过程中,进程的Private Bytes计数值不断增加或是测试停止一段时间后,该值仍然持续在高水平,则说明应用存在内存泄露。
PS:在Unix/Linux系统中,对应的指标是Resident Size。
5、网络分析方法
一般的公司都有专门的网络管理人员,网络分析是门技术活,此处仅描述Network Interface\Bytes Total/sec的值。Network Interface\Bytes Total/sec为发送和接收字节的速率(包括帧字符),可以通过该计数器的值和目前网络的带宽进行比较来判断网络连接速度是否是瓶颈。
PS:在Unix/Linux系统中,可以参照Unix/Linux系统提供的snmp服务接口进行网络分析。