Windows WEB服务器并发测试
发布时间:2010-11-12 来源:文档文库
小
中
大
字号:
如何测试服务器10W用户访问2008年12月01日 星期一 05:14这个帖子的内容比较典型,大家有兴趣可以也思考一下。帖子源于51testing论坛
先是楼主提出问题:
最近公司一个项目,是个门户网站,需要做性能测试,根据项目特点定出了主要测试项和测试方案
一种是测试几个常用页面能接受的最大并发数(用户名参数化,设置集合点策略 一种是测试服务器长时间压力下,用户能否正常操作(用户名参数化,迭代运行脚本
还有一种则需要测试服务器能否接受10万用户同时在线操作,但使用的Loadrunner的license只能支持1万用户,请问这时该如何制定该方案?
后面跟着大家的回复:
网友 xingcyx 的回复:
1、找10台电脑也没用,license仍然只支持10000个。 2、找HP支持。当然,前提是你有足够的钱。
3、测到10000用户并发。我认为,通常情况下10000用户并发,支持100000用户在线,没有问题的。
网友 jackloo 的回复:
总的来说这一类的性能指标对大多数软件来说没什么实际意义,更多的是对硬件的要求。 如果是用IIS做应用服务器的话,单台可承受的最大并发数不可能达到10万级,那就必须要使用集群,通过多台机器做负载均衡来实现;
如果是用websphere之类的应用服务器的话,单台可承受的最大并发数可以达到10万级,但为性能考虑还是必须要使用集群,通过多台机器做负载均衡来实现; 那么,你只要集群的服务器足够多,10万并发数当然可以达到了。
通常有1个简单的计算方式,1个连接产生1个session,每个session在服务器上有个内存空间大小的设置,在NT上是3M,那么10万并发就需要300G内存,当然实际使用中考虑其他程序也占用内存,所以准备的内存数量要求比这个还要多一些。
还有10万个用户同时在线,跟10万个并发数是完全不同的2个概念。这个楼上已经说了。但如何做这个转换将10万个同时在线用户转换成多少个并发数呢?
这就必须要有大量的历史日志信息来支撑了。系统日志需要有同时在线用户数量的日志信息,还需要有用户操作次数的日志信息,这2个数据的比例就是你同时在线用户转换到并发数的比例。
另外根据经验统计,对于1个JAVA开发的WEB系统(别的我没统计过,给不出数据),一般1台双CPU、2G内存的服务器上可支持的最大并发数不超过 500个(这个状态下大部分操作都是超时报错而且服务器很容易宕机,其实没什么实际意义),可正常使用(单步非大数据量操作等待时间不超过20秒)的最大并发数不超过300个。
假设你的10万同时在线用户转换的并发数是9000个,那么你最少需要这样的机器18台,建议不少于30台。
当然,你要是买个大型服务器,里面装有200个CPU、256G的内存,千兆光纤带宽,就算是10万个并发用户,那速度,也绝对是嗖嗖的。
楼主的回复: 谢谢jackloo ! 再请问如果我想测试10000个用户同时在线做常用操作的话(每两秒加一个用户,一直加到10000,对服务器的要求有多高?
网友 jackloo 的回复:
套用1句经典台词“高,实在是高”
呵呵。另外暴寒1下,你的设置光全部进入运行状态就需要接近6个小时。 具体的你可以拿1个系统来压一下看看,可能会出现以下情况: 1。服务器宕机; 2。客户端宕机;
3。从某个时间开始服务器拒绝请求,客户端上显示的全是错误;
4。勉强测试完成,但网络堵塞或测试结果显示时间非常长。假设客户端和服务器之间百兆带宽,百兆/10000=10K,那每个用户只能得到10K,这个速度接近1个64K的MODEM上网的速度;
另外以上分析全都没考虑系统的后台,比如数据库、中间件等。 我从没遇到你说的这样的性能需求过,也只好凭感觉随便掰掰: 1。服务器方面:上面说的那样的PC SERVER需要50台;
2。网络方面:按每个用户50K,那至少5根百兆带宽独享,估计仅仅网络延迟就大概是秒一级的;
3。如果有数据库,至少是ORACLE,最好是SYSBASE,SQL SERVER是肯定顶不住的。数据库服务器至少需要10台4CPU、16G内存的机器;
4