2012-02-05 66 views
0

我經常看到有多個webserver軟件實例(nginx,apache,mongrel,沒關係)的設置(Rails | Java | PHP | Node.js | nginx | etc ..),每個服務器運行和服務相同的應用程序,而不是一個單一的,「巨大的」實例。爲什麼每個節點運行多個webservers實例?

爲什麼選擇這種方法?對於我來說,爲什麼許多服務於同一個應用程序的小實例比爲了使用最大可用ram和線程而調優的實例要好呢?

爲了讓自己清楚,我經常看到這樣的語句「......我們有10臺服務器,運行< 20個實例一些網絡服務器>每個」。爲什麼不「10臺服務器,運行1個實例的<某些網絡服務器」每個「?

回答

2

運行Web服務器的多個實例只有在單線程(如node.js或mongrel)利用多個CPU內核時纔有意義。

+0

事實上,它畢竟是有意義的。 – 2012-02-06 02:20:14

1

我想補充了史蒂夫的是基於事件的多線程服務器的出色答覆相結合的能夠處理每個線程的請求數量的好處 - 而在同一時間beeing能夠使用所有可用的CPU內核一個系統。

除了CPU內核,有一個單一的程序實例,而不是許多節省內存(重複的代碼和數據)和CPU緩存不斷垃圾。

相關問題