【问题标题】:How to set JVM parameter -Xmx for Play Framework 2.1如何为 Play Framework 2.1 设置 JVM 参数 -Xmx
【发布时间】:2016-06-13 13:22:25
【问题描述】:

在运行我的 Play 应用时,我经常收到以下错误:java.lang.OutOfMemoryError: GC overhead limit exceeded我现在想增加 MaxHeapSize。

首先,我将参数应用于我的启动脚本:

cd app_x
.../play/play-2.2.1/play clean compile stage
app_x/target/universal/stage/bin/app_x -J-Xmx3g

但是,JVM 的参数保持不变。 htop 说 java -Xms1024m -Xmx1024m ... 表示进程。

然后我配置了环境变量:

export _JAVA_OPTIONS="-Xmx3g"

我执行play test 并得到:

Picked up _JAVA_OPTIONS: -Xmx3g

但是,JVM 的 Xmx 参数也没有改变。

谢谢你帮助我。

【问题讨论】:

  • 试试stage/bin/genehopper -Xmx3g。还有一个 -mem 开关在较新的版本中被删除...它可能在那里工作
  • 当我按照你的方式尝试时,出现以下错误:Bad application path: -Xmx3g

标签: java playframework jvm


【解决方案1】:

选项一

将以下设置添加到 Build.scala

javaOptions ++= Seq("-Xmx3g", "-Xms3g", "-XX:MaxPermSize=2048M")

选项 2

将下面添加到正在运行的终端的 VM 选项中

$ JAVA_OPTS="-Xms3g -Xmx3g -XX:MetaspaceSize=2048M" ./activator start

-XX:MaxPermSize=92m

这是一个默认值,在大多数情况下您不需要更改它。只有在“PermGen space”中出现“OutOfMemoryError”时才可以增加它。在您的情况下,您可能需要增加它。

激活模块仍然面临bugs

有关与问题相关的调查结果的更多信息 GC overhead limit exceeded

【讨论】:

  • @Matthias Munz 抱歉回复晚了,你能具体说明哪里出错了!
  • 希望您现在已经成功了!如果是这样,请分享您对这种方法的想法!
  • 我在下面的帖子中写了解决方案
【解决方案2】:

它终于可以使用以下参数了

/path/to/bin/<project-name> -mem 512 -J-server

如此处所述:https://www.playframework.com/documentation/2.2.x/ProductionConfiguration#Specifying-additional-JVM-arguments

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-22
  • 2013-01-16
  • 2011-02-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多