LoadRunner监视的性能计数器
LoadRunner监视的性能计数器
Memory(内存)
内存使用情况可能是系统性能中最重要的因素。如果系统"页交换"频繁,说明内存不足。"页交换"是使用称为"页面"的单位,将固定大小的代码和数据块从 RAM 移动到磁盘的过程,其目的是为了释放内存空间。尽管某些页交换使 Windows 2000 能够使用比实际更多的内存,也是可以接受的,但频繁的页交换将降低系统性能。减少页交换将显著提高系统响应速度。要监视内存不足的状况,请从以下的对象计数器开始:
Available Mbytes:
可用物理内存数. 如果Available Mbytes的值很小(4 MB 或更小),则说明计算机上总的内存可能不足,或某程序没有释放内存。
Page/sec:
表明由于硬件页面错误而从磁盘取出的页面数,或由于页面错误而写入磁盘以释放工作集空间的页面数。一般如果pages/sec持续高于几百,那么您应该进一步研究页交换活动。有可能需要增加内存,以减少换页的需求(你可以把这个数字乘以4k就得到由此引起的硬盘数据流量)。正常值<100,过大表示太多的读写数据操作要访问磁盘,可考虑增加内存或优化读写数据的算法。
Page Read/sec:
页的硬故障,page/sec的子集,为了解析对内存的引用,必须读取页文件的次数。阈值为>5. 越低越好。大数值表示磁盘读而不是缓存读。
由于过多的页交换要使用大量的硬盘空间,因此有可能将导致将页交换内存不足与导致页交换的磁盘瓶径混淆。因此,在研究内存不足不太明显的页交换的原因时,您必须跟踪如下的磁盘使用情况计数器和内存计数器:
Physical Disk\ % Disk Time 、Physical Disk\ Avg.Disk Queue Length 例如,包括 Page Reads/sec 和 % Disk Time 及 Avg.Disk Queue Length。如果页面读取操作速率很低,同时 % Disk Time 和 Avg.Disk Queue Length的值很高,则可能有磁盘瓶径。但是,如果队列长度增加的同时页面读取速率并未降低,则内存不足。
要确定过多的页交换对磁盘活动的影响,请将 Physical Disk\ Avg.Disk sec/Transfer 和 Memory\ Pages/sec 计数器的值增大数倍。如果这些计数器的计数结果超过了 0.1,那么页交换将花费百分之十以上的磁盘访问时间。如果长时间发生这种情况,那么您可能需要更多的内存。
Page Faults/sec:
每秒软性页面失效的数目(包括有些可以直接在内存中满足而有些需要从硬盘读取)较page/sec只表明数据不能在内存的指定工作集中立即使用。
Cache Bytes:
文件系统缓存(File System Cache),默认情况下为50%的可用物理内存。如IIS5.0 运行内存不够时,它会自动整理缓存。
----需要关注该计数器的趋势变化
如果您怀疑有内存泄露,请监视 Memory\ Available Bytes 和 Memory\ Committed Bytes,以观察内存行为,并监视您认为可能在泄露内存的进程的 Process\Private Bytes、Process\Working Set 和Process\Handle Count。
如果您怀疑是内核模式进程导致了泄露,则还应该监视 Memory\Pool Nonpaged Bytes、Memory\ Pool Nonpaged Allocs 和 Process(process_name)\ Pool Nonpaged Bytes。
Pages per second :
每秒钟检索的页数。该数字应少于每秒一页。
Process(进程)
%Processor Time:
指这个线程使用处理器执行指令的所用时间的百分比。如果服务器专用于sql server,可接受的最大上限是80-85%。
% Privileged Time:
指这台处理器的线程用于执行在特权模式中的代码所经过时间的百分比。类似于Processor的% Privileged Time。
% User Time:
指这台处理的线程用于执行使用用户模式的代码的时间的百分比。类似于Processor的% User Time。
Page Faults/sec:
将进程产生的页故障与系统产生的相比较,以判断这个进程对系统页故障产生的影响。
Work set:
处理线程最近使用的内存页,反映了每一个进程使用的内存页的数量。如果服务器有足够的空闲内存,页就会被留在工作集中,当自由内存少于一个特定的阈值时,页就会被清除出工作集。
Inetinfo:Private Bytes:
指处理使用的虚拟地址空间的以字节数显示的当前大小。使用虚拟地址空间不一定是指对磁盘或主内存页的相应的使用。虚拟空间是有限,如果使用过多,可能会限制处理加载数据库的能力。如果系统性能随着时间而降低,则此计数器可以是内存泄漏的最佳指示器。
IO Data Bytes/sec:
处理从I/O操作读取/写入字节的速度。这个计数器为所有由本处理产生的包括文件、网络和设备I/O的活动计数。
Processor(处理器)
Processor Queue Length:
是指处理列队中的线程数。计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有2个以上的线程通常表示处理器堵塞。警戒值:小于2。显示在由 Web服务器所有处理器共享的队列中等待执行的线程数。处理器瓶颈会导致该值持续大于 2。
%Processor Time:
指处理器执行非闲置线程时间的百分比。这个计数器设计成用来作为处理器活动的主要指示器。它通过在每个范例间隔中衡量处理器用于执行闲置处理线程的时间,并且用100%减去该值得出。(每台处理器有一个闲置线程,该线程在没有其它线程可以运行时消耗周期)。可将其视为范例间隔用于做有用工作的百分比。这个计数器显示在范例间隔时所看到的忙时平均值。这个值是用100%减去该服务不活动的时间计算出来的。
正常值<90,此值过大表示处理器的性能已经不能应付程序的要求,可以考虑增加一个处理器或换一个更快的处理器,如果该值持续超过95%,表明瓶颈是CPU。警戒值小于75%。(% Processor Time = % Privileged Time + % User Time)
%User Time:
表示耗费CPU的数据库操作,如排序,执行aggregate functions等。此值过大表示应用程序本身用于计算消耗的时间太多,应着重从优化算法来考虑优化性能,可考虑增加索引,尽量使用简单的表联接,水平分割大表格等方法来降低该值。
%Privileged Time:
(CPU内核时间)是在特权模式下处理线程执行代码所花时间的百分比。此值过大表示硬件处理消耗的时间太多,应着重从硬件操作(例如文件访问、打印等)的多少,以及硬件驱动程序来考虑优化性能。如果该参数值和"Physical Disk"参数值一直很高,表明I/O有问题。可考虑更换更快的硬盘系统。另外设置Tempdb in RAM,减低"max async IO","max lazy writer IO"等措施都会降低该值。
此外,跟踪计算机的服务器工作队列当前长度的 Server Work Queues\ Queue Length 计数器会显示出处理器瓶颈。队列长度持续大于 4 则表示可能出现处理器拥塞。此计数器是特定时间的值,而不是一段时间的平均值。
% DPC Time:
越低越好。在多处理器系统中,如果这个值大于50%并且Processor:% Processor Time非常高,加入一个网卡可能会提高性能,提供的网络已经不饱和。
ContextSwitches/sec:
(实例化inetinfo 和dllhost 进程) 如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。增加线程数可能会增加上下文切换次数,这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小。
Physical Disk(物理磁盘)
%Disk Time %:
指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。正常值<10,此值过大表示耗费太多时间来访问磁盘,可考虑增加内存、更换更快的硬盘、优化读写数据的算法。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在Windows 2000 的命令行窗口中运行diskperf -yD。若数值持续超过80%,则可能是内存泄漏。
Avg.Disk Queue Length:
指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。正常值<0.5,此值过大表示磁盘IO太慢,要更换更快的硬盘。该值应不超过磁盘数的1.5~2 倍。要提高性能,可增加磁盘。注意:一个Raid Disk实际有多个磁盘。
Average Disk Read/Write Queue Length:
指读取(写入)请求(列队)的平均数。
Disk Reads(Writes)/s:
物理磁盘上每秒钟磁盘读、写的次数。两者相加,应小于磁盘设备最大容量。
Average Disksec/Read:
指以秒计算的在此盘上读取数据的所需平均时间。
Average Disk sec/Transfer:
指以秒计算的在此盘上写入数据的所需平均时间。
Disk Bytes/sec :
指在进行写入或读取操作时从磁盘上传送或传出的字节速率。
此值取决于硬盘的速度。
Disk Transfers/sec:
指在此盘上读取/写入操作速率。正常值<(Disk Bytes/sec)/3,此值过大表示系统要求的IO速度已接近硬盘的最大速度,要更换更快的硬盘。
Network Interface(网络接口)
Bytes Total/sec :
为发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较。参考值:该计数器的值和目前网络的带宽相除,结果应该小于50%。
System(系统)
%Total Processor Time:
系统上所有处理器都忙于执行非空闲线程的平均时间的百分比,该值反映了用于有用操作上的时间的比率。
File Data Operations/sec:
计算机对文件系统设备执行读取和写入操作的速度。本计数器的技术不包括文件控制操作。
Processor Queue Length:
线程单元中的处理器队列的即时长度。所有处理器都是用单一队列:线程在改队列中等待处理器进行循环。此长度不包括当前正在执行的线程。一般情况下,如果处理器队列的长度一直超过服务器上可用处理器的总数量加1,则可能表示处理器堵塞。