首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >-XX:OnOutOfMemoryError=“杀死-9 %p”问题

-XX:OnOutOfMemoryError=“杀死-9 %p”问题
EN

Stack Overflow用户
提问于 2011-04-26 14:43:01
回答 11查看 43.4K关注 0票数 31

在试图将-XX:OnOutOfMemoryError="kill -9 %p"命令传递到jvm中时,我遇到了问题。

我正在使用Jetty7,并将其放在start.ini文件中。启动时,请给我下面的错误。这是jre /jre1.6.0_03l64

启动Jetty:启动Jetty 2011年4月26日09:54:26 未获承认的备选方案:-9 无法创建Java虚拟机。

start.ini文件如下所示。

代码语言:javascript
复制
#===========================================================
# 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

评论这一行的码头将开始良好,没有问题。但是,由于系统内存泄漏,我们确实需要添加此arg,以防止在进程结束时发生进一步损坏。

有没有人知道我在这里做错了什么,或者我怎样才能解决这个问题?

EN

回答 11

Stack Overflow用户

发布于 2016-11-24 16:00:12

在JavaVersion8u92中,VM参数

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

被添加,请参见发布说明

ExitOnOutOfMemoryError 启用此选项时,JVM将在第一次出现内存不足错误时退出。如果您希望重新启动JVM的实例,而不是处理内存不足的错误,则可以使用它。 CrashOnOutOfMemoryError 如果启用此选项,则当出现内存不足错误时,JVM会崩溃并生成文本和二进制崩溃文件。

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

票数 28
EN

Stack Overflow用户

发布于 2013-05-23 21:25:29

作为hadoop选项运行,我也遇到了同样的问题。这就是答案:

代码语言:javascript
复制
-XX:OnOutOfMemoryError='kill -9 %p'

下面是OOM的标准:

代码语言:javascript
复制
#
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill -9 %p"
#   Executing /bin/sh -c "kill -9 11902"...

我也试过:

代码语言:javascript
复制
-XX:OnOutOfMemoryError='"kill -9 %p"'

它开始了,但在OOM上

代码语言:javascript
复制
# java.lang.OutOfMemoryError: Java heap space
# -XX:OnOutOfMemoryError="kill' '-9' '%p"
#   Executing /bin/sh -c "kill' '-9' '1164"...

但是STDERR有: sh:杀害-9 1164:命令未找到

这些都不会开始:

代码语言:javascript
复制
'-XX:OnOutOfMemoryError=kill -9 %p'
"-XX:OnOutOfMemoryError=kill -9 %p"
-XX:OnOutOfMemoryError="kill -9 %p"
票数 4
EN

Stack Overflow用户

发布于 2013-06-10 16:24:28

单引号版本现在应该可以在jetty >9.0.4中正常工作。

bug.cgi?id=408904

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5792049

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档