В каком формате файл Heapdump лучше всего анализировать? Это хпроф?

Мне было поручено найти основную причину проблемы с полным сборщиком мусора (сборщик мусора) в нашей производственной среде. Это происходит случайным образом, и я считаю наиболее вероятным случаем утечку памяти в текущем приложении. Я надеюсь взять дамп памяти из нашей производственной среды (linux) и проанализировать его с помощью инструментов с графическим интерфейсом, таких как Eclipse Memory Analyzer.

Каков наилучший формат файла для анализа файла дампа кучи? Это формат hprof? Я собираюсь использовать команду jmap для получения дампа кучи. Нужно ли указывать опцию "format=b" при получении дампа памяти?

Ниже приведен пример команды, которую я поручу нашей службе поддержки. (5980 — пример pid).

Если вы верите в какой-либо лучший подход, пожалуйста, дайте мне знать.

jmap -dump:format=b,file=hpdump.hprof 5980

Спасибо


person Asanka Siriwardena    schedule 16.12.2014    source источник
comment
Подумайте также о том, чтобы они регулярно запускали jstat и отображали результаты. Узнайте, действительно ли это непредсказуемо. Кроме того, работа с параметром -XX:+HeapDumpOnOutOfMemoryError приведет к тому, что JVM создаст дамп именно тогда, когда это необходимо. В-третьих, запустите эти инструменты на сервере разработки, чтобы ознакомиться с результатами. Еще лучше запустить jvisualvm.   -  person flup    schedule 16.12.2014
comment
Требуется ли дополнительная аппаратная поддержка для анализа такого дампа памяти? Иногда анализатор памяти Eclipse дает сбой.   -  person Asanka Siriwardena    schedule 16.12.2014
comment
Чем больше дамп памяти, тем сложнее его анализировать. Так что, если вы раньше советовали просто увеличить память, чтобы посмотреть, поможет ли это, а теперь просите прислать вам гигантский дамп, который возникает при возникновении ошибки OOM, то анализатору может быть тяжело при анализе на машине. с меньшим объемом памяти.   -  person flup    schedule 16.12.2014


Ответы (2)


команда вроде в порядке. Да, есть несколько других инструментов для анализа дампа кучи. см. это

person Ankur Singhal    schedule 16.12.2014
comment
Требуется ли дополнительная аппаратная поддержка для анализа такого дампа памяти? Иногда анализатор памяти Eclipse дает сбой. - person Asanka Siriwardena; 16.12.2014
comment
Всегда сложно анализировать проблемы с утечкой памяти, я наткнулся на несколько коммерческих инструментов с множеством опций для их выявления. Всегда полезно следовать рекомендациям по предотвращению утечек памяти. - person Asanka Siriwardena; 01.04.2016

Я не смог взять файлы дампа кучи из-за ограничений по пространству в производственной среде. Анализ файлов гистограмм также ни к чему не привел. Вместо этого я смог найти инструмент для анализа журналов GC, IBM GCMV, который помогает анализировать журналы сборщика мусора в определенные дни года, вызвавшие проблему с полным сборщиком мусора.

Графики журналов сборщика мусора раскрыли всю историю. Стремительный рост потребления памяти можно было наблюдать в каждом сценарии, и требовалось всего менее 10 минут, чтобы охватить максимальный объем памяти с начала определенного события. Я рассчитал временную метку начальных точек роста и сравнил с журналами сервера соответствующие временные метки. Это предоставило веские доказательства нескольких определенных процессов, которые часто появлялись в журналах сервера, когда началось восстание.

person Asanka Siriwardena    schedule 23.12.2014