Я пытаюсь профилировать WebSphere, используя hprof поверх стека IBM (J9 JVM в AIX / Linux). В частности, мне интересны выходные данные процессора из hprof и, в частности, время запуска (с момента запуска WS до его готовности к работе).
Проблема в том, что я не могу получить выходные данные процессора в файле результатов hprof.
Я использую следующий аргумент JVM для настройки hprof: -Xrunhprof:cpu=samples,file=path-to-hprof.txt
, для вывода вывода hprof в формате ASCII. Согласно сгенерированному выводу hprof вывод CPU SAMPLES
генерируется только при выходе из программы:
Генерируются записи HEAP DUMP, SITES, CPU SAMPLES | TIME и MONITOR DUMP | TIME
при выходе из программы.
Итак, для корректного завершения работы WebSphere после его успешного запуска я использую сценарий stopServer.sh
и ожидаю, что выходные данные CPU SAMPLES будут присутствовать в файле java.hprof.txt
результата после завершения работы, но это не так. .
Что я делаю не так? Есть ли лучший способ использовать hprof с WebSphere и генерировать результаты профилирования процессора? Любая помощь будет высоко ценится!
Редактировать: Я использую WebSphere версии 8.0.0.11 на IBM J9 VM (сборка 2.6, JRE 1.6.0 20150619_253846) на RHEL 7.5.
P.S .: Я также искал способ закрытия WS из графического интерфейса консоли управления, но не смог его найти.
PPS: Тем временем я использую очень хороший инструмент jvmtop с опцией --profile <pid>
, но он обеспечивает только частичное понимание и, в отличие от hprof, имеет быть прикрепленным на лету, поэтому некоторые части исполнения будут потеряны.