JDBC Profiler для JBoss / Распределенные приложения - PullRequest
5 голосов
/ 27 июня 2011

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

В настоящее время я использую JBoss длясерверная часть (использующая слой Hibernate / JDBC для подключения к базе данных), но у меня есть только исходный доступ к некоторому коду.

Я нашел Elvyx , но этоПохоже, что проект был заброшен в 2008 году. Существует ли более новый профилировщик JDBC - каков нынешний «фактический» стандарт для профилирования базы данных в распределенном приложении?

В качестве альтернативы, может ли кто-нибудь предложить лучший / альтернативный подход

Ответы [ 6 ]

6 голосов
/ 27 июня 2011

Попробуйте использовать YourKit, он поддерживает разумную степень профилирования JDBC:

  1. Вы можете просмотреть выполненный SQL после захвата моментального снимка ЦП.
  2. Вы также можете включить JDBC-зонды и просматривать несколько объектов в реальном времени, таких как тайминги, трассировки стека, потоки, операторы SQL и многое другое, см. Прикрепленный снимок экрана с компьютера моего коллеги (похоже, вы необходимо открыть это изображение в другой вкладке / окне браузера, чтобы увидеть его в полном размере): enter image description here

Не хочу, чтобы это звучало как реклама для YourKit, но приобретите пробную лицензию и попробуйте.

4 голосов
/ 26 июля 2011

Я бы тоже порекомендовал AppDynamics .Версия Lite была более чем адекватной для моих целей.

Наше приложение Java EE работает в JBoss, и мы знали, что в некоторых областях у нас были узкие места в производительности.Быстро и легко (и я имею в виду легко) установив и раскрутив AppDynamics, а затем запустив некоторую нагрузку через приложение, мы смогли сразу увидеть, где именно были обнаружены наши падения производительности.На чистой и лаконичной приборной панели мы смогли подробно изучить стек, чтобы определить, какой класс нуждается в улучшении.

Настоятельно рекомендуется.Определенно проверьте это.Я подогреваю версию "Про" еще лучше.

2 голосов
/ 27 июня 2011

Если вы пытаетесь выследить (или хотя бы подтвердить) проблемы, связанные с медленной базой данных, IMO, используя инструменты профилирования, предоставляемые базой данных, будет хорошей отправной точкой.

Мы что-то сделали вместеэти строки предварительно профилировали вызовы JDBC (отмечая время) и сравнивая их со временем, необходимым для выполнения того же запроса «на» самой базе данных.Это дало довольно хорошее представление о том, сколько именно времени было потрачено JDBC на выполнение вызова db и получение результата.

1 голос
/ 10 июля 2011

Arcturus Applicare поддерживает JDBC-профилирование на JBoss (и других серверах приложений Java).Вы можете просматривать все SQL-запросы с минимальными, максимальными и средними значениями статистики, агрегированными на всех серверах в вашей среде или на отдельных серверах.

При включенном полном профилировании вы сможете видеть трассировку выполнения для каждого запроса / транзакции, обрабатываемой сервером, включая SQL с параметрами выполнения.Облегчение обнаружения дорогих SQL и того, где именно они были выполнены.

1 голос
/ 09 июля 2011

Есть ли конкретный вариант использования, который, по вашему мнению, медленный, или в целом вы чувствуете, что отзывчивость БД медленная?

  • В случае использования я бы предложил использовать такие инструменты, как AppDynamics или GlassBox.
  • В общем случае лучше начать с БД.

Я предполагаю, что вы уже провели бы анализ на стороне распределенных приложений в отношении метрик соединений и на стороне ОС БД сервера в отношении открытий сокетов и допустимого ввода-вывода.

1 голос
/ 29 июня 2011

dynaTrace поддерживает самоанализ SQL-вызовов и измеряет, сколько времени занимал каждый SQL-вызов. Поле называется управлением производительностью приложений в целом.

...