普通的架設一臺Web服務器已經非常簡單,尤其是在Windows平臺上,很多Web服務器軟件都有圖形化的安裝工具和圖形化的管理工具。然而,如何使得架設的Web服務器能真正達到承擔非常高的負載 ?
對于任何網站,其提供的內容都可以分為靜態(tài)網頁或動態(tài)網頁兩種,由于網站可以提供動態(tài)內容,整個網站的負載就不但包括Web服務器的負載,而且還要包括后端應用軟件(CGI,PHP等),數(shù)據(jù)庫服務器的負載等。此時如何提高整個站點的負載能力就相對復雜。通常的做法是使用垂直劃分的方法,將不同的功能劃分到不同的服務器上去,這是因為為了讓Web服務器達到最佳的性能和負載能力,需要針對不同目的進行調整服務器參數(shù)設置,提供靜態(tài)網頁的服務器和提供動態(tài)訪問的服務器有不同的要求。
雖然越來越多的網站中,動態(tài)內容變得非常重要,但是一個網站中大多數(shù)訪問還是對于靜態(tài)數(shù)據(jù)的訪問。而且,即使對于一個提供動態(tài)內容Web服務器來講,它除了要滿足后端應用程序的性能要求之外,其他需要注意的問題和提供靜態(tài)內容的Web服務器是相同的。很多情況下,還會特別要求服務器能提供優(yōu)秀的靜態(tài)數(shù)據(jù)訪問能力,例如提供圖片、音樂、視頻片段的服務器。在另一方面,對于訪問量較大的站點,通常使用會使用負載均衡的技術,通過使用多臺服務器構成的服務器集群來分擔負載。這種服務器集群或負載均衡的技術已經相當成熟,尤其對于大型網站,其應用非常廣泛。這種方法中每臺服務器的功能相同,因此可以稱為水平劃分的方式。
一個真正的高負載站點通常綜合利用以上的方法,將負載分配到不同的服務器上,以便解決服務器的負載問題。然而,對網站的訪問隨機性相當大,并且還會隨著一個網站內容的豐富,訪問量會迅速增加。因此,一個系統(tǒng)管理員需要真正了解Web站點的負載能力,以便能夠滿足不斷增加的訪問者的訪問。
對于下列問題或者類似問題: 1、某VPS能支持多少PV?
2、某VPS能支持多少IP?
3、某VPS能支持多少訪問量?
4、某VPS能支持多少人在線?
5、xxx IP需要哪個VPS?
6、xxx PV需要哪個VPS?
7、xxx 人在線需要哪個VPS?
統(tǒng)統(tǒng)沒有答案。
沒有答案的原因: (1)一次靜態(tài)(HTML、JS、圖片等)HTTP請求和一次動態(tài)(ASP、PHP等)HTTP請求消耗的資源(CPU、內存等)相差數(shù)倍到數(shù)十倍。
(2)注意上面的的是一次HTTP請求,而不是一次頁面訪問(1PV),每次訪問產生的HTTP請求數(shù)量可能相差數(shù)倍。
(3)1個IP產生的PV可能相差數(shù)倍,可能你的網站IP和PV訪問比例固定進而能根據(jù)根據(jù)IP量計算PV數(shù)量,即便能算出來,也沒什么意義,原因見綜上和綜下所述。
(4)不同的網站程序,負載能力不同,一般來說,靜態(tài)HTML消耗的資源遠小于動態(tài)程序(PHP、ASP等)。不同的靜態(tài)網頁訪問資源占用情況大致相同,不同的動態(tài)網站程序消耗的資源差距由于基數(shù)較大導致結果相對也大。
(6)相同的網站程序,不同的設置,消耗的資源不同。以Discuz和DedeCMS為例,網站后臺與負載有關的設置都有提示。
(7)不同的Web服務器,負載能力不同。一般來說,Linux上常用的Web服務器資源消耗情況如下,APACHE > Lighttpd ≈ Nginx。
(8)相同的服務器環(huán)境(Web、DB),不同的設置參數(shù),消耗的資源可能不同。
*注:以上每條中所講的“相同”和“不同”都是假定其他因素完全一致的情況下(很明顯,這樣的假定僅限于理論,所以完全不能用于實際中的計算)。
基于以上原因,部分用戶想以“相同的網站程序”、“某一PV或IP數(shù)量”為條件來計算相關所需要的資源,這里的答案只能是,無法計算。
申請創(chuàng)業(yè)報道,分享創(chuàng)業(yè)好點子。點擊此處,共同探討創(chuàng)業(yè)新機遇!