2013-05-08 73 views
4

我有一个简单的快递3.2应用程序,返回时发布到200。我观看节点(v0.10.5)进程的内存RSS,每个请求增加内存4kb左右。节点/快速内存增加每个请求

服务器代码非常简单:

var express = require('express'); 

var app = module.exports = express(); 

app.set('port', process.env.PORT || 3000); 
app.use(express.favicon()); 
app.use(express.bodyParser()); 

require('./apps/events/index')(app); 

app.listen(app.get('port'), function(){ 
    console.log("Express server starting..."); 
}); 

和相应的控制代码:

// ./apps/events/index.js 
var events = function(app) { 

    app.post('/events', function(req, res) { 
    res.writeHead(200); 
    res.end(); 
    }); 

}  
module.exports = events; 

有什么在我的代码导致此?这是正常的(希望不是)。还是我测量错误的东西?我把这个脚本的一个版本加入到生产环境中,节点进程在16MB内存的情况下启动,经过一些负载测试(20,000次安装)后,它增加到32mb。

+1

除非需要GC,否则GC并不总是收集。可以简单地说,但很难肯定地说。 – 2013-05-08 13:12:35

+0

GC工作,但RSS内存不断增加,永不停机 – 2014-12-25 11:05:17

回答

4

保持分析您的服务器。随着时间的推移,您可能会发现内存使用量级别已关闭尝试200,000个请求,看看事情是否改变

此外,如果有可用内存,操作系统将尝试使用它。 32mb的ram是不够关心的。

This talk值得关注。它是关于python的,但node.js的概念相同。

+2

你是对的。我每分钟都会有10,000个请求打到服务器,尽管它的确增加了内存,直到60mb标记,然后它仍然保持在那个水平(给予或拿走几个MB)。 – robzolkos 2013-05-09 01:38:46