【问题标题】:New Relic causing memory leak/bloat?新遗物导致内存泄漏/膨胀?
【发布时间】:2013-04-17 09:59:55
【问题描述】:

我一直在努力找出导致我的应用程序使用的内存不断增长的原因,以至于在 heroku 上的生产中它失败并崩溃了。

经过一些相当广泛的研究,使用 Top 观察 RSIZE 在本地增长并使用 Oink 尝试确定问题所在。

然后我发现了一个帖子 here 在其中一个 cmets 中提到了导致同样问题的 New Relic gem。作为开发中的测试,我注释掉了 gem,现在没有它,我的内存使用量似乎相当稳定在 100M 左右,而安装 gem 后,它增长到可以将它推到近 1GB 的地步!显然,这种行为是应用在 Heroku 出现故障的根源。

New Relic 有没有其他人遇到过这种情况?我想继续使用它,我认为这是一项很棒的服务,但如果它是内存泄漏的根源,我就不能。关于如何修复它的任何建议?

我正在运行 Rails 3.2.0 和 Ruby 1.9.2

当我运行 Gem List 时,它显示我有 newrelic_rpm (3.6.0.83, 3.5.6.46, 3.5.5.38, 3.4.2.1, 3.4.2)

我的 Gemfile 只引用 gem 'newrelic_rpm' 所以我应该指定一个版本吗?

【问题讨论】:

  • 开发模式 newrelic 与生产模式 new relic 完全不同——如果您想在本地复制,最好使用接近生产的设置
  • 好点,我试试看。
  • newrelic_rpm gem 只用于开发你知道吗?
  • 完全没有,但它确实有一个仅用于开发的 developer_mode
  • 这就是我的想法,但是,我已经从我的生产 Gemfile 和 Gemfile.lock 文件中删除了它,New Relic 似乎仍在跟踪我的应用程序,并且事情看起来更稳定了。

标签: ruby-on-rails ruby-on-rails-3 newrelic


【解决方案1】:

这似乎可以解决,但如果您继续看到 New Relic 的 Ruby 代理使用大量资源,您绝对应该立即与支持人员联系。对于 Ruby 代理,我还没有看到类似的东西,所以这绝对是我们很想看的东西。 https://support.newrelic.com/home

【讨论】:

  • 嗨,托比,不,这不是 100% 解决的。经过几次有和无的测试后,似乎实际上是 exception_notifier gem 导致了这种情况。
  • Ryan- 我们的 Ruby 人员肯定愿意做一些日志检查并尝试解决它。请务必开张票,如果我们提出任何通用解决方案,我可以将它们发回此处。
  • 好的,我会的。不再安装 Gem,但我希望他们能够查看问题发生时的日志?
  • 嗨 Toby,我刚刚向应用程序推送了一个更新,其中现在包含异常通知 gem。我会监控内存使用情况,如果它再次开始表现不佳,我会打开一个标记。
猜你喜欢
  • 2018-06-18
  • 1970-01-01
  • 2014-08-23
  • 2012-04-23
  • 2019-02-24
  • 1970-01-01
  • 2015-07-06
  • 2014-06-07
  • 2013-11-20
相关资源
最近更新 更多