|
|
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Есть задача ускорить исполнение некой расчетной ХП (хитрый анализ большого массива данных). Сейчас исполняется около 10 минут, есть желание уменьшить хотя бы вдвое (мечтать ведь не вредно) . В оптимизацию SQL уперлись уже: что можно подкрутили. Выкладывать исходник процедуры перспектив не вижу. Есть желание потестить влияние на скорость исполнения настроек сервера и базы: page size, page cache etc. Реализовать не проблема, но не хочется изобретать велосипед. Нет ли готового money free решения, в котором можно было бы: - указать файл БД (или несколько файлов, отресторенных с разным page size); - указать перечень целевых величин page cache и, быть может, других "ручек", за которые можно подергать; - указать команды для снятия бенчмарков в прямом виде (execute procedure или execute block), либо ссылки на скрипты, как в isql -i; В итоге чтобы оно запускало все эти комбинации, снимало статистику, писало в какой-то формат, пригодный для импорта в Excel. Желательно, чтобы оно гоняло одни и теже тесты несколько раз, пропускало первый проход, когда "прогревается кеш", а остальные усредняла. Такой софт есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2014, 18:13 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
arni> Такой софт есть? Нет, AFAIK. Даже платного. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2014, 18:32 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Hello, Arni! You wrote on 21 ноября 2014 г. 18:39:32: Arni> Такой софт есть? напиши, будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2014, 18:40 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
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, которая тебе о-очень поможет в отлове узких мест. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2014, 19:25 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Таблоид, а можно ли получить эти скрипты. Интересно посмотреть. Если можно кинь на: atruhin1973 на mail.ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2014, 22:13 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Alex Truhin, отправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2014, 22:42 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Alex Truhinа можно ли получить эти скрипты. Интересно посмотреть. тест должен быть публичным. допилят - выложим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 02:19 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
kdvдопилят - выложим.я считаю его допиленным. Отправлял всем заинтересованным лицам уже надцать раз, и скрипты, и доку, и результаты многочисленных бенчмарков. Откликов пока не получил - наверное, все в "культурологическом ступоре" сидят :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 10:26 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Таблоид, спасибо за предложение. Успел в пятницу вечером набросать на коленке тест. Прогнал разные комбинации (pages 4K, 8K,16K; page cache 4K, 8K,16K). Оказалось, что разброс времени исполнения буквально +/- 2%. Смахивает на нумерологию, но лучше всего 8K/8K и 16K/16K. Так что, говорю привет хранимым агрегатам и прочим прелестям рефакторинга: чуда не случилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 16:19 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Hello, Arni! You wrote on 24 ноября 2014 г. 16:40:15: Arni> Так что, говорю привет хранимым агрегатам и прочим прелестям > рефакторинга: чуда не случилось. ну дык йопть! Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 16:41 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
arniЕсть задача ускорить исполнение некой расчетной ХП ( хитрый анализ большого массива данных ). Сейчас исполняется около 10 минут, есть желание уменьшитьСортировки, GTT - юзаешь в этой ХП ? Если да, то не забыл посильнее нажать на TempcacheLimit ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 16:51 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
arni> Так что, говорю привет хранимым агрегатам и arni> прочим прелестям рефакторинга: чуда не случилось. Ась? Теперь то же самое, но поподробнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 21:36 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам, что тут непонятного? Мой обычный метод организации сложной выборки в виде каскадной CTE над сырыми данными не тянет по скорости. Придется изобретать промежуточные хранимые агрегаты на триггерах в OLTP модуле для скорости OLAP-запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 22:14 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
arni> что тут непонятного? Почему "привет хранимым агрегатам, которые не смогли дать чуда"? > Мой обычный метод организации сложной выборки в виде > каскадной CTE над сырыми данными не тянет по скорости Это про то, что ты чуть ли не каждый свой запрос через СТЕ оформлял не только из чувства красоты и понятности, но ещё и из целей повышения производительности? :) Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 22:56 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамПочему "привет хранимым агрегатам, которые не смогли дать чуда"? Ты всё напутал :) Сначала не случилось чуда, и только затем привет агрегатам (в смысле, "агрегаты, добро пожаловать") Гаджимурадов РустамЭто про то, что ты чуть ли не каждый свой запрос через СТЕ оформлял не только из чувства красоты и понятности, но ещё и из целей повышения производительности?Нет, производительностью обычно жертвую ради красоты и лаконичности (шутка ли, на 200 ХП ни одной подсказки компилятору +0 и всего пару раз ||''). Благо железо позволяет так писать. Но вот попался тот случай, когда придется наступить на горло собственной песни, и пожертовать красотой ради скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.11.2014, 23:38 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
arni> Ты всё напутал :) Стало быть, или я такой непонятливый, или тебе надо яснее излагать мысли. :-) > Нет, производительностью обычно > жертвую ради красоты и лаконичности Силён, что тут скажешь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 00:00 |
|
||
|
Фреймворк для бенчмарков настроек сервера
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустамarni> Ты всё напутал :) Стало быть, или я такой непонятливый, или тебе надо яснее излагать мысли. :-) При всем уважении, я за "яснее излагать мысли". Тоже подумал сперва, что хранимые агрегаты не ускорили выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2014, 10:29 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38815836&tid=1563177]: |
0ms |
get settings: |
6ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
182ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 492ms |

| 0 / 0 |
