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

Разница между javacore, дампом потока и дампом кучи в Websphere

Может ли кто-нибудь сказать мне точную разницу между javacore, дампом потока и дампом кучи? В какой ситуации каждая из них используется?

4b9b3361

Ответ 1

Дамп потока - это сброс стеков всех живых потоков. Таким образом, полезно для анализа того, что приложение в какой-то момент времени, и если это делается с интервалами, удобными при диагностике некоторых видов проблем "выполнения" (например, тупика потока).

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

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

В отношении WebSphere файл javacore представляет собой дамп потока, хотя и содержит много другой информации, такой как блокировки и загруженные классы, а также ограниченная информация об использовании памяти, а файл PHD - это куча дампов.

Если вы хотите прочитать файл javacore, вы можете сделать это вручную, но есть инструмент IBM (BM Thread и Monitor Dump Analyzer), который делает его более простым. Если вы хотите прочитать файл дампа кучи, вам понадобится один из многих инструментов IBM: MDD4J или Heap Analyzer.

Ответ 2

Дампы кучи в любое время, когда вы хотите видеть, что хранится в памяти. Ошибки вне памяти Heap dumps - изображение объектов памяти - используется для анализа памяти Ядра Java - также известные как дампы потоков или java дампы, используемые для просмотра активности потока внутри JVM в данный момент времени. IBM javacores должно много дополнительной информации, кроме только потоков и стеков - используется для определения зависаний, тупиков и причин для деградации производительности Системные ядра

Ответ 3

Дамп нити - это дамп всех трассировок стека потоков, т.е. как если бы каждый поток внезапно бросал исключение, а printStackTrace - это. Это так, что вы можете видеть, что каждый поток выполняет в определенной точке, и, например, очень хорошо поймать тупики.

Дамп кучи - это "двоичный дамп" полной памяти, которую использует JVM, и, например, полезен, если вам нужно знать, почему у вас заканчивается память - в дампе кучи вы могли бы, например, увидеть, что вы имеют один миллиард пользовательских объектов, хотя у вас должна быть только тысяча, что указывает на проблему сохранения памяти.

Ответ 4

Дампы потоков - это моментальный снимок javacore, показывающий моментальные потоки, запущенные в JVM, полезно отлаживать проблемы с зависанием, он будет предоставлять информацию о мертвых блокировках уровня Java, а также версия jmacores IBm предоставляет гораздо более полезную информацию, такую ​​как использование кучи, CPU использование каждой нити и общего использования кучи вместе с количеством классов, нагруженных JVM.

Heapdumps предоставляет информацию об использовании Java-кучи JVM, которая может использоваться для отладки утечек памяти. Heapdumps генерируются IBM JVM, когда JVM запускается в outofmemoryerror, Heapdumps предназначены только для утечек кучи в java, ошибка из-за неправильной памяти может приводить к системным дампам обычно с общей ошибкой защиты GPF.

Ответ 5

JVM head dump - это моментальный снимок памяти кучи JVM в заданное время. Таким образом, это просто кучевое представление JVM. Это состояние объектов.

JVM thread dump - это моментальный снимок потоков JVM в данный момент времени. Таким образом, то, что делали потоки в любой момент времени. Это состояние потоков. Это помогает понять такие, как заблокированные потоки, повешенные потоки и текущие потоки.

В главном дампе больше информации о уровне класса java, чем дампе потока. Например, Дамп главы хорош для анализа проблем памяти кучи JVM и ошибок OutOfMemoryError. JVM head dump генерируется автоматически, когда происходит что-то вроде OutOfMemoryError. Сброс кучи можно создать вручную, убив процесс, используя kill -3. Генерация дампа кучи - это интенсивная вычислительная задача, которая, вероятно, повесит ваш jvm. так что его не использовать, чтобы использовать это. Куча может быть проанализирована с использованием таких инструментов, как анализатор памяти eclipse.

Базовый дамп - это использование памяти объектов уровня os. У него больше информации, чем свалка. core dump не создается, когда мы намеренно убиваем процесс.