我希望设置4个不同的Node.js实例,每个实例都在自己的核心上运行。 Node.js是否会将新实例堆叠在同一核心上,还是会将它们设置在新的核心上?
这些实例是无关的并且单独接收请求。我希望CPU负载均匀分布。 我没有找到对这个问题的确定答案。
这些实例是无关的并且单独接收请求。我希望CPU负载均匀分布。 我没有找到对这个问题的确定答案。
还有一个模块Cluster,它也可以非常有用地利用CPU。 它允许您分叉多个进程以将负载分配到多个核心。
更新
最后,我根据 OP 的要求部署了类似的东西。
案例1。
案例2。
我建议您尝试其中一些解决方案,并在每种情况下监视系统,例如CPU、内存使用和io。最终,通过测试,您将找到最适合您用例的最佳解决方案。每个应用程序都有自己的要求,因此最好尝试并找出您的应用程序的真实需求。
试试这个:
var cluster = require('cluster')
, numCPUs = require('os').cpus().length;
if(cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('exit', function(worker, code, signal) {
console.log('worker ' + worker.pid + ' died');
});
return;
}
完整代码请点击这里
另外,可以在这里查看