场景: node向某服务器发请求,每次发5000个请求,等待这5000个处理完后,再发5000,如此循环进行.机器配置8个cpu核
现象: 当我开启一个node程序时,该程序的cpu使用率能达到90-100% ,并且每分钟能发27万左右的请求。 但是当我开两个node 程序时,每个node的cpu使用率只有60%, 并且每分钟一共可发4万请求。
太诡异了,在系统负载还很小的情况下,再增一个node,不是把效率翻倍吗? who can tell me why?
代码如下: var http=require(‘http’) var logger=require(‘./log’).clientLogger var options = { port: 3000, path: '/info?n=1&m=2’, method: ‘GET’, host:’db11’ };
count=6000
function main(allcount){
for(var i=0;i<count;i++){ var req = http.request(options, function(res) { res.setEncoding(‘utf8’); res.on('data’, function (chunk) { logger.debug('BODY: ' + chunk); if(!–allcount) { main(count) } }); });
req.on('error’, function(e) { logger.error('problem with request: ' + e.message); if(!–allcount) { main(count) } });
req.end(); logger.info(‘send a request’) } }
main(count)
setInterval(function(){process.exit(0)},5601000)