Benchmarkt socket.io(Benchmarkt socket.io)

2019-07-29 20:35发布

我想我的标杆服务器socket.io。 我想测试服务器可以有多少并行连接和消息处理。

但是,过了几分钟,我socket.io服务器崩溃时,我开始约200 WebSockets的基准。

我试图用node.js的集群模块共享过程中的核心。 当我使用集群模块的一些连接成为一段时间后断开。

我使用的测试服务器上使用这个特性亚马逊云中的虚拟服务器:

  • 7 GB内存
  • 20个EC2计算单元(8个虚拟核用2.5 EC2计算单元的每个)
  • 1690 GB实例存储
  • 64位平台
  • I / O性能:高
  • API名称:c1.xlarge

这里是标杆客户端的代码:

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());
    }
}

这里的socket.io服务器的代码:

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

是否有任何安全机制上socket.io阻止许多平行邮件和连接形成一个客户端?

有谁能够帮我?

Answer 1:

我为基准Socket.IO和SockJS服务器实现。

结果可以在这里找到: http://mrjoes.github.com/2011/12/15/sockjs-bench.html

测试套件是在这里: https://github.com/mrjoes/sock-benchmarking

用Java编写的,支持3个传输:Socket.IO 0.7+,SockJS 0.2+,生的WebSockets。 有没有编译的二进制代码,但你可以得到Eclipse来编译或只是使用命令行javac的。



Answer 2:

我没有基准Socket.IO自己,但我知道的2个好的资源,可以帮助你,所以检查出来:

  • http://drewww.github.com/socket.io-benchmarking/
  • http://blog.mixu.net/2011/11/22/performance-benchmarking-socket-io-0-8-7-0-7-11-and-0-6-17-and-nodes-native- TCP /


Answer 3:

您可以检查Akinji

它打开的并发套接字服务器并侦听给定的消息,并打印出来

http://github.com/sonsuzdongu/akinji

python akinji.py -c 100 --host localhost --port 3000 --waitFor 100 --on "some msg"


文章来源: Benchmarkt socket.io