在Node中具有大量tcp连接时的ECONNRESET

时间:2015-01-08 00:10:33

标签: node.js macos sockets tcp

我有一个由服务器和客户端组成的Node.js应用程序,它们使用TCP之上的协议进行通信。我为应用程序实现了一个简单的负载测试。基本上有一堆客户端连接到服务器并交换消息。这一切都适用于大约600个客户端,然后我开始得到ECONNRESET错误。为了确保它不是实现,我创建了一个非常简单的TCP服务器/客户端,客户端将只连接到服务器。这可以达到大约900个连接,但随后它开始给出相同的错误。我正在使用Maverics在Mac上运行此应用程序。我已经玩过sysctl和ulimit,但没有任何效果。以下是我更改的设置:

  • kern.ipc.somaxconn = 12000
  • kern.maxfilesperproc = 12000
  • kern.maxfiles = 12000
  • ulimit -S -n 12000

我使用的简单TCP服务器/客户端实现如下:

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

var server = net.createServer();
server.listen(PORT, HOST);
server.on('connection', function(sock) {
    console.log('New Client')
});


for(var i = 0; i < 2000; i++) {
    var client = new net.Socket();
    client.connect(PORT, HOST, function () {
        console.log('Connected');
    });
}

我不确定此问题是否与操作系统或节点相关。

0 个答案:

没有答案