还剩10页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
使用对进行压力测试Microsoft WebApplication StressTool web你的服务器和应用到底能够支持多少并发用户访问?在出现大量并发请求的情况Web下,软件会出现问题吗?这些问题靠通常的测试手段是无法解答的本文介绍了为Microsoft这个目的而提供的免费工具及其用法另外,本文介绍了一种应用的性能优化方WAS Web法,并利用测试了它的性能改善程度WAS随着服务器端处理任务的日益复杂以及网站访问量的迅速增长,服务器性能的优化也成了非常迫切的任务在优化之前,最好能够测试一下不同条件下服务器的性能表现找出性能瓶颈所在是设计性能改善方案之前的一个至关紧要的步骤本文介绍的(应用负载测试工Microsoft WebApplication StressTool WAS,Web具)在服务器性能测试中的应用(注基本含义为“重压;压力”等,本文称之Web Stress为“负载”)另外,我们还将通过评估一种相对简单的网站性能改善方法,这种方法WAS的基本思想是在服务器上生成静态的页面、避免过多的数据库调用HTML负载测试是任何应用的开发周期中一个重要的步骤如果你在构造一个为大量用户Web服务的应用,搞清楚你的产品配置能够承受多大的负载非常重要如果你在构造一个小型的网站,测试能够暴露出最终会导致服务器崩溃的内存漏洞以及竞争情况Intranet无论是哪种情形,花些时间对应用进行负载测试可以获得重要的基准性能数据,为未来的代码优化、硬件配置以及系统软件升级带来方便即使经费有限的开发组织也可以对它们的网站进行负载测试,因为的是可以免费下载的要求Microsoft WAS WAS Windows NT或者更高,或者为了对网站进行负载测试,可以通过一台或
4.0SP4Windows2000WAS者多台客户机模拟大量用户的活动支持身份验证、加密和也能够模拟各种浏WAS Cookies,览器类型和速度,它的功能和性能可以与数万美元的产品相媲美如果你对和Modem WAS的另外一个测试工具Microsoft WebCapacity AnalysisTool.每当该页面被调用,脚本就会提取最后的更新时间并将它与当前时间比较如果两个时间之间的差值大于预定的数值,脚本就会运行;否则,该页面把余下的Update.asp ASP代码发送给浏览器.HTML最后更新时间从变量得到,它的第一次初始化由完成具体的更新时间间隔应根据Application global.asa页面内容的更新要求调整.如果每次访问页面的时候都要提供最新的信息,或者输出与用户输入密切相关,这AS P种方法并不实用,但这种方法可以适应以固定的时间间隔更新信息的场合.如果数据库内容由客户通过适当的页面更新,要确保静ASP态页面也能够自动反映数据的变化,我们可以在页面中ASP调用脚本这样,每当Update数据库内容改变时服务器上也有了最新的静态页面.HTML另一种处理频繁变动数据的办法是借助的Microsf.SQ.Serve.
7.0助手向导Web这个向导能够利用We.Assistan.Wizard,、存储过程等从数据生成标准的Transact-SQL SQ.Server文件.HTML利用任务,SQ.Server助手向导能够用来定期地生成页面正如前面概要介绍的方案助手可以Web HTML,Web通过触发子更新页面,比如在指定的时间执行更新或者在数据库数据变化时执行更新,HTML本文来自无涯教程之间的差别感兴趣,可以访问工具的比较页面WCAT Microsoft Web要对网站进行负载测试首先必须创建脚本模拟用户活动我们可以用下面四种方法之一WAS创建脚本通过记录浏览器的活动;通过导入日志;通过把指向网站的内容;HS WASWeb或者手工制作图所显示的是通过记录浏览器事件生成的脚本的一部分,网站是的1Microsoft是开发的电子商务应用示例,从Duwamish BookStore DuwamishMicrosoftWeb网站的链接可以下载这个软件包下载包中包含了它自己的测试Duwamish“Phase4”WAS脚本□【图】1制作脚本是相当简单的,不过要制作出模拟真实用户活动的脚本有点儿复杂如WAS果你已经有一个运行的网站,可以使用服务器的日志来确定网站上的用户点Web Web Web击分布如果你的应用还没有开始运行,那么只好根据经验作一些猜测了图这个脚本中我们假定有个会员在浏览书店,同时又有一个会员正在购买要模130拟两者混合而成的行为,首先必须创建页面组并在脚本的分枝确定点击分布情Page Group况在分枝中我们可以增加、修改或删除页面组,也可以为各个组修改流量的Page Group分布图显示了和这两个页面组以及比的流量分布2grp_browse grp_buy301□【图】2创建了页面组之后,我们就可以在主脚本视图中赋予各个请求不同的页面组,如图所3示为每个请求指定页面组相当于告诉如何分布流量记住在本例中对组页面WAS grp_buy的请求约占总数的而对组页面的请求约占3%,grp_browse97%□【图】3如果需要在查询字符串中传递“名字-值”对,可以用的查询字符串编辑器来定义WAS各个变量的所有可能的值在输入变量值后,既可以要求顺序地使用变量的各个值,也WAS可以要求在请求时随机选择变量值这在一定程度上增加了脚本所模拟行为的真实性,WAS也可以帮助避免缓冲对测试结果的影响准备好测试脚本之后,我们可以调整测试配置以便观察不同条件下的应用性能图是的设置界面□4WAS【图】4和这二个项决定了访问服务器的并发连接的数量Stress LevelStress multiplier建议不要选择超过的值如果要模拟的并发连接数量超过Microsoft100Stress Level100个,可以调整或使用多个客户机在负载测试期间将通过与Stress multiplierWAS DCOM其他客户机协调有关在测试中使用多个客户机的更多信息,参见http://webtool.rte.microsoft.com/kb/hkbl
3.htmo如果网站提供个性化服务,要进行身份验证或使用我们还要为提供一个Cookies,WAS用户目录中的用户存储了发送给服务器的密码以及服务器发送给客户端的WAS Cookieso增加用户数量并不增加服务器的负载必须提供足够数量的用户以满足并发连接的要求Web乘以有关线程、用户、相互作用的更多信息请Stesss LevelStress MultiplierCookies参见本文来自无涯教程http://webtool.rte.microsoft.com/Threads/WASThreads.htmo网:http://www.wuyapc.com允许设置热身时间,一般可以设置为分钟在期间WAS warmup1warmup WAS开始执行脚本,但不收集统计数据时间给、数据库以及磁盘缓冲等一个机会warmup MTS来做准备工作如果在时间内收集统计数据,这些操作的开销将影响性能测试结果warmup设置页面提供的另外一个有用的功能是限制带宽带宽限制功能throttle bandwidth能够为测试模拟出、以及Modem
14.k K,
28.8K,56K ISDN64K,128K T
11.54M的速度使用带宽限制功能可以精确地预测出客户通过拨号网络或其他外部连接访问服Web务器所感受的性能要理解这些不同的设置对应用的影响,有必要了解如何使用收集性能数据WAS使用从远程和机器获取和分析性能计数器WAS,WindowsNTWindows2000是很方便的加入计数器要用到图所示的分枝Performance Counter5Perf Counters□【图】5在测试中选择哪些计数器显然跟测试目的有关虽然下面这个清单不可能精确地隔离出性能瓶颈所在,但对一般的服务器性能测试来说却是一个好的开始Web处理器使用百分比%•CPU CPUUtilization线程每秒的上下文切换次数•Context SwitchesPer SecondTotal每秒请求数量•ASP:Requests PerSecond请求执行时间•ASP:Request ExecutionTime请求等待时间•ASP:Request WaitTime置入队列的请求数量•ASP:Requests Queued使用百分比反映了处理器开销使用百分比持续地超过是性能瓶颈在于处CPU CPU75%理器的一个明显的迹象每秒上下文切换次数指示了处理器的工作效率如果处理器陷于每秒数千次的上下文切换,说明它忙于切换线程而不是处理脚本ASP每秒的请求数量、执行时间以及等待时间在各种测试情形下都是非常重要的监测项ASP目每秒的请求数量告诉我们每秒内服务器成功处理的请求数量执行时间和等待时间ASP之和显示了反应时间,这是服务器用处理好的页面作应答所需要的时间我们可以绘出随着测试中并发用户数量的增加每秒请求数量和反应时间的变化图增加并发用户数量时每秒请求数量也会增加然而,我们最终会达到这样一个点,此时并发用户数量开始“压倒”服务器如果继续增加并发用户数量,每秒请求数量开始下降,而反应时间则会增加要搞清楚硬件和软件的能力,找出这个并发用户数量开始“压倒”服务器的临界点非常重要置入队列的请求数量也是一个重要的指标如果在测试中这个数量有波动,某个ASP COM对象所接收到的请求数量超过了它的处理能力这可能是因为在应用的中间层使用了一个低效率的组件,或者在会话对象中存储了一个单线程的单元组件ASP运行的客户机使用率也有必要监视如果这些机器上的使用率持续地超WAS CPUCPU过说明客户机没有足够的资源来正确地运行测试,此时应该认为测试结果不可信在这75%,种情况下,测试客户机的数量必须增加,或者减小测试的本文来自无涯教程网Stress Levelohttp://www.wuyapc.com每次测试运行结束后会生成详细的报表,即使测试被提前停止也一样报表可以WASWAS从菜单选择查看下面介绍一下报表中几个重要的部分.View Reports如果这是一个新创建的测试脚本,你应该检查一下报表的部分这部分内Resul.Codes容包含了请求结果代码、说明以及服务器返回的结果代码的数量如果这里出现了代码(页404面没有找到),说明在脚本中有错误的页面请求..页面摘要部分提供了页面的名字,接收到第一个字节的平均时间()接收到最后一个TTFB,字节的平均时间()以及测试脚本中各个页面的命中,数和这两个值对于TTLB,TTFB TTLB计算客户端所看到的服务器性能具有重要意义反映了从发出页面请求到接收到应答数TTFB据第一个字节的时间总和(,毫秒计),包含了它是客户机接收到页面最后一个TTLB TTFB,字节所需要的累计时间.报表中还包含了所有性能计数器的信息、这些数据显示了运行时各个项目的测量值,同时还提供了最大值、最小值、平均值等报表实际提供的信息远远超过了我们这里能够介绍的内容为了给你一个有关表所提供信息种类的印象,图摘录了一个报表实例6□【图】6,随着应用的日益广泛,用户的要求和期望也在不断地发展今天的客户期待个Internet性化的可定制的方案,期待这些方案不仅简单,而且快速、可靠、,本低廉对于能够适应用户需求不断变动的可定制页面来说,静态已经退出了舞台,比如内容根据客户请求变化HTML的页面就是其中一例这一切都要求系统,存相关的数据,例如有关用户本身以及用户可能请求哪些信息的数据.紧跟这些趋势的开发者已经开始提供可定制的网站象搜索数据之类的任务Web Web现在可以由服务器执行而无需客户干预然而,这些变革也导致了一个结果,这就是许多网站都在使用大量的未经优化的数据库调用,从而使得应用性能大打折扣.我们可以使用以下几种方法来解决这些问题.・.优化代码.1ASP,优化数据库调用..
2.使用存储过程.,
3.调整服务器性能..4优秀的网站设计都会关注这些问题然而,与静态页面的速度相比,任何数据库调用都会显著地影响网站的响应速度,这主要是因为在发送页面之前必须单独地为每个访问网站Web的用户进行数据库调用..这里提出的性能优化方案正是基于以下事实访问静态页面要比访问那些内容依HTML赖于数据库调用的页面要快它的基本思想是在用户访问页面之前,,先从数据库提取信息写入存储在服务器上的静态页面为了保证这些静态页面能够及时地反映不断变化的数HTML据库数据,必须有一个调度程序管理静态页面,生成.当然,这种方案并不能够适应所有的情形例如,如果是从持续变化的大容量数据库提取少量信息,这种方案是不合适的不过可以适用该方案的场合还是很多.为了保证能够在合适的时间更新静态页面,把下面的代码加入到相应的页面前面HTML ASP.着应用的日益广泛,用户的要求和期望也在不断地发展今天的客户期待个性化的Internet可定制的方案,期待这些方案不仅简单,而且快速、可靠、成,低廉对于能够适应用户需求不断变动的可定制页面来说,静态已经退出了舞台,比如内容根据客户请求变化的页面HTML就是其中一例这一切都要求系统保.相关的数据,例如有关用户本身以及用户可能请求哪些信息的数据.紧跟这些趋势的开发者已经开始提供可定制的网站象搜索数据之类的任务WebWeb现在可以由服务器执行而无需客户干预然而,这些变革也导致了一个结果,这就是许多网站都在使用大量的未经优化的数据库调用,从而使得应用性能大打折扣.本文来自无涯教程网:http://www.wuyapc.com我们可以使用以下几种方法来解决这些问题.・.优化代码.1ASP,优化数据库调用..
2.使用存储过程..
3.调整服务器性能..4优秀的网站设计都会关注这些问题然而,与静态页面的速度相比,任何数据库调用都会显著地影响网站的响应Web命中平均TTLB平均TTFBms速度,这主要是因为在发送页面数ms之前必须单独地为每个访问网站的用户进行数据库调用..这里提出的性能优化方案正是基于以下事实访问静态页面要比访问那些内容HTML依赖于数据库调用的页面要快它的基本思想是在用户访问页面之前,.先从数据库提取信息写入存储在服务器上的静态页面为了保证这些静态页面能够及时地反映不断变化的数据库数据,必须有一个HTML调度程序管理静态页面.生成.当然,这种方案并不能够适应所有的情形例如,如果是从持续变化的大容量数据库提取少量信息,这种方案是不合适的不过可以适用该方案的场合还是很多.为了保证能够在合适的时间更新静态页面,把下面的代码加入到相应的页面前HTML ASP面.□。