如何为Play Framework 2.1设置JVM参数-Xmx

3

运行我的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参数也没有改变。

非常感谢你的帮助。


1
尝试使用 stage/bin/genehopper -Xmx3g。还有一个 -mem 开关在较新的版本中已被删除...它可能在那里起作用。 - Salem
当我按照你的方式尝试时,出现以下错误:应用程序路径错误:-Xmx3g。 - Matthias Munz
2个回答

4

在2.8.x版本中相同 https://www.playframework.com/documentation/2.8.x/ProductionConfiguration#JVM-configuration - Ali

4

选项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空间”的“OutOfMemoryError”错误时,您才可以将其增加。在您的情况下,您可能需要增加它。
Activator模块仍然面临问题。 有关问题发现的更多信息,请参见GC overhead limit exceeded。

@Matthias Munz 抱歉回复晚了,您能具体说明出了什么问题吗? - Keshan Nageswaran
希望现在你已经让它工作了!如果是这样,请分享你对这种方法的想法! - Keshan Nageswaran
我在下面的帖子中写了解决方案。 - Matthias Munz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接