Использование параметра HeapDumpOnOutOfMemoryError для дампа кучи для JBoss - PullRequest
172 голосов
/ 12 февраля 2009

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

Ответы [ 4 ]

234 голосов
/ 12 февраля 2009

Вот что документация Oracle должна сказать:

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

45 голосов
/ 10 декабря 2013

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

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

например:.

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

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

3 голосов
/ 27 октября 2015

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

2 голосов
/ 26 сентября 2017

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

...