Comments 35
Бесплатный и кроссплатформенный — отличное сочетание для вроде бы неплохого инструмента.
Разве что кроссплатформенность на линукс официально заканчивается Ubuntu и Debian (распространяется в deb). Исходников не дают, так что пользователям Gentoo, Archlinux и др. не debian-based придётся немного по извращаться.
А веб-интерфейса у него нет? Чтобы сразу на сервере отлаживать?
Согласен с вами полностью, тоже было бы интересно глянуть на инструмент работающий на самом сервере(с нагруженным проектом) с любым интерфейсом (будь то веб-интерфейс или же иной).
У автора хотелось бы узнать, как вы смотрите на разделение приложения на front и back-енды (один — в качестве службы сбора информации на сервере, второй — обработка и визуализация данных на стороне клиента)?
У автора хотелось бы узнать, как вы смотрите на разделение приложения на front и back-енды (один — в качестве службы сбора информации на сервере, второй — обработка и визуализация данных на стороне клиента)?
Такой вариант уже предлагали реализовать, но проблема в том что приложение для пользователей сильно усложнится в настройке и понимании. К тому же аналоги именно с работой только на веб-сервере найти можно. Но работать они будут через консоль. Нам хотелось реализовать именно простое GUI приложение для девелопера, а не сисадмина.
Так работает AppDynamics. Только она далеко не бесплатна…
На сервере можно использовать анализатор логов pt-query-digest Если нужна по нему помощь могу подсказать. А вот если найдете веб интерфейс, поделитесь
Так может статейку напишите? Я думаю, не только мне интересно будет!
Статейку… хм никогда не пробовал писат статьей, попробую наберется ли у меня информации на статью.
Объем статьи не так важен, главное содержание.
Поискал по хабру и нашел статью от прошлого года habrahabr.ru/post/151560/ Если найду чем можно ее дополнить постараюсь дополнить
Можно прикрутить github.com/box/Anemometer/blob/master/README.md
Мне как-то percona tools и анализ slow/bin логов ближе… Если не бин логи, можно tcp dump снимать и опять же в перкону отправлять. Но спасибо за ссылку.
UPD: Прикольно с разницей в 3 минуты написали с zoxa
UPD: Прикольно с разницей в 3 минуты написали с zoxa
А у нас для percona исторически сложившийся велосипед из анализа SHOW GLOBAL STATUS и SHOW SLAVE STATUS на серверах.
Всё это дело центализованно собирается, аггрегируется и строятся симпатичные графики по времени/машинам/портам реплик и т.п. По типам запросов (Com_insert и т.п.), Connections/Threads_created/Slow_queries и т.д.
Плюс на уровне кода по каждому запросу проверяется время работы, и в случае злоупотреблений, логгируются все подробности: запрос, параметры, кто обратился, стек, «параметры среды» и т.п.
Всё это дело центализованно собирается, аггрегируется и строятся симпатичные графики по времени/машинам/портам реплик и т.п. По типам запросов (Com_insert и т.п.), Connections/Threads_created/Slow_queries и т.д.
Плюс на уровне кода по каждому запросу проверяется время работы, и в случае злоупотреблений, логгируются все подробности: запрос, параметры, кто обратился, стек, «параметры среды» и т.п.
Начиная с версии 5.6 такие тулзы станут ненужными.
В субботу svetasmirnova проводила в рамках DevConf мастеркласс, как раз посвященный профайлингу с использованием PERFORMANCE_SCHEMA. В отличие от 5.5, в этой базе появилась куча новых таблиц, и информация, полезная не только разработчикам самого движка БД, но и обычному программисту/ДБА.
Я так понял, что это глобальная версия того, что раньше включалось по set profiling (но работало только для текущей сессии) в виде такой же абстракции базы данных, что и information schema, и позволяет с помощью SQL запросов в реальном времени получать информацию. в частности, к примеру, топ самых медленных запросов с ид сессии и хостом клиента, а так же море всякой другой информации. Собираюсь в ближайшее время пощупать локально.
В субботу svetasmirnova проводила в рамках DevConf мастеркласс, как раз посвященный профайлингу с использованием PERFORMANCE_SCHEMA. В отличие от 5.5, в этой базе появилась куча новых таблиц, и информация, полезная не только разработчикам самого движка БД, но и обычному программисту/ДБА.
Я так понял, что это глобальная версия того, что раньше включалось по set profiling (но работало только для текущей сессии) в виде такой же абстракции базы данных, что и information schema, и позволяет с помощью SQL запросов в реальном времени получать информацию. в частности, к примеру, топ самых медленных запросов с ид сессии и хостом клиента, а так же море всякой другой информации. Собираюсь в ближайшее время пощупать локально.
Расскажите пожалуйста, будет очень интересно. Ждем статьи.
То что вы говорите есть уже в последних релизах 5.5.
Запускается через команду PROFILE. Но дело в том что это не полноценный инструмент, а скорее первичное направление где пощупать на незнакомом сервере. В общем то даже в тяжеловестном Oracle встроенных функций для детального анализа не найти. Приходится использовать сторонние инструменты помогающие проводить полный анализ.
Запускается через команду PROFILE. Но дело в том что это не полноценный инструмент, а скорее первичное направление где пощупать на незнакомом сервере. В общем то даже в тяжеловестном Oracle встроенных функций для детального анализа не найти. Приходится использовать сторонние инструменты помогающие проводить полный анализ.
Как раз об этом и речь. Что этот прокси (как и show profile) покажет только для тех запросов, которые шли через него.
А новая PERFORMANCE_SCHEMA — глобальная для всего сервера, представляя из себя куда более мощный и гибкий show processlist и глобальный show profile.
В любом случае спасибо за за информацию — инструменты полезны любые, и чем их больше, тем лучше они становятся.
А новая PERFORMANCE_SCHEMA — глобальная для всего сервера, представляя из себя куда более мощный и гибкий show processlist и глобальный show profile.
В любом случае спасибо за за информацию — инструменты полезны любые, и чем их больше, тем лучше они становятся.
А не подскажете где можно почитать по подробней? Сам то я использую Percona Server 5.5 и там вроде performance_schema есть как вы и говорите. Но на боевом сервере как то не хочется играть особо.
Самое интересно, какая дополнительная нагрузка на сервер ложится из-за этого?
Самое интересно, какая дополнительная нагрузка на сервер ложится из-за этого?
Боюсь, пока негде. Сам поискал — но не нашел. Надо либо самому копать, либо ждать, когда кто-нибудь напишет :)
Эта схема действительно появилась в 5.5, но только в 5.6 она стала полезной конечному разработчику. Количество таблиц увеличилось в 3 раза, а информация теперь в куда более доступной форме. Правда, речь про версию Оракла.
Я сейчас на память не очень помню, но в презентации фигурировала значительно более информативная версия show processlist (на базе запроса к этой новой схеме) и возможности онлайн-профайлинга.
С производительностью, боюсь, проблемы будут. Света говорила даже про какой-то скандал, связанный как раз с этой фичей, и с тем, что она повышает нагрузку на сервер при неправильном использовании. Тоже ещё предмет для будущих исследований и выработки рекомендаций.
Эта схема действительно появилась в 5.5, но только в 5.6 она стала полезной конечному разработчику. Количество таблиц увеличилось в 3 раза, а информация теперь в куда более доступной форме. Правда, речь про версию Оракла.
Я сейчас на память не очень помню, но в презентации фигурировала значительно более информативная версия show processlist (на базе запроса к этой новой схеме) и возможности онлайн-профайлинга.
С производительностью, боюсь, проблемы будут. Света говорила даже про какой-то скандал, связанный как раз с этой фичей, и с тем, что она повышает нагрузку на сервер при неправильном использовании. Тоже ещё предмет для будущих исследований и выработки рекомендаций.
Я некоторое время назад пользовал MySQL Proxy.
Сейчас уже не упомню, насколько глубоко, однако для профайлинга, логирования запросов, которые идут уже непосредственно на сервер базы — самое оно было. Скрипты для тех или иных операций пишутся на Lua, что довольно гибко.
Тем не менее, прекрасный инструмент, спасибо.
Сейчас уже не упомню, насколько глубоко, однако для профайлинга, логирования запросов, которые идут уже непосредственно на сервер базы — самое оно было. Скрипты для тех или иных операций пишутся на Lua, что довольно гибко.
Тем не менее, прекрасный инструмент, спасибо.
А как быть, если я подключаюсь к удалённой БД. Могу я как-то профилировать запросы?
Удаленное профилирование возможно если соотвествующе настроено ваше приложение, MYSQL сервер и Neor Profile SQL. Важно понимать что инструмент работает как прокси — прокладка между СУБД и вашим приложением.
Получилось сделать так: в настройках Neor Profile SQL указываем параметры для подключения к удалённому серверу, а в настройках нашего приложения, в качестве сервера БД указываем: «localhost:4040» и всё. Включаем профилирование и работаем.
Интересный инструмент, но, к сожалению, не умеет работать с запросами, в которых база данных прописана. Неправильно их парсит.
Пример:
UPDATE `maidb`.`sessions` SET sid='783286272',last_used=1372427031 WHERE uid=1024
В статистику при таком запросе maidb попадает в раздел «Таблицы».
Пример:
UPDATE `maidb`.`sessions` SET sid='783286272',last_used=1372427031 WHERE uid=1024
В статистику при таком запросе maidb попадает в раздел «Таблицы».
не сразу разобрался как он работает, 4040 порт и прочее… но прочитав тут всего одну фразу все понял. Все быстро настроил. Думаю на вашем сайте не хватает простой картинки объяснения «Важно понимать что инструмент работает как прокси — прокладка между СУБД и вашим приложением.», ибо после захода на сайт, и даже чтения FAQ это было не очень понятно. До сих пор пользовался Jet profiler, он подключается напрямую к базе и не нужно никаких прокси трюков, но она слишком дорогая.
П.С. соответственно, что бы не менять настройки в приложении, поменял порт базы на 4040, в самой Neor Profile прописал 3306. и вот они сессии! ))
П.С. соответственно, что бы не менять настройки в приложении, поменял порт базы на 4040, в самой Neor Profile прописал 3306. и вот они сессии! ))
Он не отображает PDO запросы без подстановки параметров и даже не показывает количество полученных строк. Или я неправильно его готовлю?
Sign up to leave a comment.
Оптимизация MySQL запросов с помощью Neor Profile SQL