首先,我會建議確保服務器提供的每個資源都設置適當的緩存控制標頭。我們的目標是確保真正動態的內容每次都得到全新的服務,並且儘可能從其他人的緩存中獲取任何穩定或靜態的內容。爲什麼要向每個AOL客戶提供產品圖像,然後才能將其交付給第一個客戶,並讓AOL將其交付給所有其他客戶?
如果您當前在同一個框上運行Web服務器和dbms,則可以查看將dbms移動到專用數據庫服務器上。
完成上述操作後,您需要開始測量細節。什麼資源會首先達到其容量?
例如,如果Web服務器是在或接近容量,而數據庫服務器大多位於怠速運轉,這是沒有意義的切換數據庫或實現複製等
如果Web服務器坐在而DBMS大多閒置不斷查看切換到負載平衡Web服務器集羣是沒有意義的。
首先照顧簡單的事情。
如果dbms可能是瓶頸,請確保您的數據庫具有正確的索引,以便在查找期間獲得快速訪問時間,並且不會浪費更新過程中不必要的時間。確保dbms從表本身登錄到不同的物理介質。確保應用程序不會發出任何浪費的查詢等。確保您不會對您的交易數據庫運行任何昂貴的分析查詢。
如果網絡服務器可能是瓶頸,那麼可以查看它在哪裏花費大部分時間,並通過更改應用程序或實施新的緩存策略等方式來減少工作量。確保您沒有做任何事情可以防止你從一臺服務器轉移到多臺具有負載平衡器的服務器。
如果您已經注意到了上述情況,那麼您將更好地準備遷移到多個Web服務器或數據庫服務器。您將更好地瞭解決定是使用複製來縮放數據庫還是切換到完全不同的數據模型等。
我認爲現在考慮Cassandra/Hadoop類型的東西還爲時過早,早期優化是所有惡意的根源,如果您的網站成爲流行的oneday,所有的東西都會隨之而來。 – tszming 2010-08-12 17:04:11
我建議你分享一些你所指的交通類型,包括峯值和正常情況。 – eglasius 2010-08-26 15:45:43
IIRC Hadoop用於離線數據處理,因此如果不進行一些細緻的工作,它可能不會被使用。 OTOH我知道有一個網站可以做這種工作。 – BCS 2010-09-01 13:46:25