【问题标题】:Clustering Node.js on Bluemix在 Bluemix 上集群 Node.js
【发布时间】:2015-04-22 16:07:12
【问题描述】:

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

【问题讨论】:

    标签: node.js ibm-cloud


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-07-08
        • 2014-06-01
        • 1970-01-01
        • 2016-03-03
        • 2016-07-13
        • 2017-10-02
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多