Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Трассировка запросов со временем выполнения. / 18 сообщений из 18, страница 1 из 1
07.07.2014, 10:43:03
    #38689159
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
Приветствую.
У меня есть БД и есть некоторое приложение, написанное фиг знает кем фиг знает когда. Но в приложении есть кнопочка, по нажатию на которую приложение измеряет "производительность БД" в каких-то инсертах, апдейтах и селектах в секунду. Эксплуатанты приложения туда смотрят и показывают пальчиком, типа не довольны, типа медленно. Хотя сервер физически простаивает...
Я очень сомневаюсь в цифрах, которые выдет кнопочка, и хочу измерить конкретное количество времени, которое потратил MySQL на выполнение запросов (не считая времени затраченного на коннект, и ожидания самого приложения). Перерыл пол Интернета. Не нашел, как можно получить трейс SQL запросов с указанием времени в микросекундах (или наносекундах) затраченного для выполнения SQL выражения собственно самим MySQLем.
Также хотелось бы получить ваши оценки (или измерения) для такой величины как количество простеньких инсертов, апдейтов и селектов в секунду.
...
Рейтинг: 0 / 0
07.07.2014, 11:43:42
    #38689255
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
Трейса как, скажем, в мсскл, тут нет. Как вариант - поставить mysql proxy, получить с его помощью тексты запросов и протестировать их вручную любым "нормальным" клиентом.
...
Рейтинг: 0 / 0
07.07.2014, 11:45:09
    #38689259
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
Можно ещё включить slow query log, но там уже придётся разбираться, какой из попавших туда запросов - нужный. И не факт, что нужный туда вообще попадёт - может, ваши "проверяющие" считают медленным запрос в 50мс...
...
Рейтинг: 0 / 0
07.07.2014, 12:05:26
    #38689292
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
tanglir, совершенно верно. 1000 инсертов в секунду (это 1 ms) они считают медленным. Хотят 10000 (0.1 ms) инсертов в секунду. Показывают на другое место, типа там показометр показывает именно 10000 инсертов в секунду. Я во всем этом сомневаюсь. Хочу получить объективную картину. Выяснилось, что это не просто. Не ужели нет такого ничего?
...
Рейтинг: 0 / 0
07.07.2014, 12:07:11
    #38689294
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
ДаВотНо в приложении есть кнопочка, по нажатию на которую приложение измеряет "производительность БД" в каких-то инсертах, апдейтах и селектах в секунду.Я бы предложил на время работы этой кнопочки включить General Query Log и посмотреть, что там реально она выполняет.
...
Рейтинг: 0 / 0
07.07.2014, 12:10:56
    #38689299
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
miksoft, это, конечно, уже сделано. Но времени, затраченного на выполнение каждого SQLя там нет. А приложение может само тормозить где угодно.
...
Рейтинг: 0 / 0
07.07.2014, 12:26:41
    #38689319
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
ДаВотНо в приложении есть кнопочка, по нажатию на которую приложение измеряет "производительность БД" в каких-то инсертах, апдейтах и селектах в секунду.Всё зависит от кривизны рук афтара поделия: если, к примеру, оно каждую операцию оборачивает в свою отдельную транзакцию, то и 1000 инсертов в секунду уже может быть замечательно.
...
Рейтинг: 0 / 0
07.07.2014, 12:29:38
    #38689323
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
tanglirМожно ещё включить slow query log, но там уже придётся разбираться, какой из попавших туда запросов - нужный. И не факт, что нужный туда вообще попадёт - может, ваши "проверяющие" считают медленным запрос в 50мс...
ну так можно же установить время = 0 - и попадут вообще все запросы.
...
Рейтинг: 0 / 0
07.07.2014, 12:30:12
    #38689326
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
ДаВотtanglir, совершенно верно. 1000 инсертов в секунду (это 1 ms) они считают медленным. Хотят 10000 (0.1 ms) инсертов в секунду. Показывают на другое место, типа там показометр показывает именно 10000 инсертов в секунду. Я во всем этом сомневаюсь. Хочу получить объективную картину. Выяснилось, что это не просто. Не ужели нет такого ничего?
неужели битрикс?
...
Рейтинг: 0 / 0
07.07.2014, 12:37:29
    #38689335
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
netwindДаВотtanglir, совершенно верно. 1000 инсертов в секунду (это 1 ms) они считают медленным. Хотят 10000 (0.1 ms) инсертов в секунду. Показывают на другое место, типа там показометр показывает именно 10000 инсертов в секунду. Я во всем этом сомневаюсь. Хочу получить объективную картину. Выяснилось, что это не просто. Не ужели нет такого ничего?
неужели битрикс?Кстати, да, похоже :)
Тогда предлагаю обратить внимание на innodb_flush_log_at_trx_commit. Битрикс, если не ошибаюсь, требует значение 2.
...
Рейтинг: 0 / 0
07.07.2014, 12:57:18
    #38689354
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
miksoftnetwindпропущено...

неужели битрикс?Кстати, да, похоже :)
Тогда предлагаю обратить внимание на innodb_flush_log_at_trx_commit. Битрикс, если не ошибаюсь, требует значение 2.
Не требуют, а бессовестно рекомендуют в своих руководствах не описывая к чему это может привести.
...
Рейтинг: 0 / 0
07.07.2014, 14:02:06
    #38689420
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
netwind,неужели битрикс? Он самый, будь не ладен...
...
Рейтинг: 0 / 0
07.07.2014, 14:13:57
    #38689438
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
ДаВотnetwind,неужели битрикс? Он самый, будь не ладен...Ну тогда, действительно, "1000 инсертов в секунду" - это очень немного. Я так мало даже на шаред-хостинге не видел.
...
Рейтинг: 0 / 0
07.07.2014, 14:28:19
    #38689460
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
netwind, вот что пишут про 2 в innodb_flush_log_at_trx_commit
When the value is 2, the log buffer is written out to the file at each commit, but the flush to disk operation is not performed on it. However, the flushing on the log file takes place once per second also when the value is 2. Note that the once-per-second flushing is not 100% guaranteed to happen every second, due to process scheduling issues.Если это правда, то вроде можно пережить.
...
Рейтинг: 0 / 0
07.07.2014, 14:33:21
    #38689468
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
miksoft, спасибо за наводку про innodb_flush_log_at_trx_commit . Сейчас буду пугать разработчиков последствиями и тестировать ускорение. На продуктиве.
...
Рейтинг: 0 / 0
07.07.2014, 14:35:31
    #38689471
ДаВот
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
И еще про innodb_flush_log_at_trx_commitThe default value of 1 is required for full ACID compliance. You can achieve better performance by setting the value different from 1, but then you can lose up to one second worth of transactions in a crash. With a value of 0, any mysqld process crash can erase the last second of transactions. With a value of 2, only an operating system crash or a power outage can erase the last second of transactions. InnoDB's crash recovery works regardless of the value.
...
Рейтинг: 0 / 0
07.07.2014, 14:50:25
    #38689485
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
ДаВотСейчас буду пугать разработчиков последствиями и тестировать ускорение. На продуктиве.Заодно посмотрите страницу /bitrix/admin/perfmon_db_server.php?lang=ru на своем сайте. Там и другие косяки могут быть красным шрифтом подсвечены.
...
Рейтинг: 0 / 0
07.07.2014, 14:55:56
    #38689490
netwind
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Трассировка запросов со временем выполнения.
На самом деле, интересно знать какие именно параметры позволяют завышать показатели в данном, однозначно, синтетическом тесте для того чтобы приманивать недалеких заказчиков.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Трассировка запросов со временем выполнения. / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]