你的
Web
服务器能够支持多少个并发用户的访问呢?你遇到过服务器遭受过
DDOS
的攻击而瘫痪吗?在这里给大家介绍微软网站测试人员开发的著名网站压力测试软件,
Microsoft
的Web Application Stress Tool(WAS,Web应用负载测试工具),
而且还是免费的哦。
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 –an 来查看是否开启了很多连接,其中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搭建的服务器还可以修改允许的最大连接数。得到数据后分析数据,服务器资源分布,响应处理速度,大量用户或遭到攻击时该采取哪些相应的措施,以及性能优化。
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 –an 来查看是否开启了很多连接,其中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搭建的服务器还可以修改允许的最大连接数。得到数据后分析数据,服务器资源分布,响应处理速度,大量用户或遭到攻击时该采取哪些相应的措施,以及性能优化。