如何测试服务器 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 万个并发用户,那速度,也绝对是嗖嗖的。