Как удаленно профилировать веб-приложение с помощью JProfiler?

Я запускаю веб-приложение, развернутое на удаленном сервере, и у меня есть IP-адрес и URL-адрес этого приложения. Когда я нажимаю URL-адрес в браузере, отображается приложение.

Теперь мне нужно профилировать это веб-приложение, так как мне нужно выяснить, почему оно работает так медленно.

Я пытался использовать JProfiler, но безуспешно. Может кто-нибудь посоветовать, как настроить JProfiler для удаленного профилирования?


person user1726942    schedule 18.10.2012    source источник
comment
Возможно, вы захотите добавить некоторые подробности о том, что вы уже сделали с JProfiler, чтобы мы могли лучше понять, где вы сейчас находитесь.   -  person buruzaemon    schedule 18.10.2012
comment
resources.ej-technologies.com/jprofiler/help/doc/   -  person Vikdor    schedule 18.10.2012


Ответы (1)


Самый простой способ профилировать удаленную JVM в системе без графического интерфейса:

  • Извлеките архив JProfiler (не установщик) куда-нибудь на удаленную машину.
  • В каталоге установки вызовите bin/jpenable и выберите JVM, которую вы хотите профилировать.
  • На локальном компьютере запустите JProfiler и создайте новый сеанс типа «Присоединиться к профилированной JVM (локальной или удаленной)».
  • В конфигурации сеанса введите имя хоста и порт, заданные jpenable.
  • Начать сеанс и профиль

Совет. Чтобы найти узкое место, используйте выборку, а не инструментарий.


Обновление для JProfiler 10.0+

Начиная с JProfiler 10.0, существует функция удаленного подключения, которая не требует каких-либо из вышеперечисленных шагов, вам просто нужны учетные данные SSH для удаленного компьютера.

введите описание изображения здесь

Соединения SSH выполняются непосредственно JProfiler, вам не нужно самостоятельно настраивать туннель SSH. Также возможно настроить многоскачковые туннели.

JProfiler автоматически загрузит требуемый пакет агента, загрузит его на удаленный компьютер и с помощью инструментов командной строки соберет информацию, которую вы видите в диалоговом окне присоединения. Пакет агента кэшируется, поэтому это делается только один раз.

введите описание изображения здесь

Поскольку вы должны аутентифицироваться как тот же пользователь, который запустил JVM, которую вы хотите профилировать, можно переключить пользователя для удаленного подключения. Например, вы можете использовать sudo для пользователя root, чтобы подключиться к службе, запущенной с правами root.

введите описание изображения здесь

Отображаются все JVM, запущенные выбранным пользователем, и вы можете либо начать полный сеанс профилирования, либо просто взять дамп кучи HPROF с низкими издержками и открыть его в JProfiler.

введите описание изображения здесь

person Ingo Kegel    schedule 18.10.2012
comment
Кегал, когда я запускаю jpenable, он запрашивает поиск jvm, а затем я ввожу «да», затем он показывает мне, что непрофилированные JVM не найдены, пожалуйста, предложите, что не так - person dom; 04.01.2017
comment
JProfiler ожидает, что у пользователя, запускающего jvm, будет среда. Я предполагаю, что это ошибка, я имею в виду, например, что он хочет иметь возможность устанавливать программное обеспечение на несуществующий /home/tomcat/. - person Saiyine; 27.09.2017
comment
@Saiyine Он не устанавливает никаких файлов, но механизм присоединения использует каталог $TMP, поэтому он должен существовать и быть доступным для записи пользователем. - person Ingo Kegel; 27.09.2017
comment
Он пытается установить jpenable в доме пользователя, запустившего среду выполнения Java. РЕДАКТИРОВАТЬ: Это даже сказано в графическом интерфейсе -> $HOME/.jprofiler10 - person Saiyine; 27.09.2017
comment
Да, действительно, я только что добавил информацию для подключения SSH. Это не относится к списку ручных шагов в верхней части ответа. - person Ingo Kegel; 27.09.2017
comment
@IngoKegel Я пытался подключиться к удаленному серверу с помощью JProfiler, в первый раз я могу подключиться к удаленному серверу, но снова я попытался подключить процесс, выделенный красным цветом. сообщение об ошибке показывает, что этот сеанс был перехвачен другим графическим интерфейсом JProfile. как отключить графический интерфейс JProfiler. - person AsankaD7; 30.05.2019
comment
В VPN бывают ситуации, когда агент не обнаруживает разрыв соединения. К сожалению, в настоящее время нет способа сказать агенту сбросить соединение, и единственный способ — перезапустить профилированную JVM. - person Ingo Kegel; 30.05.2019