LoadRunner压力测试--windows资源监控计数器
来源:互联网 发布:西安行知教育集团李东 编辑:程序博客网 时间:2024/06/10 13:08
http://blog.csdn.net/wangxianglian/article/details/6940293
分析以及监视场景
在运行过程中,可以监视各个服务器的运行情况(DataBase Server、Web Server等)。
监视场景通过添加性能计数器来实现。这一章非常的重要,确定系统瓶颈全靠它了。
下面重点讲讲需要添加那些计数器,以及那些计数器代表什么意思。由于Win2000 Professional、Server以及Advanced Server提供的计数器不完全相同,这里我们讨论将以Server为基准。监视场景需要在Run视图中设置,然后出现添加计数器的对话框其他的操作就和控制面板“性能”中添加性能计数器的操作一样,这里不再详细说明。本章主要说明一下各个系统计数器的含义(数据库的计数器不做重点,只是拿SQL Server2000作为例子进行说明。因为数据库各个版本之间差异比较大,请参考您使用的数据库系统的帮助)。
相关
内存是第一个监视对象,确定系统瓶颈的第一个步骤就是排除内存问题。内存短缺的问题可能会引起各种各样的问题。
Object(对象)
Counters
Description(描述)
参考值
Memory
Available MBytes
物理内存的可用数(单位 Mbytes)。默认情况下IIS5.0使用50%的可用物理内存,作为IIS的文件缓存(file cache)。IIS基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB左右
至少要有10% 的物理
Memory
Page/sec
Page Faults/sec
Pages Input/sec
Pages Input/sec
Page Reads/sec
Transition
Faults/sec
物理内存的可用数( 单位 Mbytes)。默认情况下IIS5.0使用50%的可用物理内存,作为IIS的文件缓存(file cache)。IIS基本占用 2.5 MB,每个附加连接将在此基础上占用 10 KB左右。至少要有10%的物理内存值当处理器向内存指定的位置请求一页(可能是数据或代码)出现错误时,这就构成一个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服务器响应请求比较快,否则可能是服务器系统内存短缺引起(也可能是缓存太大,导致系统内存太少)。Page Input/sec的值可以衡量出硬错误页发生的速率,通常它的值会于或者等于Page Reads/sec。Memory Cache Bytes
Memory
Cache Bytes
文件系统缓存(File System Cache)
默默认情况下认情况下为50%的可用物理内存。如为50%的可IIS5.0运行内存不够时,它会自动整理用物理内存缓存。需要关注该计数器的趋势变化
Internet File Cache Hits %
File Cache Hits %是文件缓存命中全部(对于一个Information File Cache缓存需求的比例,反映了IIS的文件缓大部分是静Services Flushes存设置的工作情况。而File Cache Hits态网页组成
Global File Cache Hits是文件缓存命中的具体值,File Cache的网站)File Flushes是自服务器启动之后文件缓存Cache Hits%刷新次数,如果刷新太慢,会浪费内存;如果刷新太快,缓存中的对象会太频繁属于非常好!的丢弃生成,起不到缓存的作用。通过File Cache Hits和File Cache Flushes可以得到一个适当的刷新值(参考IIS的设置ObjectTTL、MemCacheSize、MaxCacheFileSize)
Memory
PoolPaged BytesPool Nonpaged Bytes
Pool Paged Bytes Pool Nonpaged Bytes这两个计数器监视服务器上各个进程的分页池字节数和非分页池字节数。
在访问数比较固定的情况下, Pool Nonpaged Bytes是比较定的,如果访问数逐步增加,该值会缓慢的增加
Process
Virtual Bytes
Working Set计数器
Virtual Bytes(实Virtual Bytes数器监视IIS5.0保留的例inetinfo、虚地址空间的数量,实例化为inetinfo dllhost) Working Set(实例进程(IIS运行的核心)和Dllhost进程(隔离/连接池的应用程序必需的)。inetinfo、dllhost) Working Set计数器反映了每个进程使Dllhost#n进程都用的内存页的数量。系统的内存页(pool要添加计数器Page)只能由操作系统的核心模块直接访问,用户进程不能访问。运行IIS5.0的服务器上,负责web连接的线程以及它需要的一些对象都保存在未分页的池中(nonpaged pool),比如文件句柄和socket连接
Process
Private Bytes
指这个处理不能与其他处理共享的、已分配的当前字节数
Memory
Committed
Bytes
是指以字节表示的确认虚拟内存。(确认内存是指为磁盘分
页文件在磁盘上保留的空间以便在需推荐不超过物理内存的75%
要将其写回磁盘时使用)
推荐部超过物理内存的75%
内存问题主要检查应用程序是否存在内存泄漏。如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working Set计数器的值往往会升高,同时Available Bytes的值会降低。内存泄漏应该通过一个长时间的,用来研究分析当所有内存都耗尽时,应用程序反应情况的测试来检验。
相关
Object(对象)
Counters
Description(描述)
参考值
Sytem
Processor Queue
Length
Processor Queue Length 是指处理列队中的线程数。即使在有多个处理器的计算机上处理器时间也会有一个单列队。不象磁盘计数器,这个计数器仅计数就绪的线程,而不计数运行中的线程。如果处理器列队中总是有两个以上的线程通常表示处理器堵塞
小于2。显示在由 Web服务器所有处理器共享的队列中等待执行的线程数。处理器瓶颈会导致该值持续大于2
Processor
%Processor Time
CPU 使用率。这是查看处理器饱和状况的最佳计数器。显示所有 CPU的线程处理时间。如果一个或多个处理器的该数值持续超过 90%,则表示此测试的负
载对于目前的硬件过于沉重。为多处理器服务器添加该计数器的 0到 x个实例
小于75%。排除内存因素,如果该计数器的值比较大,而同时网卡和硬盘的值比较低,那么可以定CPU瓶颈
System
Context Switches/sec
Context Switches/sec 指计算机上的所有处理器全都从一个线程转换到另一个线程的综合速率。当正在运行的线程自动放弃处理器时出现上下文转换,由一个有更高优先就绪的线程占先或在用户模式和特权(内核)模式之间转换以使用执行或分系统服务。它是在计算机上的所有处理器上运行的所有线程的Thread: Context Switches/sec 的总数并且用转换数量衡量。在系统和线程对象上有上下文转换计数器
如果切换次数到5000*CPU个数和10000*CPU个数中,说明它忙于切换线程而不是
处理ASP脚本
Processo
%Privileged Time
% Privileged Time 是在特权模式下处理线程执行代码所花时间的百分比。当调用 Windows系统服务时,此服务经常在特权模式运行,以便获取对系统专有数据的访问。在用户模式执行的线程无法访问这些数据。对系统的调用可以是直接的(explicit)或间接的(implicit),例如页面错误或中断。不像某些早期的操作系统,Windows除了使用用户和特权模式的传统保护模式之外,还使用处理边界作为分系统保护。某些由Windows为您的应用程序所做的操作除了出现在处理的特权时间内,还可能在其他子系统处理出现
Time
Switches/sec (实例化inetinfo和dllhost
如果你决定要增加线程字节池的大小,你应该监视这三个计数器(包括上面的一个)。增加线数可能会增加上下文切换次数,这样性能不会上升反而会下降。如果十个实例的上下文切换值非常高,就应该减小线程字节池的大小
Processor
Interrupts/sec %DPC Time
Time 这两个计数器能够反映处理器用在处理中断以及推迟处理调用的时间。如果处理器使用率超过Interrupts/sec指处理器每秒钟接收并维90%且硬件中断的平均值。正常的线程操作在中断时悬停。大多数的系统时钟每Interrupt Time大于隔 10毫秒中断处理器一次,形成了间15%,则处理隔活动的后台
如果处理器使用率超过90%,且Interrupts/sec time大于15%则处理器可能负载过重,并发生中断
Processor Interrupts/sec %DPC Time这两个计数器能够反映处理器用在处理中断以及推迟处理调用的时间。如果处理器使用率超过Interrupts/sec指处理器每秒钟接收并维90%且硬件中断的平均值。正常的线程操作在中断时悬停。大多数的系统时钟每Interrupt Time大于隔 10毫秒中断处理器一次,形成了间15%,则处理隔活动的后台。器可能负荷过重,并发生中断。判断应用程序是否存在处理器瓶颈的方法:如果Processor Queue Length显示的队列长度保持不变(>=2)个并且处理器的利用率%Processor Time超过90%,那么很有可能存在处理器瓶颈。
如果发现Processor Queue Length显示的队列长度超过2,而处理器的利用率却一直很
低,那么或许更应该去解决处理器阻塞问题,这里处理器一般不是瓶颈。如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(Context Switches/sec显示的上下文切换次数比较大),那么就会占用大量的系统资源。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高同时还可以比较Context Switches/sec和%Privileged Time来判断上下文切换是否过量。如果后者的值超过40%,且上下文切换的速率也很高,那么应该检查为什么会产生这样高的上下文切换。
网络吞吐量以及带宽
Object
Counter
Description
参考值
Network Interface
Bytes Total/se
Bytes Total/sec 为发送和接收字节的速率,包括帧字符在内。判断网络连接速该计数器的值和目前网度是否是瓶颈,可以用该计数器的值和络的带宽相目前网络的带宽比较
改计数器的值和目前网络带宽相除,结果应该小于50%
Web Servic
Maximum Maximum Connections
Maximum Maximum Connections :“ 最大连接数” Attempts Total Connection Attempts:“连接尝试总数”是从服务启动时利用 Web服务尝试连接的总数。该计数器应用于全部所列的实例。
磁盘相关
Object(对象) Counters(计数器名称) Description(描述)参考值
Object
Counters
Description
参考值
Network
Bytes Total/sec
Bytes Total/sec 为发送和接收字节的速Interface率,包括帧字符在内。判断网络连接速度是否是瓶颈,可以用该计数器的值和目前网络的带宽比较
Processo
%Processor Time
% Privileged Time
CPU 使用率该计数器对应于处理器执行Windows. 2000内核命令(如处理SQL Server I/O请求)所用时间的百分比。如果 Physical Disk计数器的值很高时该计数器的值也一直很高,则考虑使用速度更快或效率更高的磁盘子系统。
PhysicalDisk
%Disk Time
% Disk Time 指所选磁盘驱动器忙于为读或写入请求提供服务所用的时间的百分比。如果三个计数器都比较大,那
么硬盘不是瓶颈。如果只有%Disk Time比较大,另外两个都比较适中,硬盘可能会是瓶颈。在记录该计数器之前,请
在 Windows 2000 的命令行窗口中运行 diskperf -yD。若数值持续超过 80%,则可能内存泄漏。
PhysicalDisk
AverageDisk
Queue Length
指读取和写入请求(为所选磁盘在实例间隔中列队的)的平均数。
PhysicalDisk
PhysicalDisk
指在此盘上读取操作的速率
PhysicalDisk
Disk Writes/sec
指在此盘上写入操作的速率
判断磁盘瓶颈的方法是通过以下公式来计算:
每磁盘的I/O数 = [读次数 +(4 *写次数)] /磁盘个数
如果计算出的每磁盘的I/O数大于磁盘的处理能力,那么磁盘存在瓶颈。
应用程序
这里以ASP.NET开发的Web应用程序为例进行说明。
Object
Counters
Description
参考值
ASP.NET Applications
Request/Sec Request Executing
每秒执行的请求数。
如果Request/Sec ApplicationsRequest Executing当前执行的请求数。的值比较小,你
的Web 程序可能
是瓶颈
ASP.NET
ASP.NETRequestWait
Time
Request Executing Time
最近的请求在队列中等待的毫秒数。执行最近的请求所用的毫秒数。Queued在理想状况下应该接近0, Request Queued等候处理的请求数。该计数器应保持接近 0。超过 IIS队列长度会出如果这两个值太大,那么需要重现“服务器太忙”错误
这里针对SQL Server2000,而且只是列出比较关键的几个。更加详细的信息可以参考SQL Server的联机文档。
Object(
Counters
Description
参考值
Processor
%Processor time
CPU使用率
SQL Server: Logins/sec
这是每秒登录到 SQL Server的计数
SQLServer:CacheManage
Cache Hit Ratio
(all instances)
显示在高速缓存中找到数据的命中率。如果数值持续小于 85%,则表
示内存有问题。
SQL Server
General Statistics
User Connections
显示当前 SQL 用户数。与 Active Server Pages:Requests/Sec计数器
进行比较, 可帮助了解脚本对 SQL Server的影响程度。如果差别过大,则表示测试脚本不能有效地对SQL Server进行应力测试。
SQLServer:Locks
Lock Waits/sec
显示在当前进程完成之前强制其他进程等待的每秒锁定请求的数量。如果该值始终大于 0,则表示事务有问题。
SQLServer: BuffeManage
Buffer Manager Hit Ratio
计数器值依应用程序而定, 但比率最好为 90% 或更高。增加内存直到这一数值持续高于 90%,表示90%以上的数据请求可以从数据缓冲区中获得所需数据。
SQLServer
SQL Statistics
Batch Requests/sec
每秒收的Transact-SQL 命令批数。这一统计信息受所有约束(如I/O、用户数、高速缓存大小、请求I/O、用户数、高速缓存大小、请求的复杂程度等)影响。批请求数值
高意味着吞吐量很好。
SQL Server:
Buffer Manager
Lazy Writes/sec
每秒被缓冲区管理器的惰性写入器写入的缓冲区数。惰性写入器是一
个系统进程, 其主要任务是刷新成批的老化的脏缓冲区(指包含更改
的缓冲区, 这些更改必须写回磁盘,才能使该缓冲区由其它页重新使
用), 并使之可由用户进程使用。惰性写入器消除了为创建可用缓冲区而频繁执行检查点的需要。
SQL Server:
Buffer Manager
Page Reads/sec
每秒发出的物理数据库页读取数。这一统计信息显示的是在所有数据
库间的物理页读取总数。由于物理I/O的开销大,可以通过使用更大
的数据高速缓存、智能索引、更高效的查询或者改变数据库设计等方法,使开销减到最小。
SQL
Server:Databases
Transactions/sec
每秒为数据库启动的事务数
这里针对SQL Server2000,而且只是列出比较关键的几个。更加详细的信息可以参考SQL
Server的联机文档。
如果要监视的两台计算机在同一个局域网络内,建议不要使用Network Delay Monitor。
因为在同一局域网内,Network Delay会非常的小,网络监视器会有足够的时间在每秒钟内发送成百上千的请求,这样会导致源计算机(source machine)的CPU和内存超负荷工作。
默认情况下“Enable display of network nodes by DNS names”选择是没有选中的,因为
选中它会明显的降低该监视器的速度。
分析实时监视图表
这一章仅仅介绍几个最重要的图表。
Q1事务响应时间是否在可接受的时间内?哪个事务用的时间最长?
看Transaction Response Time图,可以判断每个事务完成用的时间,从而可以判断出那个事务用的时间最长,那些事务用的时间超出预定的可接受时间。
Q2网络带宽是否足够?
“Throughput”图显示在场景运行期间的每一秒钟,从Web Server 上接受到的数据量的值。
拿这个值和网络带宽比较,可以确定目前的网络带宽是否是瓶颈。
如果该图的曲线随着用户数的增加,没有随着增加,而是呈比较平的直线,说明目前的
网络速度不能够满足目前的系统流量。
Q3硬件和操作系统能否处理高负载?
“Windows Resources”图实时地显示了Web Server系统资源的使用情况。利用该图提供的数据,可以把瓶颈定位到特定机器的某个部件。
经常遇到的问题
脚本的问题
在使用VuGen中经常会遇到的问题。
controller的问题
在使用Controller中经常会遇到的问题。
1.在添加完Load Generators机器时,连接老是失败;添加的机器明明已经安装了
loadrunner,并且网络通讯正常。
解决方法:在安装loadrunner的第七步骤,应该选择第2项,如果选择了第一项,
就会有这种问题。重新安装一下即可。
2.在VuGen中运行良好的脚本,到Controller中运行却出问题。
这种问题可能会遇到。为了确定问题出在Controller中的场景,而不是脚本的问题,
你应该在所有的Load Generators机器上使用VuGen运行测试脚本,确保都能够运
行正确。因为VuGen和Controller运行的机制不一样。在VuGen中运行时使用的
是完整的浏览器,而在Controller中运行时使用的只是浏览器的基本的部分。
计数器的问题
在使用性能计数器中经常会遇到的问题。
1.添加了Windows Resources计数器后,却看不到实时的数据。
解决方法:要得到监视的数据,必须要在被监视的服务器(Web Server)上获得管
理员权限。最简单的方法是在“网络邻居”中以administrator身份登陆Web Server。
当然使用下面的控制台命令也可以:net use \\<机器名>然后登陆用户名和密码即
可。(登陆的用户名必须具有管理员权限)
2.添加了一些默认的性能计数器后,出现了错误。
解决方法:可能是一些LoadRunner默认的计数器在WebServer上已经不存在的原
因,尤其是数据库的计数器方面。简单的解决方法,就是删除有问题的计数器,添
加比较接近的计数器(可能需要参考Windows帮助或者数据库的帮助)
- LoadRunner压力测试--windows资源监控计数器
- LoadRunner压力测试时监控服务器Linux的资源情况
- LoadRunner压力测试时监控服务器Linux的资源情况
- LoadRunner压力测试时监控服务器Linux的资源情况
- LoadRunner压力测试时监控服务器Linux的资源情况
- LoadRunner压力测试时监控服务器Linux的资源情况
- loadrunner 监控windows资源
- loadrunner监控windows资源(三)
- LoadRunner监控Windows资源设置
- loadrunner如何监控Windows资源
- LoadRunner监控windows资源分析
- loadrunner测试同时如何监控服务器资源
- loadrunner监控服务器资源(windows、linux)
- loadrunner监控服务器资源(windows、linux)
- loadrunner监控windows服务器资源设置
- LoadRunner压力测试实例
- LoadRunner压力测试实例
- LoadRunner压力测试实例
- 单链表中环的检测
- 最小路径覆盖问题(二分图)
- asm基础——计算机的原码和补码
- android 如何在广播里面更新 UI
- iOS多线程之GCD
- LoadRunner压力测试--windows资源监控计数器
- 收藏Android学习相关资料
- sublime text3的安装及emmet插件的傻瓜式安装
- Android项目:手机安全卫士(10)—— 电话归属地显示
- UVA 540 - Team Queue
- poj 2253 Frogger
- 测试
- java 配置jdk环境变量
- 【Android SDK开发】各种Android Dialog创建及其监听事件实现