【发布时间】:2015-08-12 08:23:46
【问题描述】:
我知道-XX:+HeapDumpOnOutOfMemoryError JVM 参数。我也知道-XX:OnOutOfMemoryError="cmd args;cmd args" 和kill -3 <JVM_PID> 将请求堆转储。
问题:我如何确保在OutOfMemoryError 上首先进行完整的堆转储,然后然后在转储后强制重启(或终止)已经完成了?我最好的选择是-XX:OnOutOfMemoryError="kill -3 %p;sleep <time-it-takes-to-dump>;kill -9 %p"吗?
【问题讨论】:
-
在没有 jvm 的情况下监控进程并相应地重新启动它会不会更好,例如unix脚本,监控系统?如果 jvm 内存不足,我不想依靠它来可靠地启动命令以重新启动自己