如何启动节点进程,针对特定的CPU核心?
我见过节点集群,但我有兴趣在不同的核心上启动两个不同的进程.
我假设从命令行启动节点时有一种方法可以做到这一点,即:
节点myapp.js
如果存在差异,我有兴趣知道如何在Windows和Linux中执行此操作.
Dav*_*son 13
一般来说,调度程序在没有任何帮助的情况下会做得很好.在野外,我只看到了一个重要的情况....
我们在一个8核盒子上部署了一个节点服务,在负载测试期间我们做了最奇怪的观察......服务实际上比7个工作人员的表现更好而不是8个.稍后调试一下我们发现所有网络中断都是由核心0处理.我使用了15个工作程序,因此与其他核心相比,core0将拥有1/2的负载份额.最终,我认为我们最终选择了7名员工,因为它更简单,更可预测,而且复杂性不值得理论吞吐量提高约7%.
话虽这么说,在linux上设置CPU亲和力:
$ taskset -pc 3089
pid 3089's current affinity list: 0,1
$ taskset -p 3089
pid 3089's current affinity mask: 3 # core 0 = 0x1, core 1 = 0x2
$ taskset -pc 1,2,3 3089
pid 3089's current affinity list: 0,1
pid 3089's new affinity list: 1
Run Code Online (Sandbox Code Playgroud)