网上有很多关于此类的回答,但是基本上都只说了一个方面,今天大碗数据就来和大家详细回答一下这个问题,希望能给相关企业一些帮助;
首先,我们要明白,这个问题并不容易量化,影响一个大型网站所需服务器数量的因素有很多,拿最基础的网站源代码来说,如果是技术极高的程序员,能把算法做到极致,那么极少的服务器就可以完成千万级并发量的网站。 反之,水平很低的程序员,则即使几百上千台服务器也只能完成几万级并发量的网站。 那些动不动就要几百上千台服务器的网站,很大概率上说,程序员质量是很低的,架构师的水平也是极低的。
其次,业务量越大,网站的整体架构会越复杂,我们看到的网站只是冰山一角,其背后有上万系统共同支撑,而服务器的评估,需要根据不同业务系统的特点具体分析。
(1)非复杂业务的普通网站,例如新闻类的,因为比较交互简单,以展现为主,即使PV非常大也不会需要很多台机器。单台Nginx服务器处理静态页面,可以达到几千甚至几万QPS(当然这只是个理论值,算上页面体积大小、宽带等因素,通常达不到的)。
(2)业务复杂的系统,例如携程,淘宝京东等。复杂的用户交互、存储、支付、第三方通信等等,再加上要保证系统稳定和支持容灾,会让机器的需求增加很多倍。将系统剖析出来,对比业务复杂度,然后再对比机器数量才更具有可比性。
另外,机器配置也有好坏,新的服务器性能可能几倍甚至十倍于老机器。
再者,什么样的网站算大型?假设2M带宽,可以承载1万IP在线。网页基本在60K左右,一般人的等待忍耐是3到5秒按照3秒计算每个网页占用的带宽20K/S2M=2048K2048/20=103 左右。如果是5秒计算的话 ,可以承担200来人同时触发。如果页面文件较小 那么可以依次类推。2M带宽 支持300人在线 基本没多大问题。如果每秒能有300人同时触发,那么每分钟则有 1.8万人,及时再低,每秒10人,每分钟也可以承载 600人,按照一般20分钟SESSION失效计算,也有1.2万人的承载能力。这样的网站能够承受1000W人同时在线,基本可以算是一个中型网站了。像新浪,雅虎,校内,qq等都可以算大型网站。中小型的一般像企业的官网都是小型的。
任何一个大型网站都是经历用户积累然后成长,从一台服务器到多台服务器才能构架支撑网站现有数据、用户、页面请求等。大型网站(如淘宝、京东等)的系统架构并不是开始设计就具备完整的高性能、高可用、安全等特性,它总是随着用户量的增加,业务功能的扩展逐渐演变完善的,在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,就连技术人员也从几个人发展到一个部门甚至一条产品线。所以成熟的系统架构是随业务扩展而完善出来的,并不是一蹴而就;不同业务特征的系统,会有各自的侧重点,例如淘宝,要解决海量的商品信息的搜索、下单、支付,例如腾讯,要解决数亿的用户实时消息传输,百度它要处理海量的搜索请求,他们都有各自的业务特性,系统架构也有所不同。
1、如果一个网站访问量很小,比如某小公司的小论坛,同时在线可能只有几个人,并且稳定性和安全性要求比较低,那么一台配置不太好的服务器就够了,数据库、应用服务器全部在上面;
2、再大一点,考虑数据库服务器和应用服务器分离,各置一台服务器,还可以再增加一台做静态请求和动态请求分离;
3、当一台应用服务在高峰时期很吃力以至于严重影响访问质量时,可以考虑增加一台应用服务器做负载均衡来分散压力,同时也提高了稳定性,如果一台应用服务器宕机,还有另外一台来响应请求(前提是负载均衡能做到一台挂了,就把所有请求统统交给另一台);
4、如果安全性要求较高,不能有任何的数据丢失,尤其涉及到钱的问题时,需要备份数据库,那么可以做数据库主从,主机宕机自动切换到从机;
5、如果访问量持续增多,而大量数据读操作非常频繁,写操作相对较少,则这部分数据可以分离出来缓存到专门的服务器,常见的如Memcache、Redis缓存服务器,这样就可以大大减少数据库读写的压力,这是非常有效的减压方式;
6、如果部署了N台缓存服务器后数据库仍然还有压力,可以考虑对数据库进行读写分李,一台master主写,N台slave主读,当然要做好数据的同步;
7、如果该网站有大量的图片或者文件需要管理,那么需要增加图片服务器或文件系统服务器,这些服务器通常是分布式的应用,如Hadoop等,可以使用N台服务器来部署;
8、如果瞬时访问量极大,同时请求数到达了一定数量级时,后台服务仍然非常吃力,而我们对响应实时性要求一般,则可以增加N台消息队列服务器来做缓冲;
9、再有就是上述服务器大规模集群了。。。。可以有N大。。。某些巨头的服务器数量是几十万甚至百万量级的,好几年前Google的服务器数量是两百五十万台。
最后再来说一说对于大型网站的配置推荐。
很多站长在选择服务器时,认为虚拟空间就足够使用了,但实际上不是这样的,当网站的流量不断提升的时候,web服务器的配置需求也会跟着提升。当网站流量达到上万的时候,虚拟服务器基本是不适合使用了。那大型网站在建站的时候应该选用什么样的配置呢?
对于电商网站来说,每天都会有大量的用户访问,进行购买操作,所以服务器需要进行大量的数据请求处理,所以用于电商类型的网站在CPU、内存上的标准就会比较高了。
对于视频类网站,除了用户访问请求和下载数据外,还需要有大硬盘的配置和大带宽的配置,这样才能有效的保障用户在观看时不会卡顿。
对于大型的网站来说无论是视频网站,还是门户企业网站还是电商凭条,在租用服务器时,基本的配置标准,例如CPU、硬盘、内存、带宽、硬防上的配置都是需要我们考虑的,CPU最好是选择8核以上的,内存视频网站的话,不要低于16G。硬盘至少1T,带宽独享100M会更好些。
当然这里推荐的只是一个常规的大型网站所需的配置条件,如果您是极易受到攻击的行业类型,那么服务器防御也是需要考虑进去的。另外,无论您的网站是需要租用服务器还是需要进行服务器托管,都可以联系我们大碗数据,我们会根据您的业务需求综合分析给您推荐最适合您的方案。
原文链接:https://zhuanlan.zhihu.com/p/146857611