Weblogic 10.3.6在OutOfMemoryError上生成空heapdump

Weblogic 10.3.6在OutOfMemoryError上生成空heapdump,weblogic,weblogic11g,heap-dump,Weblogic,Weblogic11g,Heap Dump,由于服务器上部署的Web应用程序生成OutOfMemoryError,我正在尝试从Weblogic 10.3.6生成一个完整的heapdump 我已经设置了以下开始脚本: -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump 当OutOfMemoryError发生时,Weblogic会在/path/to/heapdump文件夹中生成一个空hprof文件(0字节大小),但不会发生任何事情:服务器仍处于运行模式,即使无

由于服务器上部署的Web应用程序生成OutOfMemoryError,我正在尝试从Weblogic 10.3.6生成一个完整的heapdump

我已经设置了以下开始脚本:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/path/to/heapdump
当OutOfMemoryError发生时,Weblogic会在
/path/to/heapdump
文件夹中生成一个空hprof文件(0字节大小),但不会发生任何事情:服务器仍处于运行模式,即使无法再访问。 java进程仍处于活动状态,但处理器的占用率为0%

甚至server.out日志似乎也完全冻结,没有任何OutOfMemoryError的痕迹


配置有什么问题吗?

去过那里:(.我记得当时我们发现这有点合乎逻辑,因为没有足够的内存用于正常操作,JVM也无法自动找到足够的内存来创建heapdump。如果内存对我来说很好,那么当时我们做了两件事来调试内存泄漏。首先,我们是“幸运的”足够让问题定期发生,因此可以进行密切的手动监视(监视gc.log以查找重复的FullGC并监视控制台中的performance选项卡)。知道问题开始时,我们正在执行kill-3以手动获取转储。我们还使用了jstack{PID}(Linux上的JDK 1.6)很幸运。有了这些,开发人员当时能够识别内存泄漏。希望这能有所帮助。

好的,您的配置看起来不错。。您可能需要检查weblogic process用户是否有权编辑堆转储文件

您可以使用Java工具进行堆转储: JAVA_HOME/bin/jmap-dump:format=b,file=u文件的路径


%JROCKIT_HOME%\bin\jrcmd hprofdump filename=_文件的路径

您可能可以使用Java Flight Recorder保存事件并检查哪些对象正在生成OOM


(任何探查器都应该可以工作)。

我试图从应用程序端而不是服务器端调查OutOfMemory的原因。无论如何,感谢您的建议!