2013-05-08 3 views
4

У меня есть простое экспресс-приложение 3.2, которое возвращает 200 при отправке. Я наблюдаю за RSS-памятью узла узла (v0.10.5), и каждый запрос увеличивает память на 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; 

Есть ли что-то в моем коде, что является причиной этого? Это нормально (надеюсь, нет). Или я ошибаюсь? Я поставил версию этого сценария в производство, и процесс узла начался с использования памяти 16 МБ, а после некоторого нагрузочного тестирования (20 000 обращений) он увеличился до 32 Мб.

+1

GC не всегда собирается, если это не нужно. Это может быть просто, но трудно сказать наверняка. –

+0

GC работает, но память RSS продолжает расти и никогда не опускается –

ответ

4

Продолжайте профилировать ваш сервер. Вероятно, вы со временем найдете уровни использования памяти. Попробуйте 200 000 запросов и посмотрите, не изменились ли вещи.

Также, если имеется оперативная память, операционная система будет пытаться ее использовать. 32 мб барана недостаточно, чтобы беспокоиться.

This talk стоит посмотреть. Речь идет о python, но понятия одинаковы для node.js

+2

Вы правы. Я каждую минуту нажимал на сервер с запросом в 10 000, и хотя он увеличивал объем памяти до отметки 60 мб, после этого он оставался на этом уровне (дайте или возьмите пару мб). – robzolkos

Смежные вопросы