java - -XX :OnOutOfMemoryError ="kill -9 %p" Problem

标签 java jvm jetty

我在尝试将 -XX:OnOutOfMemoryError="kill -9 %p" 命令传递到我的 jvm 参数时遇到问题。

我正在使用 Jetty7,并且在 start.ini 文件中有这个。在启动时它给我下面的错误。这是与 jre/jre1.6.0_03l64

Starting Jetty: STARTED Jetty Tue Apr 26 09:54:26 EDT 2011
Unrecognized option: -9
Could not create the Java virtual machine.

start.ini 文件如下。

#===========================================================
# If the arguements in this file include JVM arguments
# (eg -Xmx512m) or JVM System properties (eg com.sun.???),
# then these will not take affect unless the --exec
# parameter is included or if the output from --dry-run
# is executed like:
#   eval $(java -jar start.jar --dry-run)
#
# Below are some recommended options for Sun's JRE
#-----------------------------------------------------------
  --exec
# -Dcom.sun.management.jmxremote
  -Xmx4096m
  -Xmn512m
  -DLABEL=PROD_APP
  -verbose:gc
  -Xloggc:/export/opt/prod_app/logs/gc.log
  -XX:OnOutOfMemoryError="kill -9 %p"
# -XX:+PrintGCDateStamps
  -XX:+PrintGCTimeStamps
  -XX:+PrintGCDetails
  -XX:+PrintTenuringDistribution
# -XX:+PrintCommandLineFlags
# -XX:+DisableExplicitGC
# -XX:+UseConcMarkSweepGC
# -XX:ParallelCMSThreads=2
# -XX:+CMSClassUnloadingEnabled
# -XX:+UseCMSCompactAtFullCollection
# -XX:CMSInitiatingOccupancyFraction=80

评论 line out jetty 将毫无问题地开始。但是,由于系统内存泄漏,我们确实需要添加此参数,以防止我们的进程崩溃时进一步损坏。

有人知道我在这里做错了什么或如何解决这个问题吗?

最佳答案

在 Java 版本 8u92 中,VM 参数

  • -XX:+ExitOnOutOfMemoryError
  • -XX:+CrashOnOutOfMemoryError

已添加,请参阅 release notes .

ExitOnOutOfMemoryError
When you enable this option, the JVM exits on the first occurrence of an out-of-memory error. It can be used if you prefer restarting an instance of the JVM rather than handling out of memory errors.

CrashOnOutOfMemoryError
If this option is enabled, when an out-of-memory error occurs, the JVM crashes and produces text and binary crash files.

增强请求:JDK-8138745 (参数命名错误虽然 JDK-8154713 , ExitOnOutOfMemoryError 而不是 ExitOnOutOfMemory)

关于java - -XX :OnOutOfMemoryError ="kill -9 %p" Problem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5792049/

相关文章:

java - 无法启动 Play Framework 应用程序

java - 如果线程实际上 hibernate 时间太长,是否可以跳过后续的 sleep() ?

java - jetty-maven-plugin 多个 war 独立端口

tomcat - 为什么我的 Artifactory 和文件下载卡在 VPN 上?

java - Jetty.xml导入本地类

java - Spring Boot 无法连接 Postgresql 数据库

java - 对Java中的数组元素删除感到困惑

java - Spring Boot CALL API 消费

jvm - 启动STS应用程序时缺少tools.jar

java - 来自 JVM 的用于跟踪目的的唯一 ID