Инструмент Java 1.6 JDK, VisualVM - PullRequest
       35

Инструмент Java 1.6 JDK, VisualVM

4 голосов
/ 16 сентября 2008

Кто-нибудь использовал новый инструмент Java 1.6 JDK, VisualVM , для профилирования производственного приложения и как приложение работает во время профилирования?

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

Ответы [ 8 ]

5 голосов
/ 17 сентября 2008

Хотя я лично не использовал VisualVM, я только сегодня увидел это сообщение в блоге , в котором может быть полезная информация для вас. Он говорит о профилировании производственного приложения, используя его.

1 голос
/ 09 октября 2009

Для простого мониторинга вашего приложения удаленный запуск VisualVM не должен сильно его тормозить. Если система не находится на грани разрушения, я все еще не видел никаких проблем. Это в основном просто считывание информации с крупнозернистой встроенной аппаратуры JVM. Однако, если вы начнете профилировать, у вас будут те же проблемы, что и с другими профилировщиками. В основном потому, что все они работают почти одинаково, часто используя поддержку в JVM.

У многих людей возникают проблемы с удаленным запуском VisualVM из-за проблем с брандмауэром, но вы даже можете запускать Visual VM удаленно через ssh с некоторыми установленными свойствами системы.

1 голос
/ 08 октября 2009

Я использовал VisualVM прежде, чтобы профилировать что-то запущенное локально. Большой победой было то, что я просто запустил его, и он может подключиться к работающей JVM. Его проще использовать, чем другие инструменты профилирования, которые я использовал раньше, и, похоже, он не слишком загружен.

Я думаю, что это делает выборку. Затраты на приложения, интенсивно использующие процессор, не казались значительными. Я ничего не измерял (меня интересовало, как работает мое приложение, а не как инструмент), но в нем определенно не было коэффициента замедления 10, который я привык видеть из профилирования.

1 голос
/ 30 сентября 2008

Я попробовал это на устройстве разработки и обнаружил, что когда я выключаю профилирование, он неожиданно отключает Tomcat. Я бы очень осторожно отнес это к производству. Можете ли вы имитировать нагрузку в промежуточной среде? Это не так хорошо, как на самом деле, но, вероятно, тебя не уволят, если все пойдет не так ...

0 голосов
/ 01 июня 2011

Я достаточно широко использовал VVM (VavaVoom?), Работает как брелок в легком режиме, то есть без профилирования, просто получая базовые данные из ВМ. Но как только вы начнете профилировать, а классов будет много, произойдет значительное замедление. Я не буду профилировать в производственной среде, даже если у вас 128-ядерная плата с 2 тера памяти исключительно потому, что перезагружать и переопределять классы сложно, серверные загрузчики классов - это другое дело, также они варьируются от реализации одного сервера к другому мешать им в производстве не очень хорошая идея.

0 голосов
/ 28 января 2011

Я часто использую VisualVM с тех пор, как он был включен в JDK. Это оказывает незначительное влияние на производительность системы. Я никогда не замечал, что это вызывает проблемы с производительностью в системе, но с другой стороны, наш Java-сервер имел достаточный запас времени для поддержки небольшой дополнительной нагрузки. Если ваш сервер работает на полностью загруженном уровне и не может справиться с работой VisualVM, то я бы сказал, что более вероятно, что вам нужно купить другой сервер. Любой производственный сервер должен иметь некоторый запас памяти, в противном случае у вас будет катастрофа, которая просто ждет.

0 голосов
/ 08 октября 2009

Я использовал профилировщик Net Beans, который использует те же основы, что и Visual VM.

Я работал со старой версией Weblogic, которая подразумевала использование 1.5 JVM, поэтому я не мог выполнить динамическое присоединение. У приложения, которое я профилировал, было несколько тысяч классов, и моя рабочая станция была практически непригодна для использования, в то время как профилировщик инструктировал их всех. Как только измерительные приборы были завершены, система стала вялой, но не полностью непригодной для использования. Степень замедления действительно зависит от того, что вам нужно захватить. Основные показатели процессора довольно легкие. Профилирование выделения памяти сильно замедляет работу.

Я бы не использовал его в производственной системе. Помимо возможности замедления, я в конечном итоге исчерпал пространство PermGen, потому что профилировщик переустанавливает и перезагружает классы при изменении настроек. (Это может быть исправлено в агенте 1.6, я не знаю)

0 голосов
/ 01 октября 2008

Возможно удаленное подключение к вашему серверу с другого компьютера с использованием VisualVM. Вам просто нужно щелкнуть правой кнопкой мыши на узле «Удаленный» и сказать «Добавить удаленный узел».

Это, по крайней мере, устранит накладные расходы VisualVM (если они есть) на производительность во время работы.

Это может не устранить все проблемы с производительностью, особенно в производственной среде, но это немного поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...