Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Фреймворк для бенчмарков настроек сервера / 18 сообщений из 18, страница 1 из 1
21.11.2014, 18:13
    #38813607
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Есть задача ускорить исполнение некой расчетной ХП (хитрый анализ большого массива данных). Сейчас исполняется около 10 минут, есть желание уменьшить хотя бы вдвое (мечтать ведь не вредно) .
В оптимизацию SQL уперлись уже: что можно подкрутили. Выкладывать исходник процедуры перспектив не вижу.
Есть желание потестить влияние на скорость исполнения настроек сервера и базы: page size, page cache etc.
Реализовать не проблема, но не хочется изобретать велосипед. Нет ли готового money free решения, в котором можно было бы:
- указать файл БД (или несколько файлов, отресторенных с разным page size);
- указать перечень целевых величин page cache и, быть может, других "ручек", за которые можно подергать;
- указать команды для снятия бенчмарков в прямом виде (execute procedure или execute block), либо ссылки на скрипты, как в isql -i;

В итоге чтобы оно запускало все эти комбинации, снимало статистику, писало в какой-то формат, пригодный для импорта в Excel. Желательно, чтобы оно гоняло одни и теже тесты несколько раз, пропускало первый проход, когда "прогревается кеш", а остальные усредняла.
Такой софт есть?
...
Рейтинг: 0 / 0
21.11.2014, 18:32
    #38813624
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arni> Такой софт есть?

Нет, AFAIK. Даже платного.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.11.2014, 18:40
    #38813633
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Hello, Arni!
You wrote on 21 ноября 2014 г. 18:39:32:

Arni> Такой софт есть? напиши, будет.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
21.11.2014, 19:25
    #38813672
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arniЕсть желание потестить влияние на скорость исполнения настроек сервера и базы: page size, page cache etc.
Реализовать не проблема, но не хочется изобретать велосипед. Нет ли готового money free решения, в котором можно было бы:
- указать файл БД (или несколько файлов, отресторенных с разным page size);
- указать перечень целевых величин page cache и, быть может, других "ручек", за которые можно подергать;
- указать команды для снятия бенчмарков в прямом виде (execute procedure или execute block), либо ссылки на скрипты, как в isql -i;

В итоге чтобы оно запускало все эти комбинации, снимало статистику, писало в какой-то формат, пригодный для импорта в Excel. Желательно, чтобы оно гоняло одни и теже тесты несколько раз, пропускало первый проход, когда "прогревается кеш", а остальные усредняла.
Такой софт есть?Есть что-то типа "каркаса", который создавался для имитации OLTP-нагрузки и проведения сравнительных тестов. Это батник и несколько .sql-скриптов.
Вот что он делает:
0) читает обычный текстовый файл-конфигурацию, в которой указаны хост/порт:база, а также параметры самого теста:
0.1) до какого числа документов довести базу, прежде чем начать запуски прикладных ХП,
0.2) сколько времени разогревать базу (т.е. просто вызывать прикладные ХП, но не учитывать время их работы в итоговом отчете),
0.3) сколько времени должны молотить ISQL'и (остановка по истечении этого времени будет выполнена автоматически);
0.4) вести ли "расширенное логирование" произв-сти с пом. mon$-таблиц (актуально только для ФБ-3);
1) создает (при необходимости) тестовую базу и все объекты в ней: таблицы, ХП и прочая;
2) (до-)заполняет тестовую базу тем кол-вом документов, которые указаны в конфиге;
3) (пере-)создает (при необходимости) большой SQL-скрипт, который будет скармливаться сеансам-молотилкам;
4) запускает то число окон, которое указано в аргументе командной строки его запуска;
5) заставляет *первое* из запущенных окон составить отчет и выкинуть его в текст. Отчет этот содержит:
5.1) данные mon$database ==>там будет видно page_size, page_buffers, forced_writes etc;
5.2) сводные данные о произв-сти: сколько всего вызовов прикладных модулей успешно завершились за заданный интервал работы;
5.3) данные об изменении произв-сти "в динамике", деление на 10 интервалов (но это число легко изменить) - т.е. "как уставал Firebird", пока шёл тест.

В планах еще было научить его вытряхивать вообще весь конфиг с сервака, с пом. fbsvcmgr'a, и также сохранять куда-нить. Но это доступно только в ФБ-3, к сож-ю.

Ну, а дальше уже надо руками работать: сохранить куда-то файл с отчетом, или вытряхнуть его в эксель и проч.

Теперь о том, как это можно применить у тебя.
Батник генерит sql-скрипт, который лезет в одну важную табличку с именем 'business_operations'. Эта табличка содержит перечень тех ХП, которые считаются top-level, т.е. это точки входа в "бизнес-операции". ХП выбираются именно этим батником.
Если выкинуть из business_operations всё, кроме твоей ХП, то молотилки будут вызывать только одну твою ХП.
Если добавить в начало и конец твоей ХП несложный код, выполняющий логирование времени её работы (по образу того, что сейчас есть в остальных ХП: он просто пишет два момента времени в базу, причём независимо от того, завалилась ХП по эксепшену или нет), - то ты получишь в итоге сведения о том, сколько эта ХП выполнялась.

Ключевой момент тут - сможешь ли ты вкрячить свою ХП и все объекты с данными, от которых она зависит, в эту тестоую базу. Или наоборот - все объекты тестовой базы перетащить в твою БД. Ну а если сможешь еще и на ФБ-3 это всё запустить, будет вообще шоколад: там есть замечательная табличка mon$table_stats, которая тебе о-очень поможет в отлове узких мест.
...
Рейтинг: 0 / 0
23.11.2014, 22:13
    #38814605
Alex Truhin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Таблоид,
а можно ли получить эти скрипты. Интересно посмотреть.
Если можно кинь на: atruhin1973 на mail.ru
...
Рейтинг: 0 / 0
23.11.2014, 22:42
    #38814613
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Alex Truhin,

отправил.
...
Рейтинг: 0 / 0
24.11.2014, 02:19
    #38814676
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Alex Truhinа можно ли получить эти скрипты. Интересно посмотреть.
тест должен быть публичным. допилят - выложим.
...
Рейтинг: 0 / 0
24.11.2014, 10:26
    #38814830
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
kdvдопилят - выложим.я считаю его допиленным.
Отправлял всем заинтересованным лицам уже надцать раз, и скрипты, и доку, и результаты многочисленных бенчмарков.
Откликов пока не получил - наверное, все в "культурологическом ступоре" сидят :-)
...
Рейтинг: 0 / 0
24.11.2014, 16:19
    #38815317
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Таблоид,

спасибо за предложение. Успел в пятницу вечером набросать на коленке тест. Прогнал разные комбинации (pages 4K, 8K,16K; page cache 4K, 8K,16K). Оказалось, что разброс времени исполнения буквально +/- 2%. Смахивает на нумерологию, но лучше всего 8K/8K и 16K/16K.
Так что, говорю привет хранимым агрегатам и прочим прелестям рефакторинга: чуда не случилось.
...
Рейтинг: 0 / 0
24.11.2014, 16:41
    #38815348
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Hello, Arni!
You wrote on 24 ноября 2014 г. 16:40:15:

Arni> Так что, говорю привет хранимым агрегатам и прочим прелестям
> рефакторинга: чуда не случилось. ну дык йопть!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2014, 16:51
    #38815363
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arniЕсть задача ускорить исполнение некой расчетной ХП ( хитрый анализ большого массива данных ). Сейчас исполняется около 10 минут, есть желание уменьшитьСортировки, GTT - юзаешь в этой ХП ? Если да, то не забыл посильнее нажать на TempcacheLimit ?
...
Рейтинг: 0 / 0
24.11.2014, 21:36
    #38815595
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arni> Так что, говорю привет хранимым агрегатам и
arni> прочим прелестям рефакторинга: чуда не случилось.

Ась? Теперь то же самое, но поподробнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2014, 22:14
    #38815618
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Гаджимурадов Рустам,

что тут непонятного?
Мой обычный метод организации сложной выборки в виде каскадной CTE над сырыми данными не тянет по скорости. Придется изобретать промежуточные хранимые агрегаты на триггерах в OLTP модуле для скорости OLAP-запроса.
...
Рейтинг: 0 / 0
24.11.2014, 22:56
    #38815638
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arni> что тут непонятного?

Почему "привет хранимым агрегатам, которые не смогли дать чуда"?

> Мой обычный метод организации сложной выборки в виде
> каскадной CTE над сырыми данными не тянет по скорости

Это про то, что ты чуть ли не каждый свой запрос через
СТЕ оформлял не только из чувства красоты и понятности,
но ещё и из целей повышения производительности? :)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
24.11.2014, 23:38
    #38815657
arni
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Гаджимурадов РустамПочему "привет хранимым агрегатам, которые не смогли дать чуда"?
Ты всё напутал :)
Сначала не случилось чуда, и только затем привет агрегатам (в смысле, "агрегаты, добро пожаловать")

Гаджимурадов РустамЭто про то, что ты чуть ли не каждый свой запрос через
СТЕ оформлял не только из чувства красоты и понятности,
но ещё и из целей повышения производительности?Нет, производительностью обычно жертвую ради красоты и лаконичности (шутка ли, на 200 ХП ни одной подсказки компилятору +0 и всего пару раз ||''). Благо железо позволяет так писать. Но вот попался тот случай, когда придется наступить на горло собственной песни, и пожертовать красотой ради скорости.
...
Рейтинг: 0 / 0
25.11.2014, 00:00
    #38815672
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
arni> Ты всё напутал :)

Стало быть, или я такой непонятливый,
или тебе надо яснее излагать мысли. :-)

> Нет, производительностью обычно
> жертвую ради красоты и лаконичности

Силён, что тут скажешь.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25.11.2014, 10:29
    #38815836
miwaonline
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
Гаджимурадов Рустамarni> Ты всё напутал :)

Стало быть, или я такой непонятливый,
или тебе надо яснее излагать мысли. :-)

При всем уважении, я за "яснее излагать мысли". Тоже подумал сперва, что хранимые агрегаты не ускорили выборки.
...
Рейтинг: 0 / 0
25.11.2014, 14:18
    #38816120
Гаджимурадов Рустам
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Фреймворк для бенчмарков настроек сервера
miwaonline> Тоже

Боюсь, что таковых было много, но все (кроме МП)
почему-то промолчали, как обычно. Так и живём. (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Фреймворк для бенчмарков настроек сервера / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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