浅谈网站服务器的负载能力问题
普通的架设一台web服务器已经非常简单,尤其是在windows平台上,很多web服务器软件都有图形化的安装工具和图形化的管理工具。然而,如何使得架设的web服务器能真正达到承担非常高的负载 ?
对于任何网站,其提供的内容都可以分为静态网页或动态网页两种,由于网站可以提供动态内容,整个网站的负载就不但包括web服务器的负载,而且还要包括后端应用软件(cgi,php等),数据库服务器的负载等。此时如何提高整个站点的负载能力就相对复杂。通常的做法是使用垂直划分的方法,将不同的功能划分到不同的服务器上去,这是因为为了让web服务器达到最佳的性能和负载能力,需要针对不同目的进行调整服务器参数设置,提供静态网页的服务器和提供动态访问的服务器有不同的要求。
虽然越来越多的网站中,动态内容变得非常重要,但是一个网站中大多数访问还是对于静态数据的访问。而且,即使对于一个提供动态内容web服务器来讲,它除了要满足后端应用程序的性能要求之外,其他需要注意的问题和提供静态内容的web服务器是相同的。很多情况下,还会特别要求服务器能提供优秀的静态数据访问能力,例如提供图片、音乐、视频片段的服务器。在另一方面,对于访问量较大的站点,通常使用会使用负载均衡的技术,通过使用多台服务器构成的服务器集群来分担负载。这种服务器集群或负载均衡的技术已经相当成熟,尤其对于大型网站,其应用非常广泛。这种方法中每台服务器的功能相同,因此可以称为水平划分的方式。
一个真正的高负载站点通常综合利用以上的方法,将负载分配到不同的服务器上,以便解决服务器的负载问题。然而,对网站的访问随机性相当大,并且还会随着一个网站内容的丰富,访问量会迅速增加。因此,一个系统管理员需要真正了解web站点的负载能力,以便能够满足不断增加的访问者的访问。
对于下列问题或者类似问题:
1、某vps能支持多少pv?
2、某vps能支持多少ip?
3、某vps能支持多少访问量?
4、某vps能支持多少人在线?
5、xxx ip需要哪个vps?
6、xxx pv需要哪个vps?
7、xxx 人在线需要哪个vps?
统统没有答案。
没有答案的原因:
(1)一次静态(html、js、图片等)http请求和一次动态(asp、php等)http请求消耗的资源(cpu、内存等)相差数倍到数十倍。
(2)注意上面的的是一次http请求,而不是一次页面访问(1pv),每次访问产生的http请求数量可能相差数倍。
(3)1个ip产生的pv可能相差数倍,可能你的网站ip和pv访问比例固定进而能根据根据ip量计算pv数量,即便能算出来,也没什么意义,原因见综上和综下所述。
(4)不同的网站程序,负载能力不同,一般来说,静态html消耗的资源远小于动态程序(php、asp等)。不同的静态网页访问资源占用情况大致相同,不同的动态网站程序消耗的资源差距由于基数较大导致结果相对也大。
(6)相同的网站程序,不同的设置,消耗的资源不同。以discuz和dedecms为例,网站后台与负载有关的设置都有提示。
(7)不同的web服务器,负载能力不同。一般来说,linux上常用的web服务器资源消耗情况如下,apache > lighttpd ≈ nginx。
(8)相同的服务器环境(web、db),不同的设置参数,消耗的资源可能不同。
*注:以上每条中所讲的“相同”和“不同”都是假定其他因素完全一致的情况下(很明显,这样的假定仅限于理论,所以完全不能用于实际中的计算)。
基于以上原因,部分用户想以“相同的网站程序”、“某一pv或ip数量”为条件来计算相关所需要的资源,这里的答案只能是,无法计算。
上一篇: 让Python输出更漂亮
下一篇: 2017年5个网站SEO站群类型推荐