2011-12-12 28 views
3

我被約定爲我的客戶創建一個羣體克隆網站。它使用MYSQL在PHP中完成,我計劃將其託管在Amazon EC2服務器上。我的客戶告誡我說,他將對大約10K個客戶進行電子郵件爆炸,這樣我的網站就能夠處理來自這些電子郵件的大量點擊。我有兩個問題:LAMP服務器需要爲繁忙流量設置哪些配置?

1)我應該選擇哪一個亞馬遜的服務器實例?現在我正在一個小實例中,我想知道是否應該在電子郵件爆炸的一週內將其升級爲大型實例?

2)什麼是需要一個LAMP服務器設置的配置。例如,亞馬遜服務器,Apache,PHP或MySQL是否具有我應該調整的最大連接數限制?

感謝

回答

3

從技術上講,把靜態網頁,PHP的和數據庫在同一實例是不是如果你想要一個高度可擴展的系統採取的最佳路線。也就是說,如果預算不足,高可用性不成問題,那麼您可能會在實踐中脫身。

一種選擇,就像你說的,是在一個更大尺寸的實例爲您所期望交通繁忙時段,重新啓動服務器。通常這工作得很好。你的問題是你不知道將要發生的交通的確切模型。到達時,您將獲得一定比例的電腦,並直接進入該網站。其餘的將隨着時間的推移而流淌。讓您的客戶在大多數用戶在牀上時發送電子郵件,可以在某種程度上幫助您,如果可能的話,避免浪涌。

如果我們假設有2000名用戶在10分鐘內擊中您的網站,我懷疑一個未經優化的網站可能會應付,那裏很可能會有一個愚蠢的瓶頸。數據庫通常是個問題,大小適中的內存緩存通常有幫助。

這就是說,有很多由亞馬遜和GAE提供的架構設計和功能,可以讓您在設計正確的後端時不必擔心可伸縮性,它可以處理對你來說大部分。

如果拆分數據庫從Web服務器的時候,你將能夠在需求把Web服務器實例背後的彈性負載均衡和有規模的實例。除了數據庫實例之外,還存在用於擴展數據庫的標準模式,儘管沒有任何特殊的功能可以幫助您實現這一點。

你可能想嘗試Amazon mechanical turk,基本上很多人會執行通常微不足道的任務(如導航到網頁點擊此等),通常收取很少的費用。模擬真實流量並不是一個好方法。

這就是說,你可能要重複幾次,所以你是一個負載測試工具更好。請記住,你不能加載測試時間分片實例與另一個時間分片實例...

+0

這是非常有用的!謝謝 –