Как стать автором
Обновить

Комментарии 35

Бесплатный и кроссплатформенный — отличное сочетание для вроде бы неплохого инструмента.
Разве что кроссплатформенность на линукс официально заканчивается Ubuntu и Debian (распространяется в deb). Исходников не дают, так что пользователям Gentoo, Archlinux и др. не debian-based придётся немного по извращаться.
Ну у Debian-а пальма первенства по простоте поднятия работающего chroot-окружения с ним. Для работы debootstrap нужен только шелл и wget.
А веб-интерфейса у него нет? Чтобы сразу на сервере отлаживать?
такой возможности на данный момент нет, вся привязка к GUI
Цепляться к серверу через TCP/IP, не? Хотя возможность TCP/IP over SSH не помешала бы.
Нагруженный проект находится на сервере, а это приложение, как я понял, для отладки в процессе разработки, на локальной машине?!
Может знаете(подскажете) консольное решение? С Веб-интерфейсом?

upd.
про веб-интерфейс понятно ))
Согласен с вами полностью, тоже было бы интересно глянуть на инструмент работающий на самом сервере(с нагруженным проектом) с любым интерфейсом (будь то веб-интерфейс или же иной).
У автора хотелось бы узнать, как вы смотрите на разделение приложения на front и back-енды (один — в качестве службы сбора информации на сервере, второй — обработка и визуализация данных на стороне клиента)?
Такой вариант уже предлагали реализовать, но проблема в том что приложение для пользователей сильно усложнится в настройке и понимании. К тому же аналоги именно с работой только на веб-сервере найти можно. Но работать они будут через консоль. Нам хотелось реализовать именно простое GUI приложение для девелопера, а не сисадмина.
Проблемы могут проявляться только под нагрузкой на боевой системе.
Посмотрите как это сделано у, например, deluge. Простой пользователь и не догадывается о разделении на сервис и морду к нему и о том, что они могут работать на разных машинах.Ну и учесть, что аудитория у вас всё же не домохозяйки.
Так работает AppDynamics. Только она далеко не бесплатна…
На сервере можно использовать анализатор логов pt-query-digest Если нужна по нему помощь могу подсказать. А вот если найдете веб интерфейс, поделитесь
Так может статейку напишите? Я думаю, не только мне интересно будет!
Статейку… хм никогда не пробовал писат статьей, попробую наберется ли у меня информации на статью.
Объем статьи не так важен, главное содержание.
Поискал по хабру и нашел статью от прошлого года habrahabr.ru/post/151560/ Если найду чем можно ее дополнить постараюсь дополнить
Мне как-то percona tools и анализ slow/bin логов ближе… Если не бин логи, можно tcp dump снимать и опять же в перкону отправлять. Но спасибо за ссылку.

UPD: Прикольно с разницей в 3 минуты написали с zoxa
:) А не подскажете программу, чтобы можно было сравнивать результаты pt-query-digest с разных дней. Или может какой нибудь график на их основе построить можно?
я думаю это 15 минут на любом языке программирования. Запускаем по крону, парсим нужные результаты и выводим через любое плоттинг приложение
А у нас для percona исторически сложившийся велосипед из анализа SHOW GLOBAL STATUS и SHOW SLAVE STATUS на серверах.
Всё это дело центализованно собирается, аггрегируется и строятся симпатичные графики по времени/машинам/портам реплик и т.п. По типам запросов (Com_insert и т.п.), Connections/Threads_created/Slow_queries и т.д.
Плюс на уровне кода по каждому запросу проверяется время работы, и в случае злоупотреблений, логгируются все подробности: запрос, параметры, кто обратился, стек, «параметры среды» и т.п.
Начиная с версии 5.6 такие тулзы станут ненужными.

В субботу svetasmirnova проводила в рамках DevConf мастеркласс, как раз посвященный профайлингу с использованием PERFORMANCE_SCHEMA. В отличие от 5.5, в этой базе появилась куча новых таблиц, и информация, полезная не только разработчикам самого движка БД, но и обычному программисту/ДБА.

Я так понял, что это глобальная версия того, что раньше включалось по set profiling (но работало только для текущей сессии) в виде такой же абстракции базы данных, что и information schema, и позволяет с помощью SQL запросов в реальном времени получать информацию. в частности, к примеру, топ самых медленных запросов с ид сессии и хостом клиента, а так же море всякой другой информации. Собираюсь в ближайшее время пощупать локально.
Расскажите пожалуйста, будет очень интересно. Ждем статьи.
То что вы говорите есть уже в последних релизах 5.5.
Запускается через команду PROFILE. Но дело в том что это не полноценный инструмент, а скорее первичное направление где пощупать на незнакомом сервере. В общем то даже в тяжеловестном Oracle встроенных функций для детального анализа не найти. Приходится использовать сторонние инструменты помогающие проводить полный анализ.
Как раз об этом и речь. Что этот прокси (как и show profile) покажет только для тех запросов, которые шли через него.
А новая PERFORMANCE_SCHEMA — глобальная для всего сервера, представляя из себя куда более мощный и гибкий show processlist и глобальный show profile.
В любом случае спасибо за за информацию — инструменты полезны любые, и чем их больше, тем лучше они становятся.
А не подскажете где можно почитать по подробней? Сам то я использую Percona Server 5.5 и там вроде performance_schema есть как вы и говорите. Но на боевом сервере как то не хочется играть особо.
Самое интересно, какая дополнительная нагрузка на сервер ложится из-за этого?
Боюсь, пока негде. Сам поискал — но не нашел. Надо либо самому копать, либо ждать, когда кто-нибудь напишет :)

Эта схема действительно появилась в 5.5, но только в 5.6 она стала полезной конечному разработчику. Количество таблиц увеличилось в 3 раза, а информация теперь в куда более доступной форме. Правда, речь про версию Оракла.
Я сейчас на память не очень помню, но в презентации фигурировала значительно более информативная версия show processlist (на базе запроса к этой новой схеме) и возможности онлайн-профайлинга.

С производительностью, боюсь, проблемы будут. Света говорила даже про какой-то скандал, связанный как раз с этой фичей, и с тем, что она повышает нагрузку на сервер при неправильном использовании. Тоже ещё предмет для будущих исследований и выработки рекомендаций.
Я некоторое время назад пользовал MySQL Proxy.
Сейчас уже не упомню, насколько глубоко, однако для профайлинга, логирования запросов, которые идут уже непосредственно на сервер базы — самое оно было. Скрипты для тех или иных операций пишутся на Lua, что довольно гибко.
Тем не менее, прекрасный инструмент, спасибо.
А как быть, если я подключаюсь к удалённой БД. Могу я как-то профилировать запросы?
Удаленное профилирование возможно если соотвествующе настроено ваше приложение, MYSQL сервер и Neor Profile SQL. Важно понимать что инструмент работает как прокси — прокладка между СУБД и вашим приложением.
Получилось сделать так: в настройках Neor Profile SQL указываем параметры для подключения к удалённому серверу, а в настройках нашего приложения, в качестве сервера БД указываем: «localhost:4040» и всё. Включаем профилирование и работаем.
Интересный инструмент, но, к сожалению, не умеет работать с запросами, в которых база данных прописана. Неправильно их парсит.
Пример:
UPDATE `maidb`.`sessions` SET sid='783286272',last_used=1372427031 WHERE uid=1024

В статистику при таком запросе maidb попадает в раздел «Таблицы».
не сразу разобрался как он работает, 4040 порт и прочее… но прочитав тут всего одну фразу все понял. Все быстро настроил. Думаю на вашем сайте не хватает простой картинки объяснения «Важно понимать что инструмент работает как прокси — прокладка между СУБД и вашим приложением.», ибо после захода на сайт, и даже чтения FAQ это было не очень понятно. До сих пор пользовался Jet profiler, он подключается напрямую к базе и не нужно никаких прокси трюков, но она слишком дорогая.

П.С. соответственно, что бы не менять настройки в приложении, поменял порт базы на 4040, в самой Neor Profile прописал 3306. и вот они сессии! ))
Он не отображает PDO запросы без подстановки параметров и даже не показывает количество полученных строк. Или я неправильно его готовлю?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Изменить настройки темы

Истории