Benchmarkt socket.io

Quiero probar mi servidor socket.io Quiero probar cuántas conexiones y mensajes paralelos puede manejar el servidor.

Pero mi servidor socket.io se bloquea después de algunos minutos cuando comienzo el punto de referencia con unos 200 websockets.

Intenté usar el módulo de clúster de node.js para compartir el proceso con los núcleos. Cuando uso el módulo de cluster, algunas conexiones se desconectan después de un tiempo.

El servidor que uso para la prueba es un servidor virtual en la nube de Amazon con estas propiedades:

7 GB de memoria20 unidades de cómputo EC2 (8 núcleos virtuales con 2.5 unidades de cómputo EC2 cada una)1690 GB de almacenamiento de instanciaPlataforma de 64 bitsRendimiento de E / S: AltoNombre API: c1.xlarge

Aquí está el código del cliente de referencia:

var fs = require('fs');
var io = require("socket.io-client");
var host = "http://localhost:3000";
var timeLog = fs.createWriteStream(__dirname+'/public/time.log',{flags:'a',mode:0666,   encoding:'encoding'});
var count = 200;
var sockets = [];
var total = 0;
var countTime = 0; 
var echo = exports;
echo.start = function() {
    fs.writeFile('public/time.log',"",function(err){
        if(err) throw err;
    });

    for(var i=0;i<count;i++){
        var socket = io.connect(host,{"force new connection":true});
        sockets.push(socket);
        //console.log(i);
        socket.on("message",function(message){
            countTime++;
            time = new Date().getTime()-message;
            total+=time;
            timeLog.write(time+"\n");
            socket.send(new Date().getTime());
        });
        socket.on("disconnect",function(){
            console.log("disconnect");
        });
    }

    parallelSockets();
    var j = 0;
}

function parallelSockets(){
    for(var i = 0 ;i<count;i++){
        sockets[i].send(new Date().getTime());
    }
}

Y aquí el código del socket.io-server:

socket.on('message',function(message){
    start = new Date().getTime();
    socket.send(message);
    end = new Date().getTime() - start;
    logfile.write(end+"\n");
});

¿Existe algún mecanismo de seguridad en socket.io que bloquee tantos mensajes paralelos y las conexiones que forman un cliente?

Alguien puede ayudarme?

Respuestas a la pregunta(3)

Su respuesta a la pregunta