我的网络应用程序中存在一些内存泄漏问题,该问题部署在tomcat中。要找到根本原因,我通过设置:
启用了HeapDumpOnOutOfMemory错误-XX:-HapDumpOnOutOfMemoryError -XX:HeapDumpPath = / usr / local / tomcat / logs
并且tomcat中的内存设置为:
-Xms256m -Xmx768m -XX:PermSize = 128m -XX:MaxPermSize = 256m
当内存不足问题发生时,我看到了
java.lang.OutOfMemoryError:Java堆空间
在tomcat日志文件中,但未生成.hprof文件。我在这里错过了一些设置吗?
答案 0 :(得分:1)
正如@ beny23所写,你应该使用-XX:+HeapDumpOnOutOfMemoryError
并按照陈述here:
-XX:HeapDumpOnOutOfMemoryError选项此选项告诉Java HotSpot VM在从Java分配时生成堆转储 堆或永久代不能满足。没有 使用此选项运行的开销,因此它可能很有用 生产系统,OutOfMemoryError异常需要很长时间 时间到了。
检查您的Java版本,因为此选项在1.4.2 update 12,5.0 update 7中为introduced。