【问题标题】:Heroku memory quota exceeded with simple Grails app简单的 Grails 应用程序超出了 Heroku 内存配额
【发布时间】:2014-07-26 23:23:53
【问题描述】:

我正在尝试在 Heroku 上部署非常简单的 Grails 2.3.7 应用程序(几个 REST 控制器和 Spring Security REST)并不断得到

Error R14 on Heroku (Memory Quota Exceeded)
Process running mem=906M(177.1%)

我的 BuildConfig.groovy 包含:

grails.project.fork = [
    test: false,
    run: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    war: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256, forkReserve:false],
    console: [maxMemory: 768, minMemory: 64, debug: false, maxPerm: 256]
]

为什么 Grails 会消耗这么多内存,我该如何调整 BuildConfig.groovy 以适应 512mb Heroku 的限制?

UPD 问题可能出在我的 travis.yml 文件中吗?它看起来像这样:

language: groovy
jdk:
- oraclejdk7
before_script:
- chmod +x grailsw
script: ./grailsw clean
  && ./grailsw refresh-dependencies
  && ./grailsw test-app
before_deploy:
- chmod +x grailsw
deploy:
  provider: heroku
  app: igetit
  on: develop

【问题讨论】:

  • 我不确定,但可能是maxPerm(Perm Gen)和maxMemory(堆大小)加在一起了。这方面的一种方法可能是将 maxMemory 减少到 512,并将 maxPerm 保持在 256(也许您可以将其设置为 192 或其他值,但您必须在这里做一些实验)
  • 我知道这很奇怪,但是在将 maxMemory 更改为 512 并重新部署内存使用量后变得更大:934M
  • 您究竟是如何部署您的应用程序的?你在部署战争吗?你在跑跑战吗?还有什么?
  • 我使用 Travis CI 的 Grails buildpack。它写了./grailsw war,我想它会创建war文件并部署它
  • 如果您使用grails war,则不使用这些内存设置。它们仅用于分叉执行,例如在运行 test-app 或 run-war 时。您的内存设置可能由您的 JAVA_OPTS 控制。我对 Heroku 不熟悉,但你可以看看这里:stackoverflow.com/questions/15555108/heroku-jvm-tuning

标签: grails heroku


【解决方案1】:

我的评论作为答案:

如果您使用 grails war,则不会使用这些内存设置。它们仅用于分叉执行,例如在运行 test-app 或 run-war 时。您的内存设置可能由您的 JAVA_OPTS 控制。我不熟悉 Heroku,但你可以看看这里:

Heroku JVM tuning

【讨论】:

    【解决方案2】:

    如果您不提及jdk,则默认情况下heroku 使用open-jdk。只需提及jdk 版本。

    创建一个与application.properties 并行的文件system.properties 并添加以下行:

    java.runtime.version=1.7
    

    提交此文件并重新部署。

    参考号Grails R14 Error (Memory quota exceeded) on Heroku

    【讨论】:

    • 谢谢,但我已经阅读了这篇文章。这对我不起作用
    • 几个月前我也有同样的错误,上面的程序有些问题。可能是您遇到的其他问题。一切顺利。
    猜你喜欢
    • 1970-01-01
    • 2013-07-14
    • 1970-01-01
    • 1970-01-01
    • 2014-05-03
    • 2017-03-18
    • 2013-07-13
    • 2017-11-02
    • 2012-11-02
    相关资源
    最近更新 更多