谢谢jackloo !
再请问如果我想测试10000个用户同时在线做常用操作的话(每两秒加一个用户,一直加到10000),对服务器的要求有多高?
谢谢各位了!
10万用户是以后正式上线后客户预计的数目,我这里想问下的是1万用户在线大概需要的配置是怎样的?(例每两秒加载一个用户共加载1万个用户) 原帖由 jenny_xu 于 2006-11-16 09:01 发表
谢谢各位了!
10万用户是以后正式上线后客户预计的数目,我这里想问下的是1万用户在线大概需要的配置是怎样的?(例每两秒加载一个用户共加载1万个用户)
看来楼主还是不明白。
1.大概需要什么样的配置是要通过你的测试来评估的;
2.你的 10000 用户,以及每两秒加载一个用户是否是模拟实际的场景,是否有参考依据?
3.你提到要测试包括几个页面,那么在这几个页面中用户的分布情况是怎么样的?
[ 本帖最后由 jackei 于 2006-11-16 09:21 编辑 ] 这样的PK看起来含金量就是高............各位高手继续呀! 原帖由 jackei 于 2006-11-16 01:12 发表
然后通过统计学的方法来计算出一个模型,通过样本的表现来估算总体的特征。这就是统计学研究的领域,。 ...
呵呵,统计学。"通过样本的表现来估算总体的特征",统计学中是否要求你的样本足够多才行。而且象用10000来估算10万的情况,统计学中明确表明是不准确的,不能这样估算的。 原帖由 robust 于 2006-11-16 10:06 发表
呵呵,统计学。"通过样本的表现来估算总体的特征",统计学中是否要求你的样本足够多才行。而且象用10000来估算10万的情况,统计学中明确表明是不准确的,不能这样估算的。
呵呵,没错,样本的确要够多。但是“象用10000来估算10万的情况,统计学中明确表明是不准确的,不能这样估算的”,不知道是从哪里得出的结论?
在医学、生物工程等领域,很多实验获取样本极为困难,使用几百份样本来获得对更大总体的特征的估算也是合理的。
另外,通过可伸缩性来对系统的性能表现和负载级别进行数学建模也是对系统做出评估和预期的方法。不知道楼上的是不是一定要每次测试都有一个真实的生产环境来测试。 刚刚学LR,正好看到这个文章,学习了! 学习一下, 原帖由 jackei 于 2006-11-16 11:00 发表
在医学、生物工程等领域,很多实验获取样本极为困难,使用几百份样本来获得对更大总体的特征的估算也是合理的。 ...
没有错,因为前提是他们的取样的方法是科学的,合理的。象这种工程领域的取样,他们的样本会是均匀分布的,如果取样的方法是错误的,那他们的结果也是错误的。
反观这个例子,10000个里取样,推测10万这样的结果,你认为取的样本分布是什么分布,是正确的,科学的吗? 呵呵。精彩。向jackie和robust学习哦。
不过对于LZ说的这样的门户系统,由于有用户权限,所以并不象jackie所说大多是静态页面。但只要是多服务器的集群,那么我们就可以通过1台机器的测试结果来计算多台机器集群后的负载能力的,最多额外考虑一下负载均衡和路由上的压力,比如带宽、速度、延迟等。但如果都是在1台机器上变化,那我们只能做一些指标上的计算,可以从这些指标上简单判断一下是否不可行,比如10万并发用户却只有1根百兆带宽,那我们可以计算出每个用户只有1K带宽,这显然是不可行的。但实际的结果还是需要测试了才知道,毕竟系统压力和用户数量不是线性变化的。
另外我也解释一下为什么说“这一类的性能指标对大多数软件来说没什么实际意义,更多的是对硬件的要求”。
这一类是指最大并发数、最大在线用户数量等。因为用户操作不同功能,对系统的压力就不同,而在实际使用过程中常常会出现因为时间不同或者发生突发事件导致整体用户操作上功能的变化。所以没有统一的功能使用的标准导致了这一类的指标成了个噱头。所有的软件厂商都是自说自话,把自己的软件安装在一个极端的环境中,做一些没有实际意义的操作,得出一个你永远都不可能达到的性能指标出来。就如同汽车厂商的汽车油耗一样,反正你就听听罢了,真正使用中是不算数的。
另外这一类系统的普遍的成熟的使用,以及很多软件在方案设计后就能够大致估算出系统的性能特点,都导致了系统在软件性能方面调优的比例并不大(当然不完全排除后期针对某些代码和配置进行优化后性能的进一步提高),更多的都是从硬件方面来考虑,比如增加内存、硬盘做RAID、增加带宽、甚至增加机器等。
to robust
原帖由 robust 于 2006-11-16 12:25 发表没有错,因为前提是他们的取样的方法是科学的,合理的。象这种工程领域的取样,他们的样本会是均匀分布的,如果取样的方法是错误的,那他们的结果也是错误的。
反观这个例子,10000个里取样,推测10万这样 ...
HI. robust, 真的很高兴有人可以这样一起讨论问题 ^_^
我说说我的看法吧。
首先,对于响应时间之类的这种连续性正态分布,只要样本数量够多,通常都是均匀分布的,也就是说是具有统计学意义的。——什么叫样本量够多?例如 100 个并发用户执行一次迭代是不够的,可以考虑每个虚拟用户执行 100 次迭代,来尽量减少抽样的随机性对数据真实性的影响。当然,我们必需了解,抽样的数量是收到时间和相关资源的限制的,个人理解是应该在资源限制的范围内获得尽可能多的样本数据。
第二,其实上面我们在讨论的是两个问题,一个是涉及到性能测试本身,另外一个是如何通过可伸缩性测试(scalability testing),或者说通过容量的规划来对系统的性能做出预期。
应该说性能测试本身也是一个实验,但是总体并不是上面提到的 10 万用户,而是从这个系统第一个用户访问开始到系统下线前的最后一个用户。通常大家都会用平均响应时间来评估系统性能,但是如果要获得最准确的平均响应时间,就要记录这个系统第一个用户访问开始到系统下线前的最后一个用户,每个用户的响应时间,然后平均。但明显这是不现实的,就好像我上面提到的那个疫苗的例子。我们只能通过性能测试,通过不同级别的压力(并发量)来获取实验数据,并通过对这些实验数据的分析获得对系统真实性能的估算。这里涉及到 Std.(标准差)和置信区间等统计学方法,我将会在我的“《LoadRunner没有告诉你的》之Std.在性能分析中的应用”一文中详细讨论。
而对于可伸缩性测试,对于很多大型网站或运营商级的系统来说是必需的,因为要考虑到用户的增长,所以必需要了解系统在将来是否可以通过一些简单有效的方法(例如增加 cluster)来提高系统的处理能力,以及在当前的阶段是否需要投入巨大的资金来购买硬件和各种软件的 license。通常来说是要根据并发量、系统的性能表现以及软硬件资源的消耗情况来进行分析,并使用数学建模的方式获得一个容量模型。这方面可以通过 google 找到更多的资料。
希望这个讨论可以继续下去 ^_^
to jackloo
原帖由 jackloo 于 2006-11-16 12:39 发表呵呵。精彩。向jackie和robust学习哦。
不过对于LZ说的这样的门户系统,由于有用户权限,所以并不象jackie所说大多是静态页面。但只要是多服务器的集群,那么我们就可以通过1台机器的测试结果来计算多台机器集 ...
呵呵,很高兴看到大家都回来继续讨论这个话题,感觉现在我们的讨论已经很有深度了,希望可以继续。
另外,说点个人的看法。
首先,如果验证使用集群时系统响应能力的变化,只有一台 cluster 的数据是不够的,一定需要继续做 2/3/4 台或者更多(如果有足够的资源的话)测试,得到的数据和分析的结果才更接近真实情况。
第二,我也同意你提到的“这一类的性能指标对大多数软件来说没什么实际意义,更多的是对硬件的要求”。因为一方面可以看到 楼主 的性能需求本身还是值得商榷的。不过我们也可以反过来想,就是可以验证在某个环境下,系统所能支持的并发量是多少。例如目前的带宽是 100 M ,可以支持的并发量是多少,当升级到 1000 M 时,又如何?可以通过以现有环境为基础的测试来了解系统在不同压力下可能出现的瓶颈,作为将来部署的一个参考。
完了。
^_^ 全看了,感觉差距太大。不知几时我才有这样的了解!学习了 1个连接产生1个session,每个session在服务器上有个内存空间大小的设置,在NT上是3M?
有这么大吗?是预留3M还是它创建后就给它分配了3M啊?不根据里面放的东西来算么?
转发一份偶 blog 上的留言
网友 oscarxie 的留言一般大型网站的采用负载均衡,比如一个购物网站30台服务器分为WWW部分,SSL部分,WWW部分12台,SSL部分18台,这样可以保证WWW页面能够承受500-600万用户访问,SSL部分可以承受最大2000-3000个用户同时下订单。
同时数据库服务器要达到一定的规模。
相信这些数据更有助于大家对上面讨论的理解。 呵呵,向楼上的朋友们致敬、学习…… 继续关注!!! 可伸缩性测试具体的测试过程为:进行负载测试,记录不同负载下的平均响应时间,然后查看平均响应时间是否线性增加。如线性增加,说明系统具有可伸缩性,否则则说明系统可伸缩性较差或者没有。 学到不少~ 强顶一下 学习~~~~~~~~~~ 原帖由 jackloo 于 2006-11-14 15:05 发表 http://bbs.51testing.com/images/common/back.gif
总的来说这一类的性能指标对大多数软件来说没什么实际意义,更多的是对硬件的要求。
如果是用IIS做应用服务器的话,单台可承受的最大并发数不可能达到10万级,那就必须要使用集群,通过多台机器做负载均衡来实 ...
讲的太好了
sdlkfj3