繁体   English   中英

Node.js子进程分叉:CPU亲和力

[英]Node.js child process fork: CPU affinity

我想在Node.js中使用child_process.fork函数来生成一个新进程。 此示例还可以使用spawn函数。

为了确保这些子进程均匀地利用计算机上的所有内核,我想设置它们的CPU亲和力,从而迫使它们迁移到所需的内核。

我知道如何在C和终端中执行此操作,但是如何在Node.js中执行此操作?

首先,我说设置进程的处理器亲和力可能不是一个好主意。 每个节点进程都有许多线程(JS运行的主要V8线程以及用于执行I / O和其他本机操作的libuv线程),并且将节点进程限制为单个内核必然会减慢速度。

不执行任何操作并让OS调度程序处理您的分叉进程及其线程可能会产生更好的性能。

当然,真正了解的唯一方法是对负载下的系统进行基准测试。 测试不同级别的负载(轻,中,高),看看性能如何。


我可以想到两种设置进程关联性的方法:

  1. 丑陋:使用exec()运行taskset集以设置您的进程的亲和力。 (对当前进程使用process.pid ,或者从fork()返回的ChildProcesspid属性使用。)

  2. 更好的方法:编写与平台API的本机绑定。 (你会怎么做的在C) 该模块会出现这样做; 是旧的,所以它可能会或可能无法正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM