Следуя предыдущим ответам, но имейте в виду несколько дополнительных частей для подтверждения:
- не может произвести выборку памяти удаленно
- использовать X для запуска экземпляра VisualVM с локального в jvm и экспортаDISPLAY обратно на вашу рабочую станцию
есть некоторая неприятная проблема с jdk_1.7.0_25, которая вызывает, по крайней мере, в моем случае под CentOS исключение, возникающее при попытке запустить jvisualvm или загруженный VisualVM:
java.lang.NoClassDefFoundError: Не удалось инициализировать класс sun.awt.SunToolkit
использовать одну и ту же учетную запись пользователя для запуска вашей целевой JVM (в моем случае сервера Tomcat) и вашего экземпляраVisualVM
Из предыдущего ответа это было полезно (спасибо Мортеза Шахриари Ниа )
$ ssh -Y user@remotemachine
$ wget http://java.net/projects/visualvm/downloads/download/release135/visualvm_136.zip
$ unzip visualvm_136.zip
$ cd visualvm_136/bin
$ ./visualvm
Каждый раз перед запуском "visualvm_136 /bin / visualvm ", верните свой дисплей X на рабочую станцию, которая вам необходима ...
- локальный компьютер: $ xhost +
- удаленный компьютер: $ export DISPLAY = your_workstation_ip: 0.0
Как только он запустится (и ваша целевая JVM уже запущена, и вы используете ту же учетную запись пользователя, что и в # 4 выше), вы увидите целевой PID, указанный в разделе «Local» VisualVM.
Я смог использовать разные версии jdk и все еще мог видеть включенный сэмплер памяти - в моем случае целевая JVM Tomcat работала с jdk_1.7.0_25, тогда как мой экземпляр VisualVM был более ранней версией jdk_1.7.0_04 (из-запроблема № 3, пришлось использовать другую версию для VisualVM).
Надеюсь, что помогает ...