我正在尝试在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
答案 0 :(得分:1)
如果您不提及jdk
,则heroku
默认为open-jdk
。只需提及jdk
版本。
与system.properties
并行创建文件application.properties
并添加以下行:
java.runtime.version=1.7
提交此文件并重新部署。
答案 1 :(得分:1)
我的评论作为答案:
如果您使用grails war,则不使用这些内存设置。它们仅用于分叉执行,例如在运行test-app或run-war时。您的内存设置可能由您的JAVA_OPTS控制。我不熟悉Heroku,但你可以看看这里: