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 являются живыми.