不同核心上的node.js的多个实例

Gam*_*uru 6 javascript webserver node.js

我想设置4个不同的node.js实例,每个实例都在自己的核心上.node.js是否在同一个核心上堆叠新实例,还是将它们设置在新核心上?

实例不相关并单独接收请求.我希望cpu负载均匀分布.我无法找到这个问题的明确答案.

Viv*_*pai 7

一般来说,系统会尝试自己动手,以最大限度地利用cpu.但是,如果要定位特定CPU,则应检查TaskSet.它设定了流程的亲和力.

还有几个讨论同一主题的有用问题.看一看.

  1. Upstart:不同核心Nodej上的每个进程

  2. Node.js - 针对cpu核心

  3. 多核机器上的Node.js

  4. 在AmazonEC2的cpu核心和nodejs中

  5. 如何使用多核在云中部署Node.js以实现高可用性

  6. 利用cpu的多节点modlue

还有一个模块Cluster,它对CPU利用率也非常有用.它允许您分叉多个进程以将负载分配给多个核心.


UPDATE


最后,我根据OP部署了类似的东西.


情况1.


  1. 我有一个8核CPU的专用服务器.
  2. 我已经部署了一个单节点线程并使用Cluster模块来共享工作负载(正如pl47ypus PS 所描述的那样:感谢他的回答).
  3. 结果很好,但有时候子线程可能会没有响应,所以我决定尝试旧的过程,我在之前的应用程序中使用过.

案例2.


  1. 相同的服务器,我已经部署了8个具有不同端口的node.js进程.
  2. 然后我把nginx放在这些前面,用工作进程8监听端口80.
  3. 结果优于案例1,也非常容易配置nginx,它也是最稳定的.

我还建议您尝试一些上面提到的解决方案,并在每种情况下继续监控您的系统; 像CPU,内存使用和io.最后,从您的测试中,您将看到针对您的用例的最佳解决方案.每个应用程序都有自己的要求,因此最好尝试查找应用程序真正需要的内容.