java - tomcat不在内存不足错误时生成hprof文件

我的Web应用程序中部署了tomcat的内存泄漏问题。为了找到根本原因,我通过设置启用了HeapDumpOnOutOfMemory错误:


  -XX:-HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = / usr / local / tomcat / logs


并且tomcat中的内存设置为:


  -Xms256m -Xmx768m -XX:PermSize = 128m -XX:MaxPermSize = 256m


当发生内存不足问题时,我看到了


  java.lang.OutOfMemoryError:Java堆空间


在tomcat日志文件上,但不会生成.hprof文件。我在这里缺少某些设置吗?

最佳答案

如@ beny23所写,您应该使用-XX:+HeapDumpOnOutOfMemoryError

并如here所述:


  -XX:HeapDumpOnOutOfMemoryError选项此选项告诉Java
  HotSpot VM从Java分配时生成堆转储
  堆或永久生成无法满足。没有
  使用此选项运行时的开销,因此对于
  生产系统,其中OutOfMemoryError异常需要很长时间
  时间浮出水面。


也请检查您的Java版本,因为此选项在1.4.2更新12、5.0更新7中为introduced

本文翻译自 https://stackoverflow.com/questions/25069743/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 java tomcat out-of-memory heap-dump hprof


相关文章:

java - 在Java中解析没有DOM的高度嵌套XML

android - 相机在Motorola Razr上崩溃-内存不足

java - Spring Data Rest PagingAndSortingRepository AbstractMethodError(RepositoryFactorySupport)

tomcat - 小型Linode的Jetty或Tomcat

java - 如何将JDBC连接从Tomcat实现转换为Jetty?

java - 来自Java客户端的SSL连接

java - 返回新对象时的Java内存管理

java - 如何在Java中将泛型列表类作为参数传递给泛型方法?

java - 如何增加hadoop中的map任务数量以及如何获得hadoop mapreduce作业所花费的总时间

matlab - 在Matlab中使用svmtrain内存不足