性能测试之操作系统计数器分析方法
内存分析方法:
内存分析用于判断系统有无遇到内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。内存分析需要使用计数器:Memory & Physical Disk类别的计数器,以下是内存分析的主要方法和步骤
1>.查看Memory\Available Mbytes指标,该计数器是描述系统可用内存的直接指标,在对系统进行操作系统级别的内存分析时,首先通过该指标建立一个初步的印象,了解性能测试过程中系统是否仍然有足够的内存可用,如果该指标的数据比较小,系统可能出现了内存方面的问题,这时需要继续依据以下步骤进行进一步的分析
2>.注意Pages/sec、Pages Read/sec 和 Page Faults/sec的值。操作系统经常会利用磁盘交换的方式提高系统可用的内存量或内存的使用效率。Windows和Unix操作系统都提供了类似的方法来支持磁盘交换计数,而这三个指标直接反应了操作系统进行磁盘交换的频度
Pages/sec的计数持续高于几百?很可能会有内存方面的问题产生,但Pages/sec的值很大不一定表明内存有问题,而可能是运行使用内存映射文件的程序所致
Page Faults/sec值表示每秒发生页面失效的次数,页面失效次数越多,说明操作系统向内存中读取的次数越多,此时还需要查看Pages Read/sec的计数值,该阀值为5,如果超过5,则可判断存在内存方面的问题。
3>.根据Physical Disk计数器的值分析性能瓶颈,对Physical Disk计数器的分析包括对Page Reads/sec 和%DiskTime 及Average Disk Queue Length的分析。如果Pages Read/sec很低,同时%Disk Time 和Average Disk Queue Length的值很高,则可能有磁盘瓶颈。但是,如果队列长度增加的同时Pages Read/sec并未降低,则是由于内存不足。
处理器分析方法
1>.查看System\%Total Processor Time性能计数器的计数值。该计数值用于体现服务器整体的处理器利用率,对多处理器系统而言,该计数值体现的是所有CPU的平均利用率。如果该值的数值持续超过90%,则可以说明整个系统面临处理器方面的瓶颈,需要通过增加处理器来提高性能
2>.查看每个CPU的Processer\%Processor Time和Processor\%User Time 和 Processor\%Privileged Time
Processor\%User Time 是指系统的非核心操作消耗的CPU的时间,如果该值较大,可以考虑是否能通过算法优化等方法降低该值。如果服务器是数据库,Processor\%User Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
3>.研究系统处理器瓶颈,查看System\Processor Queue Length计数器的值,当该计数器的值大于CPU数量的总数1时,说明产生了处理器阻塞。在处理器的%Process Time值很高时一般都伴随着处理器阻塞,但产生处理器阻塞时,Processor\%Process Time计数器的值并不一定很大,此时就是必须查看处理阻塞的原因。
%DPC Time是另一个需要关注的内容,该计数值越低越好。在多处理器系统中,如果该值大于50%并且Processor\%Processor Time值非常高,则考虑加入一个网卡来提高性能。
磁盘I/O分析方法
1>.计算每磁盘的I/O数。每磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。
2>.与Processor\Privileged Time合并进行分析。如果在Physical Disk计数器中,只有%Disk Time值较大,其他值都比较适中,则硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80%,则可能是内存泄露。
3>.根据Disk sec/Transfer进行分析。一般来说,定义Transfer数值小于15毫秒为优秀,介于15~30毫秒之间为良好,30~60毫秒之间为可接受,超过60毫秒则需要考虑更换硬盘货硬盘的RAID方式
进程分析方法
1>.查看进程的%Processor Time值,每个进程%Processor Time值反映出进程所消耗的处理时间。将不同进程所消耗的处理器时间进行对比,可以容易地看出具体哪个进程在性能测试过程中消耗了最多的处理器时间,从而可以据此针对应用进行优化
2>.查看每个进程产生的页面失效
3>.了解进程的Process\Private Bytes
网络分析方法
Network Interface\Bytes Total/sec为发送和接收字节的速率,可以通过该计数器的值判断网络连接速度是否是瓶颈,具体操作方式是用该计数器的值和目前网络的带宽进行比较。