浅谈网站服务器的负载能力问题

分类栏目:建站知识

浅谈网站服务器的负载能力问题

普通的架設一臺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數量”為條件來計算相關所需要的資源,這裡的答案隻能是,無法計算。