我正處於爲我們的生產系統(Moodle)規劃虛擬化環境的早期階段。該層是相對簡單:規劃虛擬化環境
網 - Apache 2.2的 數據庫 - MySQL的5 PHP 5.2
我的問題是,什麼是分佈在上面的層之間phycsical服務器普遍接受的方法呢?在這種情況下,我們計劃擁有2臺物理服務器。我應該將我的Web服務器集羣保留在另一個物理服務器和數據庫集羣上嗎?或者,在兩臺服務器上覆制一個完整的堆棧,以防萬一出現故障?任何對此的見解對我來說都是很有幫助的。
謝謝, Cathal。
我正處於爲我們的生產系統(Moodle)規劃虛擬化環境的早期階段。該層是相對簡單:規劃虛擬化環境
網 - Apache 2.2的 數據庫 - MySQL的5 PHP 5.2
我的問題是,什麼是分佈在上面的層之間phycsical服務器普遍接受的方法呢?在這種情況下,我們計劃擁有2臺物理服務器。我應該將我的Web服務器集羣保留在另一個物理服務器和數據庫集羣上嗎?或者,在兩臺服務器上覆制一個完整的堆棧,以防萬一出現故障?任何對此的見解對我來說都是很有幫助的。
謝謝, Cathal。
我們使用單獨的(虛擬)服務器,但是每個服務器都維護單獨的堆棧,這是因爲開銷很小,並且如果我們想要向上/向下擴展則允許靈活性。然而,這不是回退,因爲如果一臺服務器如此破碎以至於無法訪問網絡,那麼您可能無法將數據從第二臺服務器上取下,以便它成爲有用的替代品。使用適當的備份進行回退,並定期從中恢復。
Moodle通常在PHP端而不是在數據庫端,我們大致看到3.5:1 PHP:當MySQL在不同的機器上時,它們會被加載。考慮到這一點,您需要考慮一臺服務器的最大容量是多少:如果機器之間沒有網絡開銷,那麼您將獲得最佳性能,因此越大越好。如果你不能用一個做,那麼製作2個VMS,一個大一點用於PHP,另一個小一點用於MySQL,這是最好的選擇,但是要根據你的特定設置(使用Apache JMeter)進行負載差異基準測試。我們有兩個4-CPU/8GB的虛擬機,一個用於PHP,另一個用於MySQL(儘管DB很少超過30%的CPU),我們最大的安裝涉及70,000個用戶左右。這允許通過Apache約400個併發連接。但是,我們正在使用大型虛擬機場,並且可以容易地在2到16個CPU之間上下縮放,因此如果需要靈活性,您可能希望考慮一臺怪獸機器。
有關Moodle性能的更多信息,請查看here,特別是在'可伸縮性'下。