你想架设一套能够承受日pv500万的架构吗?500万PV是什么概念? 服务器每秒要处理的请求时多少(并发)如何计算? 等等问题,涌上心头。
首先,你要了解一些基础知识:什么是PV,计算模型,算法??
1、pv指的就是,页面的刷新次数,每打开一个页面,就算1次 pv;
2、计算模式:根据目前互联网行业来看,模型大概一致,白天时间访问量较高,晚上较少。
每台服务器每秒处理请求的数量=((80%总PV量)/(24小时60分60秒40%)) / 服务器数量 。
其中关键的参数是80%、40%。表示一天中有80%的请求发生在一天的40%的时间内。
24小时的40%是9.6小时,有80%的请求发生一天的9.6个小时当中
简单的计算结果:
((80%500万)/(24小时60分60秒40%))/1 = 115.7个请求/秒
((80%100万)/(24小时60分60秒40%))/1 = 23.1个请求/秒
初步结论:
现在我们在做压力测试时,就有了标准,如果你的服务器一秒能处理115.7个请求,就可以承受500万PV/每天.
如果你的服务器一秒能处理23.1个请求,就可以承受100万PV/每天。
以上结果都是处于“理想化”,真实环境要给服务器留有资源余地,比如说你服务器刚好并发115.7,那你跑500万PV是不行的,比如说网络延迟,或硬件问题等问题出现,服务器就立刻挂掉了,这样是必行的,所以要留有余量。
留足余量:
以上请求数量是均匀的分布在白天的9.6个小时中,但实际情况并不会这么均匀的分布,会有高峰有低谷。
为了应对高峰时段,应该留一些余地,最少也要x2倍,x3倍也不为过。
115.7个请求/秒 2倍=231.4个请求/秒
115.7个请求/秒 3倍=347.1个请求/秒
23.1个请求/秒 2倍=46.2个请求/秒
23.1个请求/秒 3倍=69.3个请求/秒
最终结论:
如果你的服务器一秒能处理231.4—347.1个请求/秒,就可以应对平均500万PV/每天。
如果你的服务器一秒能处理46.2—69.3个请求,就可以应对平均100万PV/每天。
说明:
这里说明每秒N个请求,就是QPS。因为我关心的是应用程序处理业务的能力。
另外关于硬件压力测试(磁盘I/O,CPU 负载),也需要测试 ;