Как открыть частичный файл jfr

Когда я использую конфигурацию, как показано ниже, в своем приложении, он всегда получает файл xxx.jfr.part. Как я могу открыть файл XXX.jfr.part в инструменте Java Flight Recorder? Как я могу изменить конфигурацию, чтобы создать файл меньшего размера .part?

Конфигурация в моем приложении:
-XX:+FlightRecorder
-XX:FlightRecorderOptions=defaultrecording=true,disk=true,maxsize=200m,maxage=3h,repository=/${MyApplicationPath}/log/ jfr

Не удается открыть неполный файл:
|MyApplicationPath
__|log
____|jfr
_______|2018_11_14_05_33_06_17296
___________|2018_11_14_05_33_07_17296_0.jfr.part 2 727 КБ< br/> ___________|2018_11_14_05_33_07_17296_0.jfr 0 КБ


person haibin    schedule 29.11.2018    source источник


Ответы (1)


Файл .part представляет собой незавершенный файл. Рекомендуемый способ извлечения данных из дискового репозитория — использование инструмента jcmd.

Oracle JDK 7/8 (который вы, кажется, используете)

jcmd <pid> JFR.dump recording=0 filename=dump.jfr

Это завершит файл .part и скопирует данные безопасным образом. Невозможно прочитать файл .part, так как важная информация о том, как анализировать файл, находится в конце.

person Kire Haglin    schedule 30.11.2018
comment
Есть ли у нас способ добавить конфигурацию в аргументы JVM для автоматического создания файла jfr или команды для сброса буфера в файл jfr? - person haibin; 30.11.2018
comment
-XX:StartFlightrecording=dumponexit=true,filename=dump.jfr будет записывать запись при выходе из JVM. Также можно указать продолжительность, например -XX:StartFlightrecording=duration=30s,filename=dump.jfr, чтобы сбросить запись через 30 с. - person Kire Haglin; 01.12.2018