У меня проблема с утечкой памяти в моем веб-приложении, которое развертывается в tomcat. Чтобы найти основную причину, я включил ошибку HeapDumpOnOutOfMemory, установив:
-XX: - HeapDumpOnOutOfMemoryError -XX: HeapDumpPath =/usr/local/tomcat/logs
и настройки памяти в tomcat:
-Xms256m -Xmx768m -XX: PermSize = 128 м -XX: MaxPermSize = 256 м
Когда возникла проблема с памятью, я вижу
java.lang.OutOfMemoryError: пространство кучи Java
в файле журнала tomcat, но файл.hprof не генерируется. Я пропустил некоторые настройки здесь?
Как писал @beny23, вы должны использовать -XX:+HeapDumpOnOutOfMemoryError
и как указано здесь:
Опция -XX: HeapDumpOnOutOfMemoryError Эта опция указывает виртуальной машине Java HotSpot генерировать дамп кучи, когда выделение из кучи Java или постоянное поколение не могут быть выполнены. С этим параметром не возникает никаких накладных расходов, поэтому он может быть полезен для производственных систем, где исключение OutOfMemoryError занимает много времени.
Проверьте также свою версию Java, поскольку эта опция была введена в обновлении 1.4.2, обновлении 7 5.0.
-XX:+HeapDumpOnOutOfMemoryError
?