2013-05-08 59 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