linneiwei 发表于 2013-10-11 21:26:27

共享一个视频:如何测试服务器的最大并发数

在线播放网址:http://www.tudou.com/programs/view/bBgukENTnTg/
视频下载网址:http://pan.baidu.com/s/19oukr

满足最大并发数条件
1、用户都要成功
2、用户事务时间(以网页为单位,或整个脚本)需要在合理范围,一般是满足“2-5-8”原则,太长时间则认为用户也是失败的,因为一个网站如果响应时间太长,用户不能忍受,则会损失用户。

另外,该视频介绍了测试工具测试的最大并发数,并不能代表服务器支持的最大并发数,因为很多测试工具(包括loadrunner)运行的虚拟用户对服务器的压力要小于真实的用户,所以测试工具测试的最大并发数比实际要大,但大多少,是很难估算的,(有些HTTP吞吐量大,有些HTTP需要访问数据库或访问另一个服务器,即没个HTTP的时间有大有小,不能简单的平均,所以估算实际用户数很难,周边的人都这样认为,不知道论坛上有没高手)。
所以只有模拟真实用户行为,才能简单得出系统最大并发数,让性能测试更轻松

还有,该视频介绍事务的时间是有条件的
不是一般测试工具的事务时间,因为对于网站性能测试,一般测试工具不能模拟浏览器的行为,事务时间就无法用“2-5-8”原则来评估,而模拟了真实用户行为才能简单实用“2-5-8”原则来评估

欢迎大家交流讨论,怎么更好地测试出系统支持的用户数,性能测试一个目的是调优,还有一个重要的目的是评估支持多少用户数,这是架构平台级的(即使用什么性能服务器,要多少台),也是领导与用户最关心的,让性能测试更轻松

lsekfe 发表于 2013-10-12 11:56:17

支持视频共享!

AnikiKun 发表于 2013-10-14 10:06:28

服务器并发数的测试确实是一个比较重要的点,补习补习

fengzzzz 发表于 2013-10-17 13:35:43

并发数要么通过计算的出来,要么服务端监控得到

lin39320028 发表于 2013-10-18 09:14:24

回复 4# fengzzzz


    请问怎么计算呢,还有服务端怎么监控,能教下吗

linneiwei 发表于 2013-10-18 23:23:05

回复 4# fengzzzz


    1、怎么计算,很难计算
   假设一个页面有A、B、C、D四个请求,浏览器是并发他们的,但是C响应时间要1秒(访问数据库或后台服务器),其他ABD则很快100毫秒,则整个页面时间应该是1秒
   所以测试工具能够模拟浏览器并发(每一个虚拟用户跟浏览器一样的并发数)并为页面设置了事务后,该事务值就表示了该页面的时间,用户都不需要计算。
   
   假设测试工具时串行的,则事务时间为A+B+C+D,那么怎么得到页面的时间呢,很难计算的。肯定不是取平均值,因为一平均整个页面才400毫秒,跟实际情况不一样,实践情况还有TCP建立时间。   
   另外,在并发情况下A在每个用户的时间很大可能都不一样,B也是,由于工具没有每个HTTP请求的时间,而是整个事务的时间,所以事务时间太大时,就不知道是哪个导致的,
   因为可能在并发小时是C时间长,但并发大时可能是B(假设下载一个大图片)的时间长,或者TCP建立时间长,所以很难计算该事务换算成页面的时间;身边做性能测试有经验的人也是这样认为,
   因为无法得到每个虚拟用户每个HTTP请求的信息,就算得到也很难计算。
   
   但如果是测试工具能够模拟浏览器并发则事务多少就表示页面多少,都不需要计算。
   
   所以说通过测试工具的值再自己计算出来,很不现实
   
2、服务器监控得到并不代表最大并发数
   1)很多WEB系统是没有这个功能的,因为很多WEB服务器都没有用户信息
   2)假设有用户信息(用户名、状态),但用户登录后没退出,但浏览器已经关闭,即脚本已经运行完,然后WEB系统还存在该信息,只是超时才删除,这时候统计的用户数不是最大并发数
      而是在线数,因为用户这时已经没有对WEB系统有压力啦
   3)假设用户一直在线压,没有出现在线但没请求的去哪个看,那么有多少用户数,只是表示你的系统里面有这么多用户数据,也确实有这么多用户在处理
      但由于测试工具没有模拟浏览器行为,这时测试用户数与真实的用户数是不一样的。因为真实用户数压力更大,这个可以看视频的例子
   
   所以,如果测试工具确实模拟了浏览器一样的压力,那么不需要查询服务器(很多测试人员可能不会,或者没条件),测试工具显示最大多少就是多少,用户一目了然,多好啊。
   
这就是我一直强调模拟浏览器行为,然后根据事务时间符合“2-5-8”原则来进行性能测试,这样的思路才让性能测试更清晰,更轻松

lin39320028 发表于 2013-10-23 09:03:07

回复 6# linneiwei


    顶,牛人,学习啦

tianlang001 发表于 2013-10-28 10:46:09

确实是这样,前几天去面试,面试官问,浏览器将所有数据都展示给用户的性能,该怎么去监控测试,因为我们在测试的时候检查点设置的仅仅是侦测返回的数据包,数据成功返回不代表页面展示出来了,返回的数据或图片还需要重组,这个还需要时间,有时比请求返回的时间还要长,不知道怎么去下手。

linneiwei 发表于 2013-10-29 19:35:17

回复 8# tianlang001


    是的,浏览器是并发的,且渲染界面需要时间,所以HTTP请求会受界面影响,如果使用了kylinPET工具模拟浏览器并发功能,并且选择按照录制时间间隔,就可以模拟渲染影响到HTTP的时间。

上面的补充:
假设测试工具模拟里浏览器一样的行为(即是并行而不是串行)的,则ABD是100毫秒,C响应时间1秒时,整个事务的时间是1秒,与正常情况一样;如果是A因为TCP重传变为3秒,而C才1秒,则整个时间是3秒,取最大那个,因为是并行的。 这样,测试工具测试的事务时间是多少,就表示用户访问该事务时多少时间,一目了然,不需要用户去计算。


很多人不了解loadrunner的模拟用户行为,所以以为loadrunner测试多少就符合多少用户,这是由于很多人不了解浏览器是并发请求页面的。

由于以前我们在测试上计算用户数这块很复杂,所以才在kylinPET工具增加了模拟浏览器的功能,这是个很实用的功能。

qiqiloveyunyun 发表于 2013-10-31 23:51:46

视频共享顶一个

codyczh 发表于 2013-11-1 18:50:37

回复 8# tianlang001


    在浏览器端的解析和渲染,属前端的部分了,需要前端工具测

51TestingToo 发表于 2013-11-12 14:13:06

有道理,以前跟我们性能测试的人员聊过,后来在网上找到一篇文章讲loadrunner怎么换算实践用户数的论文,文章名称忘了,是一个比较复杂的数学公式,而且是测试多次的统计学,但没什么说服力,感觉文章讲的不合理。

如果能模拟浏览器并发行为,那确实就不需要计算,直接看就行

楼主,loadrunner不支持模拟浏览器并发吗?使用进程方式?

fractic 发表于 2013-11-13 10:29:15

顶视频共享!!

linneiwei 发表于 2013-11-23 17:21:45

更好的性能测试,还需要了解很多与工具无关的知识,这样才能知道如何调试,测试出问题是什么原因

参照一哥们写的:http://www.51testing.com/html/95/302795-852001.html

Bekty 发表于 2013-11-29 15:48:31

学习了
页: [1]
查看完整版本: 共享一个视频:如何测试服务器的最大并发数