2012-03-27 5 views

ответ

1

Вы не можете получить куча дампа в процессе, который больше не работает. В следующий раз, когда вы запустите Tomcat, вам придется сначала отредактировать файл в каталоге/bin с именем catalina.sh, чтобы он содержал параметры автоматического выгрузки кучи, если в нем заканчивается память.

Что нужно сделать, так это отредактировать переменную JAVA_OPTS, чтобы в ней были указаны параметры JVM. Так в верхней части файла, после того, как JAVA_OPTS был создан, вам нужно сделать что-то вроде

JAVA_OPTS="$JAVA_OPTS -XX:+HeapDumpOnOutOfMemoryError"

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

4

Этот процесс больше не существует. Таким образом, нет кучи для сброса. Используйте '-XX: + HeapDumpOnOutOfMemoryError' в следующий раз.

+0

Это означает, что мне нужно подождать до следующего сбоя :( –

+0

Да, это так. – Jon

1

Если ваше приложение не отвечает, но JVM все еще хромает, вы можете попробовать использовать JConsole и запустить кучу кучи. Поиск Heap Dump на этом link

3

Вы можете получить дамп кучи во время выполнения:

jmap -dump: живой, формат = б, файл = heap.dump

Смежные вопросы