Использование параметра HeapDumpOnOutOfMemoryError для дампа кучи для JBoss

Мне сказали, что я могу добавить -XX:+HeapDumpOnOutOfMemoryError параметр для моего JVM start up options для моего сценария запуска JBoss, чтобы получить дамп кучи, когда мы получаем ошибку из памяти в нашем приложении. Мне было интересно, где эти данные сбрасываются? Это просто консоль или какой-то файл журнала? Если это только для консоли, что делать, если я не вошел в сервер Unix через консоль?

4 ответов


вот что документация Oracle говорит:

по умолчанию дамп "кучи" создан в файл под названием java_pid.hprof ПО в рабочий каталог виртуальной машины, как в пример выше. Вы можете указать альтернативное имя файла или каталог с . Для пример -XX:HeapDumpPath=/disk2/dumps вызовет сброс кучи генерируется в /disk2/dumps справочник.


вы можете просмотреть этот дамп из консоли UNIX.

путь для дампа кучи будет предоставлен как переменная сразу после того, как вы разместили указанную переменную.

например:

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${DOMAIN_HOME}/logs/mps"

вы можете просмотреть дамп из консоли по указанному пути.


Мне было трудно расшифровать, что означает "рабочий каталог виртуальной машины". В моем примере я использовал программу Java Service Wrapper для выполнения jar-файлы дампа были созданы в каталоге, где я разместил программу-оболочку, например c:\myapp\bin - ... Причина, по которой я обнаружил это, заключается в том, что файлы могут быть довольно большими, и они заполнили жесткий диск, прежде чем я обнаружил их местоположение.


Если вы не используете опцию "-XX:HeapDumpPath", то в случае JBoss EAP/As по умолчанию файл дампа кучи будет создан в каталоге" JBOSS_HOME/bin".