【问题标题】:Heroku Scheduler Memory Quota Exceeded Constantly (Java Play)Heroku 调度程序内存配额不断超出(Java Play)
【发布时间】:2017-03-18 11:04:35
【问题描述】:

我们正在 Heroku 上运行一个 Java Play 项目,并且整天在 Heroku/调度程序测功机上不断收到错误 R14(超出内存配额)。

heroku/scheduler.3831:进程运行 mem=1058M(103.1%)

heroku/scheduler.3831:错误 R14(超出内存配额)

我们目前安排了 5 个日常工作,但它们都发生在工作时间之后。出于某种原因,尽管 Heroku/scheduler dyno 整天都在达到内存配额上限,但实际上并没有运行任何作业。

网络测功机工作正常。有人遇到过 Heroku Scheduler 的这个问题吗?

【问题讨论】:

    标签: java heroku playframework scheduled-tasks


    【解决方案1】:

    您可以尝试增加调度程序作业的测功机大小(例如:Standard-1X -> Standard-2X)

    【讨论】:

      【解决方案2】:

      我建议降低调度程序进程的最大堆大小。 Play 因使用大量本机(堆外)内存而臭名昭著(我认为主要是因为 Netty)。如果降低堆大小,它应该为本地内存留出更多空间。

      您可以在调度程序运行的java 命令上使用-Xmx300m 之类的选项设置最大堆大小。

      【讨论】:

      • 有趣,我会试试看!我想我有点困惑为什么heroku调度程序在白天运行,而我们所有的工作都安排在晚上。如果我限制每个作业的堆大小,我可以想象这将有助于该特定作业的内存使用,但是当这些作业根本不应该运行时,我有点不清楚为什么我仍然会得到这些高内存使用情况。
      • 如果调度程序在不应该运行的情况下运行,您应该在help.heroku.com 开一张票。这看起来很奇怪。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-03
      • 2019-08-23
      • 2013-07-13
      • 2017-11-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多