我注意到我的 node.js 应用程序的 RSS(驻留集大小)随着时间的推移而增长,并且考虑到我的服务器上出现“JS 对象分配失败 - 内存不足”错误,这似乎是一个可能的原因。
我设置了以下非常简单的 Node 应用程序:
var express = require('express');
var app = express();
app.get('/',function(req,res,next){
res.end(JSON.stringify(process.memoryUsage()));
});
app.listen(8888);
只需按住“刷新”热键@http://localhost:8888/,我就可以观看 RSS/heap/etc。增长,直到 RSS 超过 50mb(在我感到无聊之前)。等待几分钟然后回来,RSS 下降 - 大概 GC 已经运行。
我试图弄清楚这是否解释了我的实际节点应用程序崩溃的原因......我的生产应用程序很快达到了大约 100Mb 的 RSS 大小,当它崩溃时它通常在 200Mb-300Mb 之间。据我所知,这不应该太大(我相信节点应该能够处理 1.7Gb 左右),但我仍然担心我的生产服务器上的 RSS 大小呈上升趋势(衰减表示崩溃):