我应该在node.js中使用多少子进程?

我应该在node.js中使用多少子进程?,node.js,concurrency,fork,comet,Node.js,Concurrency,Fork,Comet,我的问题很简单。不过,可能需要回答不同的变量(我猜) 我正在玩node.js,我正在考虑如何在多核架构中使用它 最新版本为多进程编程提供了child\u process.fork()和child.spawn()方法。我读过一篇非常好(但过时)的文章,介绍如何将Node.js用作大型Comet服务器。现在nodejs提供了多进程编程,我真的不知道应该生成多少进程来处理大量请求(假设我的服务器只在一台机器上运行)。是否有一种方法可以选择做相同工作的“最好”(或至少是好)数量的子进程 任何链接到入门指

我的问题很简单。不过,可能需要回答不同的变量(我猜)

我正在玩node.js,我正在考虑如何在多核架构中使用它

最新版本为多进程编程提供了
child\u process.fork()
child.spawn()
方法。我读过一篇非常好(但过时)的文章,介绍如何将Node.js用作大型Comet服务器。现在nodejs提供了多进程编程,我真的不知道应该生成多少进程来处理大量请求(假设我的服务器只在一台机器上运行)。是否有一种方法可以选择做相同工作的“最好”(或至少是好)数量的子进程

任何链接到入门指南将不胜感激


谢谢

Node.js官方文档提供了一个如何使用集群的示例:

var cluster = require('cluster');
var http = require('http');
var numCPUs = require('os').cpus().length;

if (cluster.isMaster) {
  // Fork workers.
  for (var i = 0; i < numCPUs; i++) {
    cluster.fork();
  }

  cluster.on('death', function(worker) {
    console.log('worker ' + worker.pid + ' died');
  });
} else {
  // Worker processes have a http server.
  http.Server(function(req, res) {
    res.writeHead(200);
    res.end("hello world\n");
  }).listen(8000);
}
var cluster=require('cluster');
var http=require('http');
var numpus=require('os').cpus().length;
if(cluster.isMaster){
//叉工。
对于(变量i=0;i

正如您在上面的代码中所看到的,您应该使用尽可能多的CPU分叉,以便所有内核都能同时工作(在处理器内核之间分配工作)。

在Node.js示例中,他们希望每个内核只运行一个进程。对于每个核心的工作人员数量没有技术限制,因此只要系统能够处理,您就可以运行尽可能多的工作人员

但是,每个核心运行多个进程不会提高应用程序的性能


希望有帮助

如果你更新了你的答案,我会给你一个+1,并解释为什么你使用了和CPU数量一样多的叉子。如果我没有多核系统呢?我应该只用叉子吗?如果从机出现故障并使用域退出,而我只有1个cpu,该怎么办?如果我使用的CPU数量超过CPU总量,会有什么影响?有没有任何senario是我愿意也不愿意使用所有可用的CPU的?@无尽的,你正在寻找的答案在这里得到了很好的解释:节点是否会在不同的内核上运行每个fork(最多核数)?例如,如果你有2个内核,你将有2个fork,在每个fork中,将有1个节点应用程序。