2012-03-23 75 views
1

我们在CentOS(版本6.0)上使用node.js(版本0.6.11)来构建TCP服务器。当我进行压力测试时,发现一个问题:在TCP服务器上进行压力测试

当建立的连接少于1150时,node.js deamon的CPU使用率仅为5〜6%。但是当只建立几个连接时,它会迅速上升到100% 。

有没有人知道它为什么这样工作?它是node.js中的错误吗?

下面是演示代码:

var net = require("net"); 
var server = net.createServer(function(socket) 
{ 
    socket.setEncoding("utf8"); 
    socket.on('close', 
     function() 
     { 
      console.log('close'); 
     }); 
    socket.on('disconnect', 
     function() 
     { 
      console.log('disconnect'); 
     }); 
    socket.on("data", function(data) 
     { 
//   console.log("recv");    
     }); 
}); 

server.listen(8080, "192.168.2.105"); 
console.log("Server on 8080"); 
+0

如何准确测试此代码。否则,我会建议你发布到github问题页面。 – Alfred 2012-03-23 05:56:23

+0

我已经做了.https://github.com/joyent/node/issues/2987#issuecomment-4650835 – seallee 2012-03-23 12:37:43

回答

0

尝试升级到Node.js的0.6.13。这可能是内存泄漏。

+0

我犯了一个愚蠢的错误,我忘记修改打开文件的数量。 – seallee 2012-03-26 01:31:16