我经常看到(Rails )的设置(Rails、Java / PHP、PHP、Node.js、I、I等)在有许多webserver软件实例(nginx、apache、mongrel,没关系)的地方,每个服务器运行并服务于同一个应用程序,而不是一个“巨大”的实例。
为何要选择这样的方法呢?对于我来说还不清楚为什么许多为同一个应用程序服务的较小的实例可能比一个优化为使用最大可用的ram和线程的实例更好。
为了明确起见,我经常看到这样的语句:“.我们有10个服务器,每个服务器运行20个实例”。为什么不"10服务器,每个运行一个实例“?
发布于 2012-02-05 13:48:12
运行一个CPU服务器的多个实例只有在单线程(如node.js或mongrel)利用多个CPU核的情况下才有意义。
发布于 2012-02-25 02:42:59
我想补充史蒂夫的优秀回答,一个基于事件的多线程服务器结合了能够处理每个线程的许多请求的好处,同时能够使用系统的所有可用CPU核心。
除了CPU内核之外,拥有一个程序实例而不是多个实例可以节省内存(重复的代码和数据)和CPU缓存。
https://stackoverflow.com/questions/9153043
复制