Подтвердить что ты не робот

Хорошо ли включить jmx (лямбда-зонд) на производственный сервер?

Мы наблюдаем некоторое замедление в нашем веб-приложении, развернутом на Tomcat 5.5.17, работающем на Sun VM 1.5.0_06-b05, и наша хостинговая компания не предоставляет достаточно данных, чтобы найти проблему.

Мы рассматриваем возможность установки лямбда-зонда на производственном сервере, но для этого требуется включить JMX (com.sun.management.jmxremote), чтобы для получения статистики памяти и процессора.

Предоставляет ли JMX серьезное снижение производительности?

Если мы включим JMX, мы откроем любой недостаток безопасности? Нужно ли настраивать безопасную проверку подлинности, если мы разрешаем только локальный доступ к JMX?

Кто-нибудь использует тот же (tomcat + лямбда-зонд) без проблем при производстве?

UPDATE

Глядя на ответы, кажется, что включение только JMX не несет значительных накладных расходов для виртуальной машины. Дополнительная работа может возникнуть, если приложение мониторинга, прикрепленное к виртуальной машине, будь то JConsole, лямбда-зонд или любое другое, опросит с чрезмерной отдачей.

4b9b3361

Ответ 1

Вы можете преодолеть недостатки безопасности, используя безопасную аутентификацию. Простое обслуживание JMX-сервиса не несет каких-либо значительных накладных расходов и, как правило, является хорошей идеей. Здесь есть эталон .

Ответ 2

Накладные расходы от JMX низки, и вы можете исправить безопасность, используя SSL и аутентификацию. Set -Dcom.sun.management.jmxremote.ssl = true и -Dcom.sun.management.jmxremote.authenticate = true

Смотрите здесь здесь для получения дополнительной информации о настройке сертификатов и т.д.

Накладные расходы становятся проблемой, когда вы начинаете вводить код. Накладные расходы могут быть существенными, и приборы могут повлиять на поведение вашего приложения. Вы не увидите, что получилось, так называемый эффект heisenberg.

Если вам нужны небольшие накладные расходы, я бы использовал инструменты, которые поставляются с JRockit. Они копируют информацию, которую собирает JVM все время. JVM сохраняет статистику о том, какие методы работают максимально, чтобы решить, какие методы он должен оптимизировать. JVM также отслеживает использование/шаблоны памяти, чтобы решить, какую gc-stategy выбрать. JRockit предоставляет такие данные в инструменты JRockit, не добавляя накладные расходы на аппаратные средства, которые вы обычно получаете из отдельного JMVTI -agent.

Ответ 3

JMX - это просто сокет, который ждет соединений и позволяет внешним процессам получать доступ к данным, которые собираются в любом случае. Обычно штраф очень низкий (если вы, конечно, не забиваете сервер JMX с запросами).

JMX позволяет вам получить удовольствие от виртуальной машины Java. Существуют команды для запуска GC и его закрытия. Тем не менее, JMX предлагает безопасный режим подключения, который использует открытые ключи и аутентификацию. Подробнее читайте в документах.

Ответ 4

Мы используем лямбда-зонд на производственных серверах, и мы не видим значительных накладных расходов. Я могу рекомендовать пробник в качестве надежного продукта, готового к производству, используя (Tomcats 5.5 и 6.0, JDK 5 и JDK 6).

Ответ 5

это зависит от реализации JMX и от того, насколько дорогой материал вы хотите контролировать. Я теперь по крайней мере одно приложение JMX, которое имеет относительно высокие издержки памяти.