图解用WAS对Web服务器进行压力测试
你的Web服务器能够支持多少个并发用户的访问呢?你遇到过服务器遭受过DDOS的攻击而瘫痪吗?在这里给大家介绍微软网站测试人员开发的著名网站压力测试软件,Microsoft的Web Application Stress Tool(WAS,Web应用负载测试工具),而且还是免费的哦。其下载地址:[url]http://download.microsoft.com/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42c11/setup.exe[/url]WAS是一款网站性能测试评估软件。它通过模拟大量并发用户同时访问服务器,以获取服务器的承受能力。像这种软件是把“双刃剑”,就看你用在哪一方面啦。如果没用好就会给你的服务器造成一定的损失,用好了可以及时的发现你的服务器能承受多大压力负载。以便及时的采取相应的措施防范。要对网站进行负载测试首先需要创建WAS脚本来模拟用户访问等活动。创建脚本的方法:通过记录浏览器的活动;通过导入IIS日志;通过把WAS指向Web网站的内容;或者手工制作。这里我用是通过记录浏览器事件生成的脚本的一部分, 一:测试前的准备1. 在测试前清空IE浏览器其它网站的缓存和Cookies等临时文件。二:测试脚本制作1. 打开WAS,点击Record 2.勾选要记录的活动 3.点击Finish 4.这时自动弹出一个浏览器新窗口,即开始记录你的浏览的内容。这时开始访问你要测试的网页。 5.在你访问你的服务器时,WAS都记录了这些活动,访问完成后点击Stop Recording结束记录。 6.这时在脚本页可以看到收集到的脚本,在Server栏输入服务器的IP地址。 7.删除延迟小的元素 8.可以用Ctrl键同时选中多个,然后点击工具栏的删除按钮删除 9.点击Settings,在这里可以设置例如发起的连接数,热身时间,带宽限制,以及测试要运行多长时间等参数。 Stress Level和Stress multiplier这二个项决定了访问服务器的并发连接的数量。其中Level是客户端所产生的线程数,一个线程可以产生多个Socket并发请求,因此两者的数值相乘所获得的数值才是客户端同时发起连接并发数。微软建议这这个Stress Level值不要超过100。如果要模拟的并发连接数量超过100个,可以调整Stress multiplier的值或使用多个客户机来测试 时间设置包括“Test Run Time”(测试运行时间)和“Request Delay”(停止响应)以及“Suspend”(挂起时间)三项。其中测试运行时间是以日、小时、分钟、秒的格式来设定的,建议该项时间不宜太短,如果设置的并发数较多,那么时间应该按比较增长,以便产生足够多的请求;而停止时间是指连接时超出这个时间即作超时处理; warmup(热身)时间,一般可以设置为1~3分钟。在warmup期间WAS开始执行脚本,但不收集统计数据。warmup时间给MTS、数据库以及磁盘缓冲等一个机会来做准备工作。如果在warmup时间内收集统计数据,这些操作的开销将影响性能测试结果。 限制带宽(throttle bandwidth)。带宽限制功能能够为测试模拟出Modem(14.k K,28.8 K,56 K)、ISDN(64 K,128 K)以及T1(1.54 M)的速度。使用带宽限制功能可以精确地预测出客户通过拨号网络或其他外部连接访问Web服务器所感受的性能。 三.测试压力1.点击工具栏的开始运行按钮 2.点击Run Test开始测试 3.正在测试服务器压力,time left的时间为剩余时间.如果设置了热身时间则会先出现倒计时为WARMUP的 4.如果提示RPC服务不可用,请查看PRC服务是否开启,并设置成自动. 还可能是你的脚本错误,这种情况下删除当前脚本,重新收集就没问题啦 5.这时可以用netstat �Can 来查看是否开启了很多连接,其中state栏established的表示已连接上 6.查看CPU大部分进程都被Webtool所占用 7.查看CPU的使用率 8.用性能监视器查看当前性能 9.查看服务器端的性能 四.查看测试报告,分析数据1.点击工具栏的报告,查看测试报告 2.着重查看“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分为Connect、Send 、Recv和Timeouts。其中Connect表示客户端不能与服务器取得连接的次数;Send表示客户端不能正确发送数据到服务器的次数;Recv表示客户端不能正确从服务器连接次的次数;Timeouts表示超时的线程数目。如果这四个数值都比较小,甚至为0则说明这个服务器是经得起考验的;如果数值居高不下,甚至接近设置的并发数,那么则要好好的检查你的服务器了 “Result Codes”部分,如果Code列表下的数值都为200,那么表示所有请求都经服务器成功返回,如果数值出现400或大于400,例如404,那么则需要在左侧找到“Page Data”节点,查看具体的错误项目,然后作出相应的修改。 3.速度 4连接数,服务器IP,.时间参数5.测试最好由多台客户机来测试,不要在一台测试机上设置超大的连接数Stress Level值,且这些测试机分布在不同的地方。在你测试服务器的内网会出现网页无法显示,访问其他网站的网页也打不开,这时可以让不跟你在同一个局域网内的朋友访问试一下你的服务器。不断的增加或减少连接数,经过多次测试才知道这个服务器能承受多大压力。如果是IIS搭建的服务器还可以修改允许的最大连接数。得到数据后分析数据,服务器资源分布,响应处理速度,大量用户或遭到攻击时该采取哪些相应的措施,以及性能优化。 (为了大家更好的访问51CTO,请大家不要以51cto为服务器做压力测试。我这里只是为了宣传51cto才用的,并设置的连接数也不大。)