Влияет ли включение удаленного мониторинга JConsole на производительность системы в производстве?

Oracle / Sun говорит, что все в порядке, если вы не запускаете его локально на производственной коробке? http://download.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html

Примечание: использование jconsole для мониторинга локального приложения полезно для разработки и прототипирования, но не рекомендуется для производственных сред, поскольку jconsole сам потребляет значительные системные ресурсы. Удаленный мониторинг рекомендуется изолировать приложение jconsole от платформа контролируется.

вы когда-нибудь включали его в производственной среде и испытывали какие-либо воздействия на производительность?

2 ответов


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

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9999 
-Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.remote.ssl=false

существует немного больше затрат на производительность, если вы включите SSL и аутентификацию мандата:

-Dcom.sun.management.jmxremote.authenticate=true 
-Dcom.sun.management.remote.ssl=true
-Dcom.sun.management.jmxremote.password.file=jmxremote.password

вышеуказанные 2 сценария запустят только сервер mbean и сервер соединителя RMI в вашей производственной JVM. Подключение к этому JVM удаленно будет дороже, но все зависит от того, какие представления вы смотрите (например, представления GC требуют, чтобы все эти данные были собраны и переданы обратно клиенту jConsole, что не является бесплатным), а также операции, которые вы вызываете удаленно.

вы можете прочитать больше статистики из следующего сообщения в блоге:


вы можете использовать jconsole для удаленного подключения к производственному серверу с помощью открытых портов JMX... однако всегда лучше реплицировать сценарий в другой среде и запускать jconsole там....