Подтвердить что ты не робот

Как анализировать информацию из дампа ядра Java?

Если процесс выходит из строя и покидает дамп ядра, или я создаю его с помощью gcore, то как его анализировать?

Я хотел бы иметь возможность использовать jmap, jstack, jstat и т.д., а также видеть значения всех переменных.

Таким образом, я могу найти причины для разбитого или замороженного JVM.

4b9b3361

Ответ 1

Хорошо, если вы создали основной дамп с gcore или gdb, тогда вам нужно будет преобразовать его в файл HPROF. Они могут использоваться VisualVM, Netbeans или Eclipse Memory Analyzer Tool (ранее SAP Memory Analyzer). Я бы рекомендовал Eclipse MAT.

Для преобразования файла используйте инструмент командной строки jmap.

# jmap -dump:format=b,file=dump.hprof /usr/bin/java core.1234

где:

dump.hprof - это имя файла hprof, который вы хотите создать

/usr/bin/java - это путь к версии двоичного кода java, который сгенерировал дамп ядра

core.1234 - ваш обычный основной файл.

Ответ 2

Если вы используете IBM JVM, скачать анализатор IBM Thread и Monitor Dump Analyzer. Это отличный инструмент. Он предоставляет подробные сведения о потоке и может указывать на взаимоблокировки и т.д. Следующий пост в блоге дает хороший обзор того, как его использовать.

Ответ 4

Вы уверены, что основной дамп вам нужен? Это будет содержать необработанные кишки запущенной JVM, а не информацию на уровне Java. Возможно, свалка кучи JVM - это то, что вам нужно.

Ответ 5

Собственно, VisualVM может обрабатывать дамп ядра приложения.

Просто запустите "Файл/Добавить VM Coredump" и добавьте новое приложение в проводник приложения. Затем вы можете взять дамп потока или кучу этой JVM.

Ответ 7

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

Карл

Ответ 8

Я рекомендую вам попробовать Netbeans Profiler. Он имеет богатый набор инструментов для анализа в реальном времени. Инструменты от IbM стоит попробовать для автономного анализа.

Ответ 9

jhat является одним из лучших, которые я использовал до сих пор. Чтобы взять основной дамп, я думаю, что вам лучше использовать jmap и jps вместо gcore (я его не использовал). Проверьте ссылку, чтобы увидеть, как использовать jhat, http://www.lshift.net/blog/2006/03/08/java-memory-profiling-with-jmap-and-jhat