【问题标题】:track application memory usage on heroku在heroku上跟踪应用程序内存使用情况
【发布时间】:2012-02-17 15:55:15
【问题描述】:

我正在 Heroku 上托管一个 Rails 应用程序。

有没有办法可以跟踪正在运行的测功机的内存使用情况?

谢谢

【问题讨论】:

    标签: ruby-on-rails memory heroku


    【解决方案1】:

    我建议你在 New Relic 上开设一个帐户。

    更多信息在这里:

    http://newrelic.com/docs/ruby/new-relic-for-ruby

    这里:

    http://devcenter.heroku.com/articles/newrelic

    【讨论】:

    • Heroscale 是一个伸缩服务,与监控运行中的dynos内存使用无关
    • @Neil 是的,我提到它是一个与监控/缩放相关的解决方案。我应该添加它。
    • 我已经和支持人员谈过了。 New Relic 的“服务器监控”在 Heroku 上不起作用。您需要有权访问服务器才能安装其代理。
    • 值得注意的是,New Relic 确实支持 heroku 实例监控。对于带有独角兽的 ruby​​,每个独角兽工作者都被视为一个实例。内存使用量仅显示所有实例的平均值,并且与 heroku 每个 shinnyx 的答案的日志运行时指标相比,它并不是非常准确。使用 NR,您无法真正识别内存使用量的峰值,尽管该图应该显示了一个最小值/最大值。不过,这些数字似乎并不完全准确。我的num instances * avg mem = 1200mb,而我只运行 2 个 1x dynos,最大 1024mb。
    【解决方案2】:

    使用 Heroku New Relic Standard 插件 - 它是免费的,而且非常棒,而且当通过 Heroku 使用时,它还有一个特定的“Dynos”标签。

    【讨论】:

      【解决方案3】:

      Heroku 现在有一个log-runtime-metrics 功能来监控内存使用情况。

      要启用,请运行

      $ heroku labs:enable log-runtime-metrics
      

      并且内存使用情况将显示在服务器日志中。阅读Heroku log-runtime-metrics docs了解更多信息。

      【讨论】:

        【解决方案4】:

        没有一个答案提供了跟踪 dynos 内存使用情况的好方法,特别是如果您想将堆栈和堆使用情况与共享库等分开。

        在我对another SO question 的回答中,我提供了获取进​​程内存使用情况的详细快照的代码,并添加了基于阈值的差异来识别内存使用随时间变化的区域的能力。

        这是code for tracking the memory footprint of Heroku dynos 的要点。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-12-15
          • 1970-01-01
          • 2011-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-16
          相关资源
          最近更新 更多