2012-03-23 73 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