我的網站目前在專用 Web 伺服器(使用 LiteSpeed)和專用 MySQL 資料庫伺服器上運行。這是一個基於下載的網站,擁有大量用戶生成的內容,可以串流和下載,還有數千個縮圖和靜態內容。
我正處於網頁伺服器無法再處理流量的階段,因此考慮到大量可下載內容,我正在尋找如何最好地增加容量。
我的主機建議在第二個 Web 伺服器上鏡像所有內容,並使用 DNS Made Easy 在它們之間分配負載,或在兩個 Web 伺服器前面擁有我自己的負載平衡器(使用 ldirector)。
誰能建議上述方法是否為最佳選擇?有人有使用 DNS Made Easy 和/或 ldirector 的經驗嗎?
我將不勝感激任何幫助。
答案1
首先也是最重要的,你必須先了解瓶頸所在,然後才能取得任何進展。
主機會很快就推薦新硬件,但在許多情況下,除非明確您有硬體限制,否則新硬體可能不會產生顯著的改進。
如果不明智地添加硬件,其回報就會遞減。從一台伺服器增加到兩台伺服器可能會使您的資源增加一倍,但您需要從 2->4、4->8 獲得相同的提升。
監控和測量
如果您不監視系統指標、載入時間和其他數據,那麼這是第一個開始的地方。 Munin 和 systat 等免費工具非常適合伺服器解決方案。類似的工具http://Browsermob.com和http://webpagetest.org可以為您提供以使用者為中心的指標。
路段流量
通常,將複雜媒體網站直接移植到另一台伺服器並不是很有效。通常,透過細分流量,您會獲得卓越的投資回報。
例如,我們的客戶有一個非常繁忙的 Flash 遊戲網站(每天有數百萬次點擊)。我們已將 Flash 遊戲卸載到運行 Nginx 的廉價伺服器池中。這些系統每月可產生 TB 的流量。這些是入門級的盒子,它們提供的只是靜態內容。
現在在成本方面,這兩個入口盒加起來比主伺服器便宜 20%。我們的容量提高了 4 倍以上。如果我們剛剛克隆主伺服器並進行負載平衡,我懷疑最多只能提高 1.5-1.8 倍。
簡而言之,花一些精力來了解效能問題的本質可以為您節省很多錢。
DNS 變簡單
這是一個 DNS 解決方案,並沒有真正解決負載平衡問題。他們可能正在談論循環 DNS。不太確定為什麼現階段將其納入考慮範圍。
導演
這是一個管理LVS叢集中節點的工具。再次不確定為什麼建議這個特定項目。通常我們只使用負載平衡器(硬體或類似 Nginx/HA-Proxy 的東西)並將流量路由到適當的後端伺服器。
答案2
基於 DNS 的負載平衡效果不佳,原因如下:
- 您可以控制伺服器的存取方式,並且不能在兩台伺服器之間以不同或均勻的方式分配流量。
- 更重要的是,這種負載平衡方式無法辨識伺服器故障。因此,如果其中一台伺服器意外故障,您將失去部分流量。
- DNS 快取使情況變得更糟。
我更喜歡使用更聰明的負載平衡技術,例如ldirector
或haproxy
。這種類型的負載平衡可讓您根據伺服器規格並使用多個因素(負載、連線數等)來分配流量。
還有一件更重要的事情要注意。你說你在伺服器上有一個 mysql DB 和使用者內容。如果您要在兩台伺服器之間分配流量,則需要在兩台伺服器之間有同步機制。否則,使用者每次造訪不同的伺服器時將不會總是看到相同的資料。