|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
缺点:安全性不是太差了,还行,只要你充分利用系统自带的工具;唯一缺点就是执行效率慢,如何进行网站优化以后,效果会比较好。程序
J.D.Meier
September27,1999
内容
先容
剧情
测试需求
先容测试工具WAS
剖析测试了局
影响体现和可测性的要素
摹拟多用户
运转必要登录认证的测试
WAS的使用技能
资本
先容
当我们从传统的CS布局的使用程序转到以后盛行的Web空间的程序时,我们发明我们在实验跟上不休增加的可测性需乞降功能请求。个中一个最年夜的应战在于怎样断定你的程序能最多撑持几个用户的会见。你怎样面临这一应战?设定明晰的功能方针并利用Web压力测试工具会是一个好的入手下手。
这篇文章将会先容怎样对你的ASP程序举行压力测试,同时将会先容微软的压力测试工具-WebApplicationStresstestTool(WAS).在接上去的一章,你将会进修到压力测试的基本,同时还会学到一些需要的技能,经由过程这些进修,你将能够依据测试的了局加倍无效的测试和修正你的程序。
剧情
假定你将要公布一个预期有1000用户利用的ASP程序。你分明的晓得你的程序最少能处置两个并发的用户的会见,由于你和你的同伴能成天地址击这个ASP程序而不会呈现任何的成绩。你在嫌疑究竟两个用户可否准确地反应你的程序的受压才能。固然你可使用尺度的测试办法(公布你的程序,然前期待最好的了局呈现),但是你仍是决意事后测试你的程序的体现。这是一个好兆头!
测试需求
为了更好的测试你的ASP程序,你起首必要决意你的程序未来必要面临多年夜的压力。复杂的说,压力或负载能够分化成以下数字:
・最低用户数目。(这个程序的利用者的最低数目是几?一般这个数值能够是逐日或没周或每个月的点击量―固然你也能够分化成一个更可控的数值―每小时会见量,)
・并发用户的总量.(在最岑岭时的糟情况是甚么?作出响应的企图.但愿在有压力的情形下事情一般无效.)
・哀求岑岭值.(每秒钟必要发生几ASP页面?这大概是在权衡一个ASP程序对用户哀求作出反响的才能时的一个最主要的要素.)
为你的程序决意用户量和并发用户数一般是很坚苦的事变,并且是在你的程序在被实践利用之前。特别是收集程序。即便是局域网程序也经常要面临用户增添的成绩,以是正确的估计用户量将会是坚苦的。当你不晓得怎样入手下手时,最好从基本的入手下手:
Internet必要思索的成绩:
・剖析你已有的IIS日记。这个数值会表示出一些实践的概率
・你的站点将会有多盛行?盛行的站点一天会有100万或更多的会见量。不会那末盛行?那末假定一些分歧的情形?假定你有1000以上的用户群?你能经由过程增添更多的硬件设备来办理扩大性成绩吗?大概,你的程序的架构会成为瓶颈吗?
・甚么是最糟的情形?问一下你的伴侣这些情形会产生吗?
Intranet必要思索的成绩:
・一样地,剖析你已有的IIS日记。
・这个ASP程序是能够给每一个人用的吗?在公司外部网有几台呆板?你的体系办理员能够告知你有关收集岑岭流量的器材吗?
・这个程序有特定的用户工具吗?只是HR人力资本部?有几团体力资本部的员工在利用?
・最糟的情形是如何的?
假如你不克不及提早决意得当的负载,那末断定你的程序的最高下限将是你最好的选择。假如被10个用户点击,你能在1秒内发生几的ASP呼应了局?100个呢?1000个呢?10000个呢?纪录你的基准。当你从实践利用中失掉你的流量日记显现你正在靠近你的极限时,你将不但会为你晓得你以后的极限是甚么,并且你会偶然间筹办办理的举措。
先容测试工具WAS
固然有良多的压力测试工具可供选择,可是在本文,我会次要会合先容WAS(就是之前所谓的Homer),WAS是以后微软的尺度网页压力测试工具。假如你已对WebCat很熟习了,你会冲动的发明WAS能够很便利地导进现有的WebCat剧本。假如你之前用过InetMonitor,你会冲动的发明WAS也是基于GUI的(关于良多利用命令行的WebCat的用户来讲这将会是一个很好的附加特征)。另外一个优点是它是收费的,我的一个好伴侣常说,“假如是收费的,那末就是我的。”除它的代价上风外,这个工具还供应了完全的功效,并且还在不休地晋级更新中。Microsoft.com常常要利用它,以是他们会分明这个工具的主要性。
可是你不必要过量地舆会我的话,尽管本人往实验。我在文章的开头会供应一个列表,列出一些第三方的压力测试工具,你能够本人决意选甚么工具。底线是你必要一个工具,可以把你的ASP程序放到负载下,在公布之前测试它。
入手下手利用WAS
我会教你如何第一次利用这个工具来测试一个ASP页面。我也会先容如何利用签名登录的测试和多用户并发会见的测试,由于这些器材会使初学者一头雾水。
起首你必要下载和安装这个工具。你能从上面的链接中失掉最新版本
http://www.microsoft.com/technet/treeview/default.asp?url=/TechNet/itsolutions/intranet/downloads/webstres.asp.在这个网站上还会有关于这个工具的进门引导,你能够随时归去看看。
以下是在安装时必要注重的几点:
・不要把WAS安装在你的测试方针服务器上,安装在其余呆板以确保失掉正确的测试了局。
・在安装WAS的呆板上必要有ADO2。1以上的版本。假如oledb32.dll的版本不是2.10.3711或以上,ADO会被WAS主动安装。
・在安装后你会有一个完全的安装日记,默许会在ProgramFilesMicrosoftWebApplicationStressToolINSTALL.LOG.
・假如你已安装了旧版本的WAS,更新时会保存数据文件无缺。WAS利用Access.mdb文件作为数据存储文件。WAS的初始.mdb包是WAS.mdb,能够在程序安装路径找到。
・WAS在注册表的HKEY_LOCAL_MACHINESOFTWAREMicrosoftWAS存储注册信息。
在运转我们新安装的WAS之前,我们创立一个复杂的ASP剧本作为测试页面。创立一个新的叫做MyASPPage.asp的ASP页面,然后拔出以下剧本:
MyASPPage.asp
<%@Language=VBScript%>
<HTML>
<BODY>
<%CONSTForAppending=8
setoFSO=server.CreateObject("Scripting.FileSystemObject")
translateourvirtualdirectoryintoaphysicalpath
strFilePath=Server.MapPath(Request.ServerVariables("PATH_INFO"))
grabtherootofthevirtualdirectory
strFilePath=left(strFilePath,(InstrRev(strFilePath,"")))
strFilePath=strFilePath&"MyFile.txt"
writeouttothescreenthefullfilepath
Response.Write(strFilePath&"<BR>")
setoTS=oFSO.OpenTextFile(strFilePath,ForAppending,true)
oTS.writeline("SessionId:"&Session.SessionId&chr(32)&_
"Time:"&Cstr(now()))
%>
</BODY>
</HTML>
这个ASP剧本将在一个文本文件中拔出SessionId及其举动工夫,如许我们能够便利地确认我们的ASP页面是不是在准确的实行。一旦你熟习了这个工具,你就能够指向你实践的ASP页面以作真实的测试。
在服务器的得当的目次安排你的ASP页面以使它能够被匿名会见。我们在前面将会再试签名会见的测试,可是如今我们必要运转一个最基础的测试。用全路径URL扫瞄你的页面,包含你的服务器名。比方,一个完全的URL看起来像http://MyServer/MyVirtualDirectory/MyASPPage.asp。一旦你能乐成地扫瞄你的ASP页面(务必反省MyFile.txt这个文件,这个文件会被程序写在假造目次的物理地位),你就能够运转WAS做实践的测试了。
当你第一次运转WAS时,将会呈现上面的对话框:
Figure1.Createanewscript
固然其他选项也很诱人,如今我们先选Manual这项。未来你还能够从菜单的Scripts或在工具拦点取NewScript图标来创立一个新的剧本。
接待离开剧本扫瞄界面。左手边的窗口以树型布局列出了你的剧本。在右手边的窗口里你能够修正你的剧本设置。
在左手边的窗口里的树状列表单击NewScript能够激活剧本的扫瞄。在Server输出框输出你的服务器的名字。在ScriptItem的第一项,选择GET作为你的举措。在PATH输出你的ASP地点,以假造目次为入手下手符。见图Figure2以下:
Figure2.EntertheURLinthePathfield
这时候候,你能够点工具条上的RunScript箭头标记来实行你的剧本(务必确保你在右边的窗口点取了准确的剧本)。在发生一个提要的功能呈报之前,这个剧本必要运转也许1分钟的工夫。
剖析测试了局
你能够点工具条上的Reports图标来看发生的呈报。这将发生一个与Scripttab相临的新的tab。呈报被存储在一个纲目视图里。起首,在你的呈报上面点ResultCodes,这个将给你一个疾速的印象,此次测试是不是呈现了甚么成绩。假如你看到的形态代码不是200,你大概必要查询拜访一下呈现了甚么成绩,一般的成绩包含签名和不准确的URL路径。
点Overview,你将看到这个测试举动的一个扼要疾速的剖析。从ASP的手艺角度看,RequestperSecond,是一个必要深切剖析的关头值。这个值越高越好。一般,假如你不克不及从利用呈报和预算中决意出一个特定的方针,你可让ASP的RequestsperSecond值高于30,固然这个ASP是没有连数据库或利用其他组件的。由于能够预感,毗连数据库将增添程序的包袱。
固然有RequestperSecond这个计数器默许包括在WAS里,你大概想增添其他的计数器。你能够在点了PerfCounters的图标后经由过程点AddCounter来增添其他的计数器。一个出格有效的计数器是ASPRequestsQueued,这个计数器常常是在辨认一个堵塞或临时驻留的页面或组件时的关头。关于剖析ASP功能的资本有:
・TuningInternetInformationServerPerformance
・NavigatingtheMazeofSettingsforWebServerPerformanceOptimization
・IIS4ResourceKit
影响功能和可丈量性的要素
服务器构成,数据库会见,和其他要素会年夜年夜下降ASP的RequestperSecond值。分歧的设置选择也会起到分歧的感化,在这里我要指出几个常呈现的要素:
・假如你在会见一个数据库,你是不是有做毗连池?关于毗连池的具体材料请看PoolingintheMicrosoftDataAccessComponents.
・你是不是在利用ASPSession变量来存储形态?Session变量会很快地影响可测性。它们必要服务器资本,并且假如你想增添呆板以扩大功能,它们会起拦阻感化,由于Session是与特定呆板相干连的。无形态是最年夜化可扩大性的办法。关于Session的替换请参考这篇文章:HowTo:PersistingValueswithoutSession.
・你是不是在Session形态中存储有VisualBasic的组件?如今就往失落它们。Session中的VisualBasic工具会招致线程相干性并且会搅扰冲击IIS的线程池。这是一个庞大的主题,可是满意它的履历办法是:不要在Session中存储Single-threadedApartment(STA)objects。假如你必要在Session中保存工具,它们应当被标志为”Both”,并且你必要本人聚合这些自在线程成为一个汇合。ActiveTemplateLibrary(ATL)能够创立如许的怪物。
・你的收集程序是被限制运转在它本人的内存空间的吗?实践上我们保举历程回护。但是,假如你必要榨出一些分外的功能,在历程中运转你的收集程序将会节俭一些交织历程汇合的开支。
・当触及MicrosoftTransactionServer(MTS)components时,假如组件是作为服务器包而运转的而不是库包,那末将会有分明的功能区分。一个一般的倡议是设置收集程序在它本人的内存空间中运转,然后在库包中运转MTS组件。
摹拟多用户的情形
我会扼要的先容怎样在WAS中摹拟多用户哀求的情形。你必要做两件事:
1.在Settings面板改动ConcurrentConnections。
2.在Users创立用户,最少要创立多于你在ConcurrentConnections里指定的用户数。
要改动并发用户数,点Settings图标。假如少于100个用户,你能够间接设置StressLevel,要摹拟多于100个用户,你还须设置StressMultiplier。基础公式为:用户数(线程数)=StressLevel*StressMultiplier.假如要摹拟1,000个用户,你能够设置StressLevel为100而StressMultiplier为10。
假如你在没有设置充足的用户前实验运转剧本,你将会失掉一个告诫。经由过程点Users图标能够修正你的用户数,你将在右侧的窗口看到一个默许的Default组。双击Default组睁开你的用户列表,假如你被同意匿名会见,那末你只需复杂的填进新用户的代码然后点Create就能够了。
运转必要签名登录的测试
假如你想运转必要签名登录的页面,那末你必要创立符合的用户名和暗码以便WAS在运转时可使用。这一样是在Users设置的。你能够一入手下手就经由过程RemoveAll往失落以后的用户列表,然后增加你必要的用户,你也能够选择从文本文件导进用户名和暗码。
可是不管怎样,必要确保这些用户具有无效的帐号,并且他们都能够会见IIS服务器。假如你利用的是BASIC基础认证用户帐号,你能够经由过程在你的扫瞄器提交证书来测试这个帐号,在文本文件写出Request.ServerVariables("AUTH_USER")这个值将会有很年夜的匡助感化。我们修正后的ASP代码将看起来是如许的:
oTS.writeline("SessionId:"&Session.SessionId&chr(32)&_
"Time:"&Cstr(now())&"AUTHUSER:"&chr(32)&Request.ServerVariables("AUTH_USER"))
利用WAS的技能和提醒
作为停止,我会供应一些技能和提醒,另有一些履历总结:
・调剂你的网站的日记文件的存储,由于这个文件将会疾速的增年夜(见IIS文档)
・经由过程设置注册表中的HKEY_LOCAL_MACHINESoftwareMicrosoftWASSessionTrace的DWORD为1,你能够以调试的体例追踪WAS的举动
・假如你的WAS呈报显现毛病,务必反省EventLog,在工具外用扫瞄器扫瞄你的页面,然后反省服务器的日记:WinNTsystem32LogFilesW3SVCi
・假如你的测试客户端呆板的处置器利用率凌驾了%85,你大概必要增加更多的测试客户端
・一些更风趣的话题会在WAS的文档里呈现:PageGroups,QueryStrings,Cookies,WebApplicationStressObjectModel和ActiveServerPageClient(这个会让你有才能经由过程Web远程把持测试客户端)
请注重这是个没有手艺撑持的工具,发送你的成绩到webtool@microsoft.com。你能够在WebApplicationStressTool这个网沾上搜刮一些罕见的成绩。你也能够对这个工具举行编程,在一样的网站上有工具模子的参考。
资本
要想猎取更多的信息,WAS的网站上的tutorial是一个好去向。固然,请务必读一下随WAS附带的在线匡助―出格是一个叫Webstresstestingoverview的话题。
・WebHammer。一个由ServerObjects做的用于测试收集程序和服务器的工具
・LoadRunner.一个由MercuryInteractive做的压力测试工具,能够用来预感企业级程序的体系体现和功能
・EnterpriseMonitor.由MediaHouseSoftware公司出品,用于监督,传递和恢复你的intranet和internet收集
・ExtremeSoftsPerfMon。为MicrosoftTransactionServer而做的工具,能从功能监督中供应间接的MTS监督。
J.D.Meier在美国东海岸出身并发展。自从寄望了Greeley的倡议今后,他就成了一位开辟撑持工程师,专注于服务器真个组件和触及MTS和ASP手艺的WindowsDNA使用。
ASP最大的缺点在于网络的安全性和可靠性,企业将经营数据放在开放的平台上,最大的担忧就是如何保证这些数据不被其他人破坏。 |
|