为什么 oom 后 JVM 不会崩溃?[复制]

Why JVM NOT crash after oom? [duplicate]

提问人:rufushuang 提问时间:9/1/2023 最后编辑:rufushuang 更新时间:9/4/2023 访问量:45

问:

这可能是一个有趣的问题。在大多数情况下,我们不希望 jvm 崩溃。

但有时“oom-ed 但不崩溃”的 jvm 进程会继续运行,并且可能会返回一个带有 NULL 的值,而不是正确的值。对于某些对值准确性敏感的方案,这是不可接受的。

那么有没有办法让 jvm 在 oom 之后 DO CRASH 呢?就像一些 jvm 参数,或者解决此问题的替代方法,以使场景保持准确性。

Java JVM 对象存储

评论

2赞 Holger 9/1/2023
不要同时问三个不同的问题。
0赞 user207421 9/4/2023
如果你编写的代码是捕获和返回,那么你只能责怪你自己。OutOfMemoryExceptionnull

答:

0赞 rufushuang 9/1/2023 #1

发现相关:为什么 JVM 可以自行从 OOM Java 堆空间中恢复

所以,jvm 参数:

-XX:+CrashOnOutOfMemoryError

此外,还可以运行脚本:

-XX:OnOutOfMemoryError="/dir/oomKillAndRestart.sh"

评论

2赞 Kayaman 9/1/2023
下次在提出重复问题之前找到相关问题。