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].
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/e45d0fac-f0d2-45b9-9eeb-4dcc0a4fe650%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to