powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
15 сообщений из 40, страница 2 из 2
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537395
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... а это, как его... вот установил я в конфиге ФБ параметр TempBlockSize = 200M, запустил в очередной раз при TempCacheLimit = 1024M запрос select * from (select count(distinct x)over() c from ts) rows 1 - и в другом окне мониторю объем времянок, которые создаются (в /tmp, т.е. через lsof -a +L1 /).
И вижу, что размер времянок увеличивается вовсе не на 200 Мб за 1 раз, а строго на 8 М .
И это одинаково как для fb_ rec_buf :
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1098907648     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1107296256     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
. . .
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1182793728     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1191182336     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
. . .
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1199570944     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1207959552     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
size / measuremeasure-1measure-2measure-3size_after 1 107 296 256 1 191 182 336 1 207 959 552 size_before 1 098 907 648 1 182 793 728 1 199 570 944 size_diff 8 388 608 8 388 608 8 388 608
так и для fb_ sort _*
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  100663296     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  109051904     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
. . .
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  109051904     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  117440512     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
. . .
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  117440512     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
COMMAND   PID     USER   FD   TYPE DEVICE   SIZE/OFF NLINK     NODE NAME
firebird 2309 firebird    4u   REG    8,4 1300234240     0 12591046 /tmp/fb_recbuf_2JnwrM (deleted)
firebird 2309 firebird    5u   REG    8,4  125829120     0 12591588 /tmp/fb_sort_BcrYQF (deleted)
size / measuremeasure-1measure-2measure-3size_after109 051 904 117 440 512 125 829 120 size_before100 663 296 109 051 904 117 440 512 size_diff8 388 608 8 388 608 8 388 608
Там случайно "в недрах" ФБ верхний лимит для TempCacheBlock не прописан жестко ?
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537399
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

этот параметр на "времянки" вообще никак не влияет, это гранулярность аллокации блоков в пределах TempCacheLimit.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537400
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сделал overall-benchmark для разных вариантов настройки TempDirectories, опции монтирования sync и размера TempCacheLimit (1, 2 и 4 Гб).
Гляньте в аттач и почувствуйте разницу (я про sync -vs- async для случая TempCacheLimit = 1Gb ).
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537403
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrэтот параметр на "времянки" вообще никак не влияет, это гранулярность аллокации блоков в пределах TempCacheLimit.он "сверху" чем-то ограничен ? (кроме ес-сно, самого TempCacheLimit'a)
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537410
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоидон "сверху" чем-то ограничен ? (кроме ес-сно, самого TempCacheLimit'a)
нет
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537412
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда прошу разъяснений (на правах особо недогоняющего).
Если времянки растут с шагом = 8М (неважно, почему - может, это в линухе "так заведено"), то какой смысл назначать TempCacheBlock > 8 M ? Ведь когда ему понадобится новое место в temp_space, он получит за один присест только 8 м - так или нет ?
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537418
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

еще раз - TempBlockSize играет рояль только пока все влазит в память ФБ (т.е. не превышен TempCacheLimit). Потом он ни на что уже не влияет.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38537428
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спс, теперь понятно.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538939
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Повторил замеры для сочетаний:
TempBlockSize = 1 20 50 100 150 200 300 400 600 800 Mb
и
TempCacheLimit = 1024 2047 4096 8192 Mb

Хранение времяной во всех прогонах назначалось на ram-диске (/dev/shm).
И вот что теперь вижу:
1) как только времянки перестают вылазить на предел TempCacheLimit'a, так сразу скорость увеличивается на ~30% (т.е. даже если времянки должны храниться в памяти, превышение TCL ощутимо бьёт по скорости);
2) размер TempBlockSize влияет на скорость только на "малых высотах". Нежелателен размер = 1М - он выглядит явным "изгоем общества" на любом размере TempCacheLimit'a, см аттач.

2 dimitr: около года взад ты присылал патчик, который пишет в firebird.log, насколько оказалася превышен TempCacheLimit в результате того или иного стейтмента. Вывод данной статистики в трейсе и isql было бы полезнейшим нововведением последних лет. Сортировки "не по индексу" - повседневная часть работы. Равно как и заполнение GTT'шек, а в ближайшем будущем - и применение over()-функций.
Все они требуют под себя область, задаваемую TempCacheLimit'ом и выход за её границы, как можно видеть по результатам замеров, очень нежелательно.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538950
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

дык 15452254
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538958
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

как оказалось, важнее всего именно вылезание за 100% отведенной области. Даже если она "смаплена" на ram-disk: там результаты становятся похожими на работу с "обычным" диском.
А будет ли она заполнена на 7% или на 97% - пофиг, это всё одинаково по скорости. Лишняя инфа, КМК, в статистике не нужна.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538967
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ. Если "главенствующей" арх-рой в трёшке станет SS, то нынешние дефолтные значения для TempCacheLimit & TempBlockSize стопудово станут анахронизмами в наш космический век бесплатных терабайтов. ИМХО.
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538972
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

это тоже важно. Тут нужна инфа насколько заполнено временное пространство и сколько этого пространства требует конкретный оператор. При многопользовательском режиме всё может быть несколько иначе поскольку эта память будет делится между всеми сессиями (для суперклассика/супресервера)
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538989
Таблоид
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениснужна инфа насколько заполнено временное пространство и сколько этого пространства требует конкретный оператор. При многопользовательском режиме всё может быть несколько иначе поскольку эта память будет делится между всеми сессиями (для суперклассика/супресервера)Стейтмент при своем окончании высвобождает область TempCacheLimit'a, которая ему была нужна. Если в приложении много стейтментов, которые выполняются дольше 5...10 сек, то - да, они будут пересекаться и затраты их сложатся.
Но мне интересно, отчего скорость так падает, даже если времянки хранятся на ram-диске. нет
...
Рейтинг: 0 / 0
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
    #38538999
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Таблоид,

дык если память TempCacheLimit настроен плохо, то 5...10 сек запросто
...
Рейтинг: 0 / 0
15 сообщений из 40, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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