Hosting

託管非常高頻寬的站點

  • September 1, 2009

我的任務是確定每月將吸引超過 1000 萬獨立訪問者的網站的基礎架構要求。這個網站將在大小內容明智的幾個演出。我馬上就知道所有的互動內容都會放在 CDN 上,但是後端呢?該站點還將附加一個 CMS,這意味著任何雙伺服器設置都需要集群,我猜也是負載平衡的。只是想要您可能有的任何建議。

添加更多細節。我們很可能會使用 webmux 負載均衡器。

可悲的是,在您上線之前,您不知道要修復什麼。如果沒有一些數據來支持您的決定,就很難把錢放在正確的地方。我會推薦容量規劃的藝術來了解你應該做什麼來規劃你的容量。但一般規則是監控一切。你想要大量的圖表。如果你看不到哪裡出了問題,你就沒有機會解決它。不要將監控留到最後一分鐘。了解您的網站目前的表現以及它在過去一天、一個月或一年中的表現是多麼重要,我怎麼強調都不為過。我們使用 munin 進行繪圖,因為它可以快速啟動和執行。其他人使用 Ganglia 和 Cacti 效果很好。

但是,您可以採取各種措施來提高生存機會。

1)複製一切。很多。您希望能夠在遇到問題的地方添加更多硬體。您不想購買更大的硬體來替換太慢的硬體。查看負載平衡您的應用程序伺服器。看看使用主/從數據庫設置,其中讀取來自您的從屬伺服器並寫入您的主伺服器。您說過您將大多數媒體儲存在 CDN 上。好的。

  1. 避免在數據庫中儲存任何暫時的東西。數據庫對於臨時數據來說太慢了,您希望它們服務於其他請求。

  2. 盡可能避免伺服器端狀態。對於伺服器端狀態,您將不得不在 Web 伺服器之間進行某種共享會話複製,從而限制您添加更多硬體的能力,或者您需要使用粘性會話,這將起作用,但可能導致負載不均和會話死亡如果你的伺服器死了。

4)記憶體一切。使用 memcached 在數據庫和應用程序之間記憶體數據。如果您儲存多個查詢結果的數據,它會更有效。在 Web 層前使用記憶體。像 apache 的 mod_cache 或反向代理模式下的 squid 之類的東西。

  1. 介紹您的網站。找到慢的地方。

6)配置您的html。很大一部分使用者感知到的網路速度慢是在前端。高性能網站有很多有用的技術。Yahoo 的 YSlow firefox 擴展也很有用。

我可以推薦 Building Scalable Web SitesHigh Scalability部落格。

引用自:https://serverfault.com/questions/53238