【问题标题】:Passing correct JVM arguments to Play 2.2.1 app on Heroku将正确的 JVM 参数传递给 Heroku 上的 Play 2.2.1 应用程序
【发布时间】:2014-02-26 23:42:42
【问题描述】:

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

我的 Procfile 看起来像这样:

web: 目标/通用/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 heroku jvm playframework-2.2


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2023-03-25
      • 2023-03-26
      • 1970-01-01
      • 2011-04-17
      • 1970-01-01
      • 2012-12-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多