Недостаточно памяти при анализе дампа кучи Java

У меня есть любопытная проблема, мне нужно проанализировать дамп кучи Java (из IBM JRE), который имеет размер 1,5 ГБ, проблема в том, что при анализе дампа (я пробовал HeapAnalyzer и IBM Memory Analyzer 0.5) инструменты не хватает памяти, я не могу проанализировать дамп. На моей машине 3 ГБ ОЗУ, но, похоже, этого недостаточно для анализа дампа 1,5 ГБ,

У меня вопрос: знаете ли вы конкретный инструмент для анализа дампа кучи (поддерживающий дампы IBM JRE), который я мог бы запустить с объемом памяти, который у меня есть?

Благодарю.

2 ответа

Решение

Попробуйте инструмент анализа памяти SAP, который также имеет плагин Eclipse. Этот инструмент создает индексные файлы на диске, поскольку он обрабатывает файл дампа и требует гораздо меньше памяти, чем другие ваши параметры. Я уверен, что он поддерживает более новые IBM JRE. При этом - при использовании файла дампа объемом 1,5 ГБ у вас может не быть другого выбора, кроме как запустить 64-битную JVM для анализа этого файла - я обычно оцениваю, что для файла дампа кучи размером n требуется 5*n памяти, чтобы открыть его с использованием стандартного инструменты и 3*n памяти, чтобы открыть с помощью MAT, но ваш milage будет варьироваться в зависимости от того, что на самом деле содержит дамп.

Трудно проанализировать дамп кучи объемом 1,5 ГБ в ОЗУ объемом 3 ГБ. Потому что в этих 3 ГБ ваша ОС, другие процессы, службы... легко заняли бы 0,5 ГБ. Таким образом, у вас осталось только 2,5 ГБ. Инструмент heapHero эффективен при анализе дампов кучи. Для анализа потребуется всего 0,5 ГБ больше, чем размер дампа кучи. Вы можете попробовать. Но лучшая рекомендация - проанализировать дамп кучи на машине с достаточным объемом памяти, ИЛИ вы можете получить экземпляр AWS ec2 только на время анализа дампов кучи. Проанализировав дампы кучи, вы можете завершить работу экземпляра.

Другие вопросы по тегам