Дамп Java-потока с помощью JCMD

Я использую Java1.8 на машине с Ubuntu Linux. Создал дамп потока с помощью следующей команды:

jcmd 1670 Thread.print > Thread.jfr

Скопировал файл на локальный компьютер MAC и дважды щелкнул, чтобы открыть его в JMC. Не удалось открыть. Как открыть это?

Я пытался открыть тот же файл в STS с установленным анализатором памяти, он не идентифицирует файл jfr.

1) Что не так с вышеуказанным подходом?

2) Как лучше всего анализировать потоки и дамп кучи?

3) Размер дампа кучи или потока зависит от размера оперативной памяти? у нас есть 64 ГБ оперативной памяти, назначенной 40 ГБ на один из серверов приложений. Есть ли проблемы с этим?

1 ответ

1) Файл JFR - это файл с большим количеством информации, созданной Регистратором полетов JDK. Это в двоичном формате. Вы не можете просто переименовать дамп стека текстовой нити, чтобы сделать запись полета.

2) Зависит от того, что вы ищете. Eclipse MAT хорош для отвалов кучи. Если вы хотите выполнить анализ кучи отходов, JOverflow хорош (см. Мой блог на http://hirt.se/blog/?p=854). Для JMC есть плагин анализа потоков, но я привык иметь более богатую информацию, чем просто дампы стеков потоков. Я предлагаю поближе взглянуть на JFR и JMC.

3) Дампы кучи, в зависимости от того, как вы создаете дамп, будут пропорциональны активным данным в вашей куче Java. Дамп стека потоков будет пропорционален количеству потоков и глубине трасс.

Если вы хотите узнать больше, посетите этот блог: http://hirt.se/blog/?p=939

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