VisualVM не может профилировать; соединения и другие вкладки работают, но вкладка Sampler выдает:"Не удалось создать соединение JMX"

Я пытаюсь использовать VisualVM для профилирования приложения, работающего в EC2. VisualVM подключается к удаленному компьютеру и показывает мне вкладки Overview, Monitor и VisualGC (с данными), но когда я выбираю вкладку Sampler, я получаю:

Недоступен. Не удалось создать соединение JMX с целевым приложением. Используйте действие "Добавить JMX-соединение", чтобы присоединиться к приложению.

Я попытался добавить соединение JMX (к общему адресу EC2 и порту JMX, с которого было запущено приложение), но безрезультатно.

На вкладке Обзор VisualVM я вижу, что я установил jmxsettings приложения (и, соответственно, VisualVM видит эти настройки):

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9010
-Dcom.sun.management.jmxremote.local.only=false
-Dcom.sun.management.jmxremote.authenticate=false

Я использую модель безопасности EC2, которая оставляет все порты открытыми от EC2 до моей локальной машины. Я использую одну и ту же JVM на обеих машинах. Я запустил jstatd на машине EC2.

Не уверен, что еще попробовать.

2 ответа

Решение

Вы используете SSL-аутентификацию? Если не хотите его использовать, попробуйте заменить

-Dcom.sun.management.jmxremote.local.only=false

с

-Dcom.sun.management.jmxremote.ssl=false

Брайан,

Вы можете подключиться к порту ECM JMX с вашего локального jvisualvm, не открывая порт EC2 JMX. Я делаю это, используя ssh tunnel. Запустите команду ниже на вашем локальном компьютере:

ssh -i <aws .pem key>  ec2-user@<ec2-ip> -v -D 9010

А затем в jvisualvm, зайдите в Сервис -> Параметры -> Сеть и выберите Настройки прокси вручную и введите ниже:

Socks Proxy:  localhost  Port: 9010

В разделе No Proxy Hosts ничего не оставляйте и нажимайте OK.

Затем выберите localhost и щелкните правой кнопкой мыши Добавить JMX-соединение и введите localhost:9010 и все готово:)

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