public
Created

  • Download Gist
gistfile1.txt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
#!/usr/bin/env node
var os = require('os');
var WebSocketClient = require('websocket').client;
 
var count = 0;
 
function recursion() {
var client = new WebSocketClient();
 
client.on('connectFailed', function(error) {
console.log("Connect Error: " + error.toString());
});
 
client.on('connect', function(connection) {
count++;
connection.on('error', function() {
console.log(arguments);
});
 
connection.on('close', function(code, err) {
count--;
console.log("Client closed at: "+count+". Reason : " + err);
process.exit(0);
})
 
if(count % 500 == 0) {
// sleep for 5 seconds
var f = os.freemem();
var t = os.totalmem();
console.log('RAM: ' + (f/t * 100) + ', LOAD AVG: ' + os.loadavg().join());
 
var sleepfor = 5000;
setTimeout(function() {
console.log('active connections: ' + count);
recursion();
}, sleepfor);
} else {
recursion();
}
});
 
var random_node_id = function() {
return Math.floor(Math.random()*90000) + 10000;
};
 
var random_client_id = function() {
return Math.floor(Math.random()*900) + 100;
};
 
client.connect("ws://127.0.0.1:8888/echo/"+random_node_id()+"/"+random_client_id()+"/websocket", 'echo-protocol');
};
 
recursion();

WebSocketClient is from SockJS?

Thanks. How many socket connections are you getting? The Worlize client is stable running on Node v0.6?

I'm getting 48.5K concurrency before the ephemeral ports run out. I also discovered that the proxy that i'm using bouncy has some memory leak. So if I fix that / find some better proxy i'll rerun the tests again :) If the mem leak is fixed my estimate is that I can easily have 48.5x3K active connections (note these are just active connections... none of them are broadcasting anything... that will be my next test) on a single node instance.

ok the mem leak is fixed. https://github.com/substack/bouncy/pull/12

going to run the test again tomorrow and update with the results :)

@shripadk any updates on this? Were you able to get 150 000 000 connections out of it? :o

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.