【问题标题】:Memory Leak Meteor.http内存泄漏流星.http
【发布时间】: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


【解决方案1】:

您共享的代码没有问题。你的内存泄漏,如果这确实是你观察到的,在其他地方。

【讨论】:

    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 2020-06-13
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多