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

标签 java playframework jvm

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

谢谢你帮助我。

最佳答案

选项一

将以下设置添加到 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”时才可以增加它。在您的情况下,您可能必须增加它。

还有bugs面对激活模块

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

关于java - 如何为 Play Framework 2.1 设置 JVM 参数 -Xmx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37790956/

相关文章:

java - 如何从 Option[Map[String,Seq[String]]] 中知道是否包含键?

clojure - 请帮助我理解这些 Clojure Hprof 痕迹

java - "this"与正常初始化 java

Java DocumentBuilder - XML 文件中的错误缩进

java - 如何在 Play Framework 2.5 模板中注入(inject)应用程序

linux - 单线程 Java 应用程序启动超过 70 个线程

Java Swing 内存使用

java - 在 SQL 数据库中存储时间戳

java - OnItemSelectedListener 在选项卡 fragment 中不起作用

scala play twitter api oauth 身份验证不起作用