在主进程和subprocess上的服务器上集群http服务器quandry

给定下面的nodejs代码。 当我对本地主机:8080运行ab(apache基准testing)时,我只看到服务请求的主进程。 但是,如果我从主进程删除服务器的句柄,那么我看到分叉进程交换进出。 有没有一个很好的理由,我不知道?

var cluster = require('cluster'); var server = require('http').createServer(function(req,res){ res.writeHead(200); var served = process.env.NODE_WORKER_ID || "master"; console.log("hello world I was served by " + served); setTimeout(function () { res.end("hello world I was served by " + served); }, 1000); }); if(cluster.isMaster){ for(var i = 0; i < 2; i++){ cluster.fork(); } server.listen(8080); }else{ server.listen(8080); } 

由于NodeJS正在处理1-5毫秒的每个请求,并且您的请求永远不会被提供给任何subprocess,因为主进程没有任何操作,只是在睡觉。 如果您对数百个并发连接进行testing,您将看到通过聚类获得的收益。 在这里,我做了一个最近的基准。 http://mustafaakin.wordpress.com/2012/03/19/nodejs-simple-clustering-benchmark/

您可以使用Apache Benchmark进行本地化