Java 1.7.45: Как получить полный дамп кучи процесса вместо усеченного дампа

Я использую команду ниже, чтобы получить дамп кучи

jmap -dump:live,format=b,file=/tmp/heap2.bin <pid>

VM выбирает:

-Xms2g -Xmx4g  -XX:+UseG1GC -XX:MaxGCPauseMillis=1500 
-XX:G1HeapRegionSize=2 -XX:+PrintFlagsFinal -XX:ParallelGCThreads=4 -XX:ConcGCThreads=2 

But this command generates 300+ MB bin heap dump file for process running with 1.2 GB memory(1,2 ГБ памяти было показано в столбце RES верхней команды)

РЕДАКТИРОВАТЬ: я удалил: live опция после предложения @kdgregory, но дамп кучи не генерируется из-за G1GC проблема (связанный вопрос SE: ошибка дампа кучи Java с помощью команды jmap: преждевременный EOF)

Мои запросы:

  1. Как получить полный дамп процесса с другими алгоритмами GC, такими как CMS?

  2. Как получить дамп кучи вместе с памятью PermGen тоже? (permstat из командной строки для меня бесполезен). Меня также интересует анализ ошибки PermGen OutOfMemory.

0 ответов

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