|
普通的Web系统,关于并发量与用户数的关系计算如下:
1.单台服务器最高并发数2000,这是业内的大牛通过各种架构/优化/技术实现的. 我们水平没那么高, 但200并发 绝对是没问题的.
2.单个请求的处理时间, 理论上的极值为70ms(这是内网Web服务器访问数据库服务器的网络时间), 我们水平没那么高, 但也绝对可以在500ms内完成一次请求(不包括用户到Web服务器的网络时间)
3.根据以上, 单台服务器 每秒可响应 400个请求.
4.每小时响应 144W 请求.
5.每天的响应不能简单 乘以24, 因为正常系统,晚上没人用, 电子商务通常在早10,下午14点,晚上19点附近会有高峰期. 根据经验,高峰期 一小时的请求量是每天请求量的十分之一.
即每天响应 1440W请求.
6.每个页面平均有2个请求(Ajax会导致额外的请求), 静态资源请求不计入,这个只跟网络有关,即,每天响应720W个页面
7.根据经验,在网站发生实质性业务的用户 ,平均打开100个页面(这个是往高了说的). 即 单台服务器 每天可支持 7.2W个实质交易.
8.根据经验 每天 登录用户数是交易用户数的十倍,但页面打开数极少,通常是1-10, 这个忽略. 即, 单台服务器每天 有 72W个登录用户.
9.根据经验,注册用户是每天登录用户的10倍(如果没有刷僵尸用户的话), 单台服务器可以为 720W个注册用户服务.
10.使用负载均衡后,通常负载均衡服务器 会是 2/4/8/16 这个规模 , 通常不会超过16. 即 16个负载均衡服务器 可 服务 1.15亿用户(这个至少也是京东的级别了)
最后: 如果用户数超过以上计算,或者业务复杂度导致无法实现200并发(如:复杂业务,几十个流程),那么 我们会根据实际项目情况 采取 其他技术手段来提高 服务器集群的响应能力
如: 缓存memcache, 更高速的数据库mongo/redis,动静分离CDN,数据库分库/分表
再比如: 部分关键节点采用Java进行处理, 这里并不是说Java就比PHP好, 但在极限速度响应上,Java的确比PHP快, Java进程驻留内存啊~~~ |
|