|
|
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
... а это, как его... вот установил я в конфиге ФБ параметр 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. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:14:47 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, этот параметр на "времянки" вообще никак не влияет, это гранулярность аллокации блоков в пределах TempCacheLimit. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:20:09 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Сделал overall-benchmark для разных вариантов настройки TempDirectories, опции монтирования sync и размера TempCacheLimit (1, 2 и 4 Гб). Гляньте в аттач и почувствуйте разницу (я про sync -vs- async для случая TempCacheLimit = 1Gb ). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:22:22 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
dimitrэтот параметр на "времянки" вообще никак не влияет, это гранулярность аллокации блоков в пределах TempCacheLimit.он "сверху" чем-то ограничен ? (кроме ес-сно, самого TempCacheLimit'a) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:23:12 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Таблоидон "сверху" чем-то ограничен ? (кроме ес-сно, самого TempCacheLimit'a) нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:32:58 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Тогда прошу разъяснений (на правах особо недогоняющего). Если времянки растут с шагом = 8М (неважно, почему - может, это в линухе "так заведено"), то какой смысл назначать TempCacheBlock > 8 M ? Ведь когда ему понадобится новое место в temp_space, он получит за один присест только 8 м - так или нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:35:32 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, еще раз - TempBlockSize играет рояль только пока все влазит в память ФБ (т.е. не превышен TempCacheLimit). Потом он ни на что уже не влияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:41:46 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
спс, теперь понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2014, 20:51:05 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Повторил замеры для сочетаний: 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'ом и выход за её границы, как можно видеть по результатам замеров, очень нежелательно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:46:25 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:50:59 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Симонов Денис, как оказалось, важнее всего именно вылезание за 100% отведенной области. Даже если она "смаплена" на ram-disk: там результаты становятся похожими на работу с "обычным" диском. А будет ли она заполнена на 7% или на 97% - пофиг, это всё одинаково по скорости. Лишняя инфа, КМК, в статистике не нужна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:54:45 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
ЗЫ. Если "главенствующей" арх-рой в трёшке станет SS, то нынешние дефолтные значения для TempCacheLimit & TempBlockSize стопудово станут анахронизмами в наш космический век бесплатных терабайтов. ИМХО. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 13:57:18 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Таблоид, это тоже важно. Тут нужна инфа насколько заполнено временное пространство и сколько этого пространства требует конкретный оператор. При многопользовательском режиме всё может быть несколько иначе поскольку эта память будет делится между всеми сессиями (для суперклассика/супресервера) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:00:16 |
|
||
|
Статистика затрат на манипуляции с окнами OVER()-функций: как её увидеть ?
|
|||
|---|---|---|---|
|
#18+
Симонов Дениснужна инфа насколько заполнено временное пространство и сколько этого пространства требует конкретный оператор. При многопользовательском режиме всё может быть несколько иначе поскольку эта память будет делится между всеми сессиями (для суперклассика/супресервера)Стейтмент при своем окончании высвобождает область TempCacheLimit'a, которая ему была нужна. Если в приложении много стейтментов, которые выполняются дольше 5...10 сек, то - да, они будут пересекаться и затраты их сложатся. Но мне интересно, отчего скорость так падает, даже если времянки хранятся на ram-диске. нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.01.2014, 14:08:10 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38538999&tid=1563941]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
197ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 542ms |

| 0 / 0 |
