【发布时间】:2014-06-04 23:54:09
【问题描述】:
当我尝试每秒发出 5 个并行 http 请求时,我从 Meteor.http.get 得到内存泄漏:gist
match_ids.forEach(function(match_id){
var url = self.generateUrl(match_id);
Meteor.http.get(url, function(err, response){
if(!err && !response.data.result.error){
callback(null, response.data.result);
}else{
callback(err || response.data.result.error, match_id);
}
})
});
即使我将速率降低到 1 个请求/秒,它的行为似乎也一样。
Meteor.setInterval(function(){
module.feeder.getMatchesForCarry();
}, 2000);
Meteor.setInterval(function(){
Meteor.call("TEMP_d2_match_analyzerInsertSampleData", 9, function(err,response){});
}, 10000);
这个问题的根源是Node还是Meteor?
如果我每秒执行 5 个请求,在大约 5 分钟的运行中,我会得到 80-100 兆的填充
【问题讨论】:
-
我对此很感兴趣。我想我可能会在我的一台服务器上看到这种行为,情况相同(循环 http 请求)。请参阅此问题stackoverflow.com/questions/23158849/… 这不会在我的机器上本地发生。也许我们可以比较笔记。您正在运行什么操作系统版本?节点版本?
-
我在 lubuntu 14.04 上开发,节点版本是 .10.26。希望在我部署之前我会找到解决方法,并在这里发布我是如何做到的。我还在meteor 上发布了一个问题
-
我现在做了一个测试,对于 3000 个链接,每 2 秒分批 10 个。
60mb => 100mb -
我看到了您发布的问题。如果可能,请尝试使用最简单的代码向他们提供演示问题的 repo。否则,如果代码太复杂,他们可能不会看。我在 Ubuntu 12.04 和节点 0.10.25 上。它与我的开发机器差不多。我刚刚开始进行分析,所以我将运行更多测试。
-
这个问题在 2018 年仍然存在吗?
标签: node.js http memory-leaks meteor