性能测试工具LoadRunner32-LR之windows性能监控Perfmon
Perfmon是啥?
Perfmon提供了图表化的系统性能实时监视器、性能日志和警报管理,可以用于监视CPU使用率、内存使用率、硬盘读写速度、网络速度等
性能分析方法
内存分析方法
内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。
主要方法和步骤:
1.首先查看Memory:%Committed Bytes in Use指标
如果该指标比例比较大,系统可能出现了内存方面的问题,需要继续下面步骤进一步分析。另外也可以查看Available Bytes,如果该值小说明可用内存不足,存在性能瓶颈。
2.注意Pages/sec、Pages Read/sec和Page Faults/sec的值
操作系统会利用磁盘较好的方式提高系统可用内存量或者提高内存的使用效率。这三个指标直接反应了操作系统进行磁盘交换的频度。
Pages/sec值持续高于几百,可能有内存问题。Pages/sec值不一定大就表明有内存问题,可能是运行使用内存映射文件的程序所致。
Page Faults/sec说明每秒发生页面失效次数,页面失效次数越多,说明操作系统向内存读取的次数越多。此时需要查看Page Read/sec的计数值,该计数器的阀值为5,如果计数值超过5,则可以判断存在内存方面的问题。
处理器分析方法
1.首先看System:%Total Processor Time性能计数器的计数值
该计数器的值提现服务器整体处理器利用率,对多处理器的系统而言,该计数器提醒所有CPU的平均利用率。如果该值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,需要通过增加处理器来提高性能。
2.其次查看每个CPU的%User Time
%User Time是系统非核心操作消耗的CPU时间,如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。如果该服务器是数据库服务器,%User Time值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。
3.研究系统处理器瓶颈
查看System:Processor Queue Length计数器的值,当该计数器的值大于CPU数量的总数+1时,说明产生了处理器阻塞。在处理器的%Process Time很高时,一般都随处理器阻塞,但产生处理器阻塞时,Processor:%Processor Time计数器的值并不一定很大,此时就必须查找处理器阻塞的原因。
磁盘I/O分析方法
1.计算每磁盘的I/O数
每磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。
网络分析法
Network Interface:Bytes Total/sec为发送和接收字节的速率,可以通过该计数器值来判断网络链接速度是否是瓶颈,具体操作方法是用该计数器的值和目前网络的带宽进行比较。
常用性能监控指标
Perfmon性能监控对象总共有上百个性能指标。对于一个Windows操作系统来说,CPU、Memmery、Disk和Network等关键对象是性能监控中必不可少的项。
常用的性能对象与指标(红色优先重点关注) | ||
性能对象 | 计数器 | 提供的信息 |
Processor | %Idle Time | %Idle Time是处理器在采样期间空闲的时间的百分比 |
%Processor Time | %Processor Time指处理器用来执行非闲置线程时间的百分比。(即CPU占用率)该计数器是处理器活动的主要说明器 | |
%User Time | %User Time指处理器处于用户模式的时间百分比。用户模式是为应用程序、环境分系统和整数分系统设计的有限处理模式。 | |
Memory | Available Bytes | Available Bytes显示出当前空闲的物理内存总量。当这个数值变小时,Windows开始频繁的调用磁盘页面文件。如果这个数值很小时,例如小于5MB,系统会将大部分时间消耗在操作页面文件上。 |
%Committed Bytes in Use | %Committed Bytes in Use是Committed Bytes与Commit Limit之间的比值。即内存使用百分比 | |
Page Faults/sec | Page Faults/sec是指处理器处理错误页的综合速率,用错误页数/秒来计算。当处理器请求一个不在其工作集(在物理内存中的空间)内的代码或数据时出现的页错误。这个计数器包括硬错误(那些需要磁盘访问的)和软错误(在物理内存的其它地方找到的错误页)。许多处理器可以在有大量软错误的情况下继续操作。但是,硬错误可以导致明显的拖延。这个计数器显示用上两个实例中观察到的值之间的差除以实例间隔的持续时间所得的值。 | |
Network Interface | Bytes Total/sec | Bytes Total/sec是发送和接收字节的速率,包括帧字符在内 |
Packets/sec | Packets/sec为发送和接收数据包的速率 | |
Physical Disk | %Busy Time | %Busy Time指磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果只有%Disk Time比较大,硬盘有可能是瓶颈。 |
Avg. Disk Queue Length | Avg. Disk Queue Length指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数 | |
Current Disk Queue Length | Current Disk Queue Length指在收集操作数据时在磁盘上未完成的请求的数目。它包括在快照内存时正在为其提供服务中的请求。这是一个即时长度而非一定间隔时间的平均值。多主轴磁盘设备可以一次有多个请求操作,但是其它同时发生的请求为等候服务。这个计数器可能会反映一个暂时的高或低的队列长度,但是如果在磁盘驱动器存在持续负载,可能值会总是很高。请求等待时间与这个队列的长度减去磁盘上的主轴成正比。这个差值应小于2才能保持良好的性能。 |