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

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

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

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

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Фреймворк для бенчмарков настроек сервера
    #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
Фреймворк для бенчмарков настроек сервера
    #38814605
Alex Truhin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,
а можно ли получить эти скрипты. Интересно посмотреть.
Если можно кинь на: atruhin1973 на mail.ru
...
Рейтинг: 0 / 0
Фреймворк для бенчмарков настроек сервера
    #38814613
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Truhin,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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