Yes, Ryan. I'm using node 0.10 which restricts it to 5 sockets. I tried two variants. node 0.10 with bumping up the sockets to 999 and node 0.12(which by default sets the max sockets to Infinity. Both yielded with same results.
On Tuesday, April 7, 2015 at 10:13:12 PM UTC+5:30, Ryan Graham wrote: > > Are you using a version of node that defaults to only 5 sockets for the > global agent? > > ~Ryan > > On Tue, 7 Apr 2015 at 04:42 Kishore Kumar Yekkanti <[email protected] > <javascript:>> wrote: > >> I have a simple case where I'm requesting a different upstream proxy >> server from my node.js server. With the increase in load I see the request >> takes lot of time to execute(though time taken to respond from my upstream >> proxy server is constant across the requests). To demonstrate the issue >> i've written a sample program as below. If you execute the below program, >> the first request takes *118ms* to execute and the last one takes >> *10970ms*. If you observe i'm using async to parallelize my requests. >> >> *The question is*, what is the reason node.js takes this much time to >> execute a request when run in parallel. To give some more context on the >> infra settings(centos 6.5) I have opened up my port range from 1024 to >> 65535, change the fin_timeout to 15 seconds and enable tw_reuse =1 for >> sockets in sysctl.conf >> >> var http = require('http');var uuid = require('node-uuid');var async = >> require('async'); >> function callExternalUrl(){ >> var uniqueId = uuid.v4(); >> console.time(uniqueId); >> var options = { >> host: 'google.com', >> port: '80', >> path: '/', >> method: 'GET' >> }; >> var req = http.request(options, function(res) { >> var msg = ''; >> res.setEncoding('utf8'); >> res.on('data', function(chunk) { >> msg += chunk; >> console.timeEnd(uniqueId); >> }); >> res.on('end', function() { >> }); >> }); >> req.end();} >> function iterateAsync(callback){ >> var iter = []; >> for(var i=0; i<1000; i++){ >> iter[i] = i; >> } >> async.each(iter, >> function(item, callback) { >> callExternalUrl(); >> }, >> function(err) { >> callback(err); >> } >> );} >> >> iterateAsync(function(){console.log('done');}); >> >> -- >> Job board: http://jobs.nodejs.org/ >> New group rules: >> https://gist.github.com/othiym23/9886289#file-moderation-policy-md >> Old group rules: >> https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines >> --- >> You received this message because you are subscribed to the Google Groups >> "nodejs" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> To post to this group, send email to [email protected] >> <javascript:>. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/nodejs/e45d0fac-f0d2-45b9-9eeb-4dcc0a4fe650%40googlegroups.com >> >> <https://groups.google.com/d/msgid/nodejs/e45d0fac-f0d2-45b9-9eeb-4dcc0a4fe650%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/f647bf06-e3c5-44da-bb0d-c5210ecdff80%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
