增加不斷增長的網站的負載能力

增加不斷增長的網站的負載能力

我的網站目前在專用 Web 伺服器(使用 LiteSpeed)和專用 MySQL 資料庫伺服器上運行。這是一個基於下載的網站,擁有大量用戶生成的內容,可以串流和下載,還有數千個縮圖和靜態內容。

我正處於網頁伺服器無法再處理流量的階段,因此考慮到大量可下載內容,我正在尋找如何最好地增加容量。

我的主機建議在第二個 Web 伺服器上鏡像所有內容,並使用 DNS Made Easy 在它們之間分配負載,或在兩個 Web 伺服器前面擁有我自己的負載平衡器(使用 ldirector)。

誰能建議上述方法是否為最佳選擇?有人有使用 DNS Made Easy 和/或 ldirector 的經驗嗎?

我將不勝感激任何幫助。

答案1

首先也是最重要的,你必須先了解瓶頸所在,然後才能取得任何進展。

主機會很快就推薦新硬件,但在許多情況下,除非明確您有硬體限制,否則新硬體可能不會產生顯著的改進。

如果不明智地添加硬件,其回報就會遞減。從一台伺服器增加到兩台伺服器可能會使您的資源增加一倍,但您需要從 2->4、4->8 獲得相同的提升。

監控和測量

如果您不監視系統指標、載入時間和其他數據,那麼這是第一個開始的地方。 Munin 和 systat 等免費工具非常適合伺服器解決方案。類似的工具http://Browsermob.comhttp://webpagetest.org可以為您提供以使用者為中心的指標。

路段流量

通常,將複雜媒體網站直接移植到另一台伺服器並不是很有效。通常,透過細分流量,您會獲得卓越的投資回報。

例如,我們的客戶有一個非常繁忙的 Flash 遊戲網站(每天有數百萬次點擊)。我們已將 Flash 遊戲卸載到運行 Nginx 的廉價伺服器池中。這些系統每月可產生 TB 的流量。這些是入門級的盒子,它們提供的只是靜態內容。

現在在成本方面,這兩個入口盒加起來比主伺服器便宜 20%。我們的容量提高了 4 倍以上。如果我們剛剛克隆主伺服器並進行負載平衡,我懷疑最多只能提高 1.5-1.8 倍。

簡而言之,花一些精力來了解效能問題的本質可以為您節省很多錢。

DNS 變簡單

這是一個 DNS 解決方案,並沒有真正解決負載平衡問題。他們可能正在談論循環 DNS。不太確定為什麼現階段將其納入考慮範圍。

導演

這是一個管理LVS叢集中節點的工具。再次不確定為什麼建議這個特定項目。通常我們只使用負載平衡器(硬體或類似 Nginx/HA-Proxy 的東西)並將流量路由到適當的後端伺服器。

答案2

基於 DNS 的負載平衡效果不佳,原因如下:

  1. 您可以控制伺服器的存取方式,並且不能在兩台伺服器之間以不同或均勻的方式分配流量。
  2. 更重要的是,這種負載平衡方式無法辨識伺服器故障。因此,如果其中一台伺服器意外故障,您將失去部分流量。
  3. DNS 快取使情況變得更糟。

我更喜歡使用更聰明的負載平衡技術,例如ldirectorhaproxy。這種類型的負載平衡可讓您根據伺服器規格並使用多個因素(負載、連線數等)來分配流量。

還有一件更重要的事情要注意。你說你在伺服器上有一個 mysql DB 和使用者內容。如果您要在兩台伺服器之間分配流量,則需要在兩台伺服器之間有同步機制。否則,使用者每次造訪不同的伺服器時將不會總是看到相同的資料。

相關內容