![]() |
Всем привет.
Недавно, столкнулся с проблемой, что перестал нормально сниматься дамп кучи. Ну точнее он снимается, но крааайне медленно. За ночь выгрузил мне 200 мб из 4гб. Думал с диском что-то, пробовал на другой тачке, на другой JVM, под другой операционкой. Пробовал всяко разно, через jmap, jcmd, MBean. В итоге, ничего не меняется. Тут не нужно быть Шерлоком Холмсом, чтобы предположить, что трабла все же в моем коде. Я с таким за годы разработки столкнулся в первый раз) Теперь вопрос. Что это за фигня может быть? Сталкивался ли кто-то с подобным и если да, то как решали? Без дампа хипа жить то конечно можно, но ппц как тоскливо... |
Попробуй через GNU Debugger How to take a java heapdump without downtime! » Daniel Schwartz
|
Цитата:
1710354216714.webpAristo · 13 Мар 2024 в 21:24' data-fancybox="lb-thread-27444" data-lb-caption-extra-html="" data-lb-sidebar-href="" data-single-image="1" data-src="https://mmo-dev.info/attachments/1710354216714-webp.73660/" data-type="image" style="cursor: pointer;" title="1710354216714.webp"> |
Попробуй так:
Код: Код:
jhsdb jmap --binaryheap --dumpfile jvm.hprof --core /home/[user]/jvm.core --exe /usr/lib/jvm/java-21-graalvm/bin/java |
Цитата:
Я сюда перепишу кратко тезисы основные с той статьи. Вдруг линк помрет, чтобы если кто с таким же столкнется, решение было 1) С помощью утилиты Код: Код:
jps2) С помощью gdb(GNU Debugger) подключаемся к процессу(мне потребовались повышенные права): Код: Код:
gdb –pid=PID который мы получили через jpsКод: Код:
gcore /tmp/jvm.coreКод: Код:
detachКод: Код:
quit4) После этого подключаемся к файлу ядра и снимаем с него дамп хипа командой Код: Код:
jhsdb jmap --binaryheap --dumpfile jvm.hprof --core /home/[user]/jvm.core --exe /usr/lib/jvm/java-21-graalvm/bin/java |
| Время: 19:06 |