什麼是重負載 LAMP 應用的最佳硬體配置
我需要為大量並髮使用者執行 Linux-Apache-PHP-MySQL 應用程序(Moodle 電子學習平台)——我的目標是 5000 個使用者。並發我的意思是 5000 人應該能夠同時使用該應用程序。“工作”不僅意味著數據庫讀取,還意味著寫入。
該應用程序不是很典型,因為它在數據庫上進行了大量插入/更新,因此記憶體技術沒有太大幫助。我們正在使用 InnoDB 儲存引擎。此外,編寫應用程序時並沒有考慮到性能。例如,一個 Apache 執行緒通常佔用大約 30-50 MB 的 RAM。
我很想知道需要什麼硬體來建構能夠處理這種負載的可擴展配置。
我們現在使用兩個 HP DLG 380 和兩個 4 核處理器,它們能夠處理低得多的負載(通常是 300-500 個並髮使用者)。投資這種盒子並使用它們建構集群是否合理,還是使用一些更高端的硬體更好?
我特別好奇
- 需要多少台和多強大的伺服器(處理器/核心的數量,RAM 的大小)
- 應該使用什麼網路設備(什麼樣的交換機,網卡)
- 所需的任何其他硬體,例如特定的磁碟儲存解決方案等
另一件事是如何將所有東西放在一起,這就是最優化的架構。使用 MySQL 進行集群相當困難(人們抱怨 MySQL 集群,甚至在 Stackoverflow 上也是如此)。
光碟。正確的 RAID 控制器後面有很多 FAST 磁碟。我個人使用的 SuperMicro 2 機架單元籠可容納 24 個 2.5" 光碟,以及 WD Velociraptor 10k RPM 光碟 - 對我來說已經足夠了。您可以輕鬆堆疊這些盒子以處理更多光碟 - 我使用的 Raid 控制器(Adaptec 5805 ) 可以處理大約 190 個光碟。當談到高端數據庫時,在插入和更新中,光碟將是您的問題。
獲取其中的 X 個(x > 1)以實現冗餘並在數據庫方面對它們進行主/從(這裡沒有 mySQL 專家)。
網路:集群內部可能為 1gbit。在您使用 10gbit 之前 - 看看 Infiniband (12gbit)。使用比使用 10gbit 乙太網更便宜且延遲更好的合適的板。
然後使用較小的/其他盒子作為前端。supermicro 和 Tyan 都有多節點籠 - 您可以獲得一個 2 機架單元系統,即 4 台獨立電腦,每台電腦具有 2 個處理器。集群前端;)感謝天堂的現代處理器可以處理大量的 RAM,因此 50mb / apache 程序從那方面來說並沒有那麼糟糕。習慣使用 32 或 64 GB 記憶體的機器;)
或者,您可能想為前端尋找 nito 刀片,但我永遠無法從中獲得經濟意義(太貴了,加上籠子 - 你好?)。