Profiliranje pokrenute Java aplikacije u naredbenom retku

Profiliram pokretanje Java aplikacija često s VisualVM-om, ali treba X da se pokrene na mašini.

Znam da mogu povezivati ​​se putem upravljačkog porta, ali to će biti uzorkovanje van mreže, što mi nije dovoljno.

Dakle, tražim rješenje s kojim mogu iz naredbenog retka profilirati upotrebu CPU-a metoda pokrenute Java aplikacije. . Dovoljno mi je da prikupim podatke na serveru i tada se prikupljeni podaci mogu analizirati na drugom računaru.

Ažuriranje:

Čini se da moram biti precizniji. Želim profilirati pokrenutu Java aplikaciju iz naredbenog retka, ne želim je zaustaviti i ponovo pokrenuti.

54
задан KARASZI István 3 September 2019 в 21:56
поделиться

1 ответ

Самое точное профилирование может быть достигнуто с https://github.com/jvm-profiling-tools/async-profiler.

Этот проект является низким служебным профилировщиком выборки для Java, которая не страдает от проблемы предвзятости Safepoint. Это показывает Определенные для горячей точки API, чтобы собрать отслеживания стека и отследить выделения памяти. Профилировщик работает с OpenJDK, Oracle JDK и другие Среды выполнения Java на основе HotSpot JVM.

Вот мой сценарий, чтобы установить и выполнить его от командной строки:

асинхронный-profiler.sh

if [ ! -d profiler ]; then
  mkdir profiler && cd profiler && curl -L https://github.com/jvm-profiling-tools/async-profiler/releases/download/v1.6-ea/async-profiler-1.6-ea-linux-x64.tar.gz | tar xvz
  echo 1 > /proc/sys/kernel/perf_event_paranoid
  echo 0 > /proc/sys/kernel/kptr_restrict
  #apt install openjdk-8-dbg
else
  cd profiler
fi

#jps

./profiler.sh -d 60 -f dump_`date +%Y-%m-%d_%H-%M-%S`.jfr `jps -q`

Это предполагает, что приложение запущено при том же пользователе и существует единственный PID процесса Java, который будет перечислен jps. Профильная продолжительность составляет 60 секунд. Никакая модификация опций запуска приложения или перезапуск приложения не необходимы.

GUI для исследования дампов встроен в Окончательную ИДЕЮ IntelliJ: https://www.jetbrains.com/help/idea/cpu-profiler.html .

1
ответ дан 7 November 2019 в 08:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: