淺談網站伺服器的負載能力問題

126雲發表於2021-01-17

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69957453/viewspace-2750572/,如需轉載,請註明出處,否則將追究法律責任。

相關文章