我应该在node.js中fork多less个child_processes()?

我的问题很简单。 虽然,它可能需要不同的variables来回答(我猜)

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

最新版本为多进程编程提供了child_process.fork()child.spawn()方法。 我已经阅读了关于使用Node.js作为大型Comet服务器的非常好的(但过时的)文章。 现在,然后nodejs提供了多进程编程,我真的不知道应该产生多less进程来服务大量的请求(假设我的服务器只运行在一台机器上)。 有没有办法select做同样工作的“最好” (或者至less是好的 )数量的subprocess?

任何链接到首发指南将非常感激。

谢谢

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); } 

正如你在上面的代码中看到的那样,你应该尽可能多地使用你所拥有的cpu数量,这样所有内核就可以在同一时间工作(在处理器内核之间分配工作)。

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

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

希望能帮助到你!