java - 将正确的JVM参数传递给Heroku上的Play 2.2.1应用

标签 java heroku jvm playframework-2.2

我试图将正确的JVM参数传递给部署在Heroku上的play 2.2.1应用程序,但是出现问题。

我的Procfile看起来像这样:


  网站:target / universal / stage / bin / myapp -Dhttp.port = $ {PORT}
  -Dconfig.file = conf / production.conf -J-javaagent:lib / heroku-javaagent-1.4.jar = stdout = true,lxmem = true -J-javaagent:lib / newrelic.jar -J-Dnewrelic.config.file = lib / newrelic.yml


在本文(https://devcenter.heroku.com/articles/play-support)中,它说不需要传递PLAY_OPTS,因为它由生成的脚本读取。但是,在我的应用程序中,在运行时,我读取了JVM参数,它们看起来像这样:

JVM value: -Djava.rmi.server.useCodebaseOnly=true
JVM value: -Xms1024m
JVM value: -XX:MaxPermSize=256m
JVM value: -XX:ReservedCodeCacheSize=128m
JVM value: -Duser.dir=/app/target/universal/stage
JVM value: -Dhttp.port=57279
JVM value: -javaagent:lib/heroku-javaagent-1.4.jar=stdout=true,lxmem=true
JVM value: -Xmx1024m
JVM value: -javaagent:lib/newrelic.jar
JVM value: -Dnewrelic.config.file=lib/newrelic.yml
JVM value: -Dconfig.file=conf/production.conf


因此,脚本显然未读取“ JAVA_OPTS:-Xmx384m -Xss512k -XX:+ UseCompressedOops”。

我还尝试将-Xmx384m -Xss512k -XX:+ UseCompressedOops追加到Procfile,但是同样,它没有用。

我该如何工作?

最佳答案

问题在于生成的播放脚本读取小写的“ java_opts”而不是“ JAVA_OPTS”。

因此,如果设置java_opts变量,它将起作用:

heroku config:set java_opts="-Xms128m -Xmx384m -Xss512k -XX:+UseCompressedOops"

关于java - 将正确的JVM参数传递给Heroku上的Play 2.2.1应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22056013/

相关文章:

java - 使用 JUnit 3.x 与 JUnit 4.x 运行测试仍然是最佳实践吗?

java - 如何让用户在画线程序中拖动鼠标时看到形状?

java - 如何修复代码以删除 -Xlint :unchecked warning while compiling

ruby - Sidekiq 正在提升我在 New Relic 中的性能监控

java - 32 位 JVM 提交 >3G 虚拟内存

jvm - JRockit 是否合并到 JDK 8 中?

java - Maven 2.2.1 优化项目构建时间

node.js - 我无法在Heroku上部署Alexa技能(使用jovo构建)

php - 强制heroku避免使用https

java - 在java中调用sleep会重新加载缓存在寄存器中的值吗?