首先要明白,这个问题不容易量化,影响一个大型网站所需服务器数量的因素很多。对于最基础的网站源代码,如果一个技术高超的程序员能实现最好的算法,那么几台服务器就能完成一个拥有数千万并发量的网站。相反,对于低水平的程序员来说,即使几十万台服务器也只能完成几万个并发网站。对于随意需要成百上千台服务器的网站,程序员素质很低,架构师水平极低。
其次,业务量越大,网站的整体结构就会越复杂。我们看到的网站只是冰山一角,有成千上万的系统支持。服务器的评估需要根据不同业务系统的特点进行分析。
(1) 新闻等服务不复杂的普通网站,交互容易,以展示为主,所以即使PV很大,也不会需要很多机器。单台nginx服务器可以处理静态页面,可以达到几千甚至几万QPS(当然这只是一个理论值,考虑到页面大小和宽带等因素是达不到的)。
(2) 业务复杂的系统,如携程, 京东, 淘宝等。复杂的用户交互、存储、支付、第三方沟通等。再加上保证系统稳定性和支持容灾,将会成倍增加机器的需求。分析系统,对比业务复杂度,然后对比机器数量更有可比性。
此外,机器配置也有好有坏,新服务器的性能可能是旧机器的几倍甚至十倍。
再者,什么样的网站才算大?假设2M带宽,它可以在线承载10,000个IP。网页大概60K,一般人的等待耐心是3到5秒。按3秒计算,每个网页占用的带宽约为20K/S2M=2048K2048/20=103。如果是5秒计算,200个人可以同时触发。如果页面文件很小,以此类推。用2M带宽支持300人在线基本没问题。如果每秒300人可以同时触发,那么每分钟就有1.8万人,低至每秒10人。它每分钟还能载600人。按照一般20分钟SESSI