JRockit полный дамп памяти

Я подозреваю, что у моего приложения есть утечка памяти. У меня есть журналы GC и когда я смотрю на них, я вижу, что использование памяти составляет около 9-10 ГБ. Затем я пытаюсь сбросить память в файл, размер файла составляет около 5 ГБ.

Вопрос в том, почему дамп не получил 9 ГБ, а только 5 ГБ? Как я могу заставить jrcmd создавать дамп полной памяти?

Команда, которую я использую:

jrcmd 11906 hprofdump filename=/path_to_dump/dump.hprof

JVM:

Java(TM) Platform, Standard Edition for Business (build 1.5.0_28-b04)
Oracle JRockit(R) (build R28.1.3-11-141760-1.5.0_28-20110301-1432-linux-x86_64, compiled mode)

Обновить:

Проблема в том, что из-за журналов GC память никогда не освобождается до уровня ниже 9 ГБ. Инструмент JDK усеченный дамп до 5 ГБ. Зачем?

2 ответа

Как выглядит ваш журнал GC?

Кстати, вы пробовали инструмент управления полетами JRockit под названием Memleak? Это может быть полезно для обнаружения утечек памяти.

Я предполагаю, что JRockit ведет себя подобно HotSpot: если ваш оперативный набор данных составляет всего 5 ГБ, то дамп также только 5 ГБ. Я предполагаю, что только 5 ГБ из ваших 9-10 являются живыми.

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