Bluemix上的Clustering Node.js

Bluemix上的Clustering Node.js,node.js,ibm-cloud,Node.js,Ibm Cloud,Bluemix上的Node.js应用程序是否会自动扩展以在多个处理器上运行,或者我是否需要自己使用Node的群集API来实现?如果我使用集群,会有多个CPU可用吗 简短回答:您需要使用节点集群模块来充分利用每个实例中的所有核心。或者,您也可以增加实例的数量 详细回答:推送到bluemix的应用程序的每个实例都在warden容器中运行。资源控制由linux cGroup管理。每个实例的核心数不是您可以控制的。在Bluemix上运行快速测试时,os.cpus()显示了4个内核。如果您想利用node.

Bluemix上的Node.js应用程序是否会自动扩展以在多个处理器上运行,或者我是否需要自己使用Node的群集API来实现?如果我使用集群,会有多个CPU可用吗

简短回答:您需要使用节点集群模块来充分利用每个实例中的所有核心。或者,您也可以增加实例的数量

详细回答:推送到bluemix的应用程序的每个实例都在warden容器中运行。资源控制由linux cGroup管理。每个实例的核心数不是您可以控制的。在Bluemix上运行快速测试时,os.cpus()显示了4个内核。如果您想利用node.js应用程序的一个Bluemix实例(warden容器)中的所有4个核心,那么您应该使用nodes集群模块


请记住,您还可以增加实例的数量(水平扩展),这可能会根据您使用外部服务的瓶颈实现近似线性的结果。因此,如果您有3个实例,每个实例都有4个核心,并且内置的负载平衡器在这3个实例之间分配流量。

Ram建议的混合模型是有意义的。您可能需要进行一些基准测试,以确定希望在一个应用程序容器中运行多少个进程。您可以使用“cf app”来监视每个应用实例在负载下的CPU利用率,如果它没有完全消耗CPU,那么产生更多进程可能是有意义的

但是,请注意- *CPU可能不是瓶颈,在这种情况下,在应用程序容器中生成更多进程或扩展更多应用程序容器实例将无济于事; *在一个容器中生成的进程越多,它消耗的内存就越多,因此请确保生成的进程不要太多,也不要超过分配的内存数(否则应用程序容器将被杀死)