loadrunner进阶——学习六、分析及监视场景

来源:互联网 发布:中国gpa算法 编辑:程序博客网 时间:2024/05/20 04:31

学习六、分析及监视场景

1.Memory相关

内存是第一个监视对象,确定系统瓶颈的第一个步骤就是排除内存问题。

对象 计数器名称 描述 参考值 Memory Available MBytes 物理内存的可用数(单位Mbytes)。 至少要有10%的物理内存值 Memory Page/sec
Page Faults/sec
Pages Input/sec
Page Reads/sec
Transition
Faults/sec 当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个Page Fault。如果该页在内存的其他位置, 该错误被称为软错误( 用 Transition Fault/sec 计数器衡量);如果该页必须从硬盘上重新读取时, 被称为硬错误。许多处理器可以在有大量软错误的情况下继操作。 但是, 硬错误可以导致明显的拖延。
Page Faults/sec是处理器每秒钟处理的错误页(包括软错误和硬错误)。Pages Input/sec 是为解决硬错误页,从硬盘上读取的页数,而 Page Reads/sec是为了解决硬错误, 从硬盘读取的次数。如果 Page Reads/Sec 比率持续保持为5,表示可能内存不足。Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数。 Page/sec 推荐00-20(如果服务器没有足够的内存处理其工作负荷,此数值将一直很高。如果大于80,表示有问题)。这些计数器的值比较低,说明Web服务器响应请求比较,则可能是服务器系统内存短缺引起(也可能是缓存太大,导致系统内存太少)。
PageInput/sec的值可以衡量出硬错误页发生的速率,通常它的值会大于或者等于PageReads/sec Memory Cache Bytes 文件系统缓存(File System Cache),默认情况下为50%的可用物理内存。需关注该计数器的趋势变化 默认情况下为50%的可用物理内存 Memory Pool Paged Bytes
Pool Nonpaged Bytes 这两个计数器监视服务器上各个进程的分页池字节数和非分页池字节数。 在访问数比较固定的情况下,Pool Nonpaged Bytes是比较固定的,如果访问数逐步增加,该值会缓慢增加 Process Private Bytes 指这个处理不能与其他处理共享的、已分配的当前字节数。 Memory Committed Bytes 指以字节表示的确认虚拟内存。(确认内存是指磁盘分页文件在磁盘上保留的空间以便在需要将其写回磁盘时使用)。 推荐不超过物理内存的75%

内存问题主要检查应用程序是否存在内存泄漏。如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working Set计数器的值往往会升高,同时Available Bytes的值会降低。

内存泄漏应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况的测试来检验。

2.Processor相关

对象 计数器名称 描述 参考值 System Processor Queue Length 指处理列队中的线程数。即使在有多个处理器的计算机上处理器时间也会有一个单列队。不像磁盘计数器,这个计数器仅计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程,通常表示处理器堵塞。 小于2。显示在由Web服务器所有处理器共享的队列中等待执行的线程数。处理器瓶颈会导致该值持续大于2。 Processor % Processor Time CPU使用率。这是查看处理器饱和状况的最佳计数器。显示所有CPU的线程处理时间。如果一个或多个处理器的该数值持续超过90%。则表示此测试的负载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的0到x个实例。 小于75%。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以确定CPU瓶颈 System Context Switches/sec 指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread:Context Switches/sec的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器。 如果切换次数到5000xCPU个数和10000xCPU个数中,说明它忙于切换线程而不是处理ASP脚本。 Processor % Privileged Time 是在特权模式下处理线程执行代码所花时间的百分比。当调用Windows系统服务时,此服务经常在特权服务运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。 Thread Context Switches/sec (实例化inetinfo和dllhost进程) 如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。增加线程数可能会增加上下文切换次数,这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小。 Processor Interrupts/sec
%DPC Time 这两个计数器能够反映处理器用在处理中断以及推迟处理调用的时间。
Interrupts/sec指处理器每秒接收并维护的硬件中断的平均值。正常的线程操作在中断时悬停。大多数的系统时钟每隔10毫秒中断处理器一次,形成了间隔活动的后台。 如果处理器使用率超过90%且Interrupt Time大于15%,则处理器可能负荷过重,并且发生中断。

判断应用程序是否存在处理器瓶颈的方法:如果Processor Queue Length显示的队列长度保持不变(>=2)个并且处理器的利用率%Processor Time超过90%,那么很有可能存在处理器瓶颈。

如果发现Processor Queue Length显示的队列长度超过2,而处理器的利用率却一直很低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。

如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context Switches/sec显示的上下文切换次数比较大),那么就会占用大量的系统资源。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高。

同时还可以比较Context Switches/sec和%Privileged Time来判断上下文切换是否过量。如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样高的上下文切换。

3.网络吞吐量以及带宽

对象 计数器名称 描述 参考值 Network Interface Bytes Total/sec 发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较 该计数器的值和目前网络的带宽相除,结果应该小于50% Web Service Maximum Connections
Total Connection Attempts Maximum Connections:“最大连接数”是和Web服务同时建立起的最大连接数。
Total Connection Attempts:“连接尝试总数”是从服务启动时利用Web服务尝试连接的总数。该计数器应用于全部所列的实例。

4.磁盘相关

对象 计数器名称 描述 参考值 Network Interface Bytes Total/sec 发送和接收字节的速率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较 Processor %Processor Time
%Privileged Time CPU使用率
该计数器对应于处理器执行Windows 2000内核命令(如处理SQL Server I/O请求)所用的时间的百分比。如果Physical Disk计数器的值很高时该计数器的值也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。 PhysicalDisk %Disk Time 指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那么硬盘不是瓶颈。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请在Windows 2000的命令窗口中运行diskperf -yD。若数值持续超过80%,则可能是内存泄漏。 PhysicalDisk Average Disk Queue Length 指读取和写入请求(为所选磁盘在实例中间隔中队列的)平均数。 PhysicalDisk Average Disk Read Queue Length 指读取请求(为所选磁盘在实例中间隔中队列的)平均数。 PhysicalDisk Average Disk Write Queue Length 指写入请求(为所选磁盘在实例中间隔中队列的)平均数。 PhysicalDisk Average Disk sec/Read 指以秒计算的在此盘上读取数据的所需平均时间。 PhysicalDisk Average Disk sec/Transfer 指以秒计算的在此盘上写入数据的所需平均时间。 PhysicalDisk Disk Reads/sec 指在此盘上读取操作的速率 PhysicalDisk Disk Writes/sec 指在此盘上写入操作的速率

判断磁盘瓶颈的方法是通过以下公式来计算:

每磁盘的 I/O 数 = [读次数 + ( 4 * 写次数) ] / 磁盘个数

如果计算出的每磁盘的 I/O 数 大于 磁盘的处理能力, 那么磁盘存在瓶颈。

5.Network Delay

如果要监视的两台计算机在同一个局域网络内, 建议不要使用 Network Delay Monitor。因为在同一局域网内, Network Delay 会非常的小, 网络监视器会有足够的时间在每秒钟内发送成百上千的请求, 这样会导致源计算机( source machine) 的 CPU 和内存超负荷工作。

默认情况下“ Enable display of network nodes by DNS names” 选择是没有选中的, 因为选中它会明显的降低该监视器的速度。

6.分析实时监视图表

几个重要的图表:

Q1 事务响应时间是否在可接受的时间内?哪个事务用的时间最长?

看 Transaction Response Time 图, 可以判断每个事务完成用的时间, 从而可以判断出那个事务用的时间最长, 那些事务用的时间超出预定的可接受时间。

Q2 网络带宽是否足够?

“ Throughput” 图显示在场景运行期间的每一秒钟, 从 Web Server 上接受到的数据量的值。拿这个值和网络带宽比较, 可以确定目前的网络带宽是否是瓶颈。

如果该图的曲线随着用户数的增加, 没有随着增加, 而是呈比较平的直线, 说明目前的网络速度不能够满足目前的系统流量。

Q3 硬件和操作系统能否处理高负载?

“ Windows Resources” 图实时地显示了 Web Server 系统资源的使用情况。 利用该图提供的数据, 可以把瓶颈定位到特定机器的某个部件。

0 0