У меня была проблема с попыткой сделать это на производственном компьютере, создание файла hprof с jmap заняло много лет и естественным образом заблокировало веб-приложение java на века.
Я нашел эту страницу:
http://blogs.atlassian.com/2013/03/so-you-want-your-jvms-heap/
Это объясняет, что вы также можете использовать gdb (в системах linux) для выгрузки ядра процесса Java.
С помощью этого файла ядра вы можете сгенерировать файл hprof дляанализ в отдельном процессе, который предотвращает прерывание вашего процесса на сервере Java в течение такого длительного времени.Что бы произошло, если бы вы выполнили ту же операцию с jmap.
Подводя итог:
загрузите и установите gdb
apt-get update
apt-get install gdb
...
получить идентификатор процесса java интересующего вас процесса java
jps ...
запустить сеанс GDB с этим процессом
GDB [pid] ...
, а затем создать файл ядра:
gcore /tmp/jvm.core
завершить сеанс GDB
отключить выход
затем используйте созданный файл ядра для создания файла hprof:
sudo jmap -dump: format = b, file = jvm.hprof / usr / bin / java /tmp/jvm.core
затем (g) заархивируйте файл и скопируйте его на свой компьютер для дальнейшего анализа.