首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >已超过heroku worker任务内存配额

已超过heroku worker任务内存配额
EN

Stack Overflow用户
提问于 2013-07-15 20:38:40
回答 1查看 1K关注 0票数 1

我在heroku上部署了一个rails应用程序。我们有一个worker (job:work),它串行地创建七个管理器对象(每个任务一个),并在无限循环中对它们运行方法。下面是主代码的样子(不管怎么说,这是它的基本部分):

代码语言:javascript
复制
loop do
  begin
    Manager.subclasses.each do |manager_klass|
      manager_klass.new.process
    end
  #exception handling here
  end
  sleep(1)
end

这些任务都不会做类似Model.all之类的事情。我读过很多关于ruby中的泄漏和膨胀的文章,并且避免了其中的大多数。

我的worker的Heroku日志包括: R14 -超出内存配额;

这在工作进程运行大约3个小时后开始出现(这是内存泄漏/内存积累的充分证据)。

我已经尝试过memprof (不适用于ruby1.9),bleak_house (鞋子无关信息)和其他使用linux命令来记录内存快照的gem(不适用于heroku)。

我已经看了stackoverflow上关于这个的所有答案,没有帮助。

对于我的七个经理在一个工作中工作的具体情况,有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2013-07-16 02:11:03

尝试这个命令来查看您的内存使用情况:https://devcenter.heroku.com/articles/log-runtime-metrics。也可以一起看这个https://blog.heroku.com/archives/2013/3/19/log2viz,它们应该会给你内存泄漏的确认。

不同版本的Ruby会有帮助吗?

还有:可以这么说,为什么要创建“子工作者”?你的员工没有被充分利用吗?你真的需要像这样同时处理7个工作(而不是有更多的工人)吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17654459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档