Удаленное профилирование JVM

Мне нужно удаленно профилировать JVM для использования процессора, статистики ввода-вывода и количества дескрипторов/обработчиков файлов и поддерживать платформы *NIX и windows при этом. Я попытался использовать SIGAR API, который очень хорошо абстрагирует платформы, используя базовую реализацию собственного кода, но он не поддерживает удаленное профилирование. Есть ли альтернативный API, который может это сделать? Кроме того, возможно ли расширить рамки SIGAR для удаленного мониторинга JVM? Любые намеки на то, где смотреть, были бы полезный. Заранее спасибо!

4 ответов


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

в Eclipse tptp, с помощью имеет профилирование и даже хорошие возможности построения графиков, они упоминают сеть в своих Подсистема Сбора Данных

на JVisualVM, поставляется с JDK, также имеет удаленный раздел.


профилировщик NetBeans предоставляет все виды профилирования, включая удаленные сеансы. См. эту страницу из документации, чтобы начать удаленную отладку:

прикрепление профилировщика к локальному или удаленному JVM


вы можете попробовать JProfiler. Хотя его платный вы можете попробовать оценочную версию first


Visual VM был одним из лучших профилей и является открытым исходным кодом. Я использую его для профилирования JVM, и он поставляется с разными плагинами/расширениями для просмотра разных отчетов.

Я также попытался интегрировать с серверами WebSphere/Tomcat/Liferay и Glassfish. Фактически, любая JVM, имеющая возможность удаленного управления JMX, будет идентифицирована визуальной виртуальной машиной.

по умолчанию Visual VM идентифицирует Sun JVM, но, например, не может распознать IBM JVM. Для любые другие не-Sun JVMs, вам нужно будет включить возможность удаленного управления JMX для подключения к JVM с помощью Visual VM.