3

我有一個使用MySQL,MongoDB,NodeJS(和SocketIO)的Rails應用程序。現在,應用程序(所有內容)都託管在1個框中。我想知道當用戶數量增長時我該怎麼做。我應該考慮哪些因素以確定是否需要在另一個框中託管一個單獨的元素(例如,每個單獨的框中的MySQL,Node,Mongo)。我應該讓這個單一的盒子變大嗎?有沒有一種最佳實踐方法可以與我一起使用?多臺服務器或一臺服務器中的所有內容?

如果你們能爲我提供參考,指南,關於這個話題的研究。請做。在部署和服務器配置方面,我是超級noob。

回答

3

簡短的回答是把所有東西都搬到自己的盒子裏。較長的答案是:這取決於您的應用程序的使用情況。

我建議您使用Nagios或類似軟件來監控應用程序的資源利用率 - 即每個服務使用多少CPU和RAM。當每個人開始佔用過多資源(並且頁面加載速度受到負面影響)時,請將其移至其自己的框中。

然後繼續監視那個盒子,必要時加強或碎片化。

high scalability blog非常適合閱讀其他人的作品。

4

我們在不久前的工作中遇到了這種困境,發現僅僅升級到更強大的單箱就足夠了,並且會給我們留出最多3-4倍的空間。

最重要的是識別潛在的瓶頸。

在我們的案例中有2個瓶頸。磁盤I/O和數據庫利用內存的能力。

在我們的新服務器上,我們將硬盤陣列配置爲最大化磁盤I/O,並且我們升級了數據庫軟件以允許其使用更多內存。事實上,DBMS現在將整個數據庫保存在內存中,並且只根據需要對磁盤執行寫操作。這顯着提高了性能。

相關問題