Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Добрый день! Есть тестовая база 9.1.8 на файловой системе jfs2 поверх RAID10 (16HDD, 128K disk segment size) Тестовая таблица создана в TS с PAGESIZE=16K, EXTENSIZE=32, PREFETCHSIZE=AUTOMATIC и одним контейнером. NUM_IOSERVERS=AUTOMATIC=4 При включении DB2_PARALELL_IO=*:4 и выше тестовый запрос, генерирующий фуллскан, начинает работать в 3 раза медленнее чем при невключенном DB2_PARALELL_IO, что есть очень странно, учитывая, что в мануале как бы настойчиво рекомендуется использовать DB2_PARALEL_IO, если контейнер TS лежит на RAID-девайсе. Игрища с изменением PREFETCHSIZE картину сильно не меняют. (+/- 10%) При EXTENTSIZE < 32 запрос начинает выполняться еще дольше, увеличение EXTENSIZE > 32 результат не улучшает. Переразбить рейд на 4x4, увы, не вариант. Нужно соптимизировать текущий конфиг. При компрессии тестовой таблицы результаты выполнения запроса те же только скорость чтения с диска меньше в 3 раза. Может быть еще что-то необходимо включить/изменить для распараллеливания I/O ? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 13:00 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Добрый день. 16 дисков в RAID10 - это 8 параллельных зеркал. Т.е. full stripe будет 128k*8=1024k Поэтому при странице в 16k устанавливаем: - EXTENTSIZE=8, чтоб extent попадал в segment size - DB2_PARALELL_IO=*:8 Таким образом, при каждом префетче будет генерироваться 8 параллельных запросов, каждый на 128k (PAGESIZE*EXTENTSIZE). В теории такой характер запроса должен быть оптимальным - все диски загружены. Если не выставлять DB2_PARALLEL_IO, то при странице в 16k загрузить все диски сразу можно при EXTENTSIZE=64. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 14:46 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinДобрый день. 16 дисков в RAID10 - это 8 параллельных зеркал. Т.е. full stripe будет 128k*8=1024k Поэтому при странице в 16k устанавливаем: - EXTENTSIZE=8, чтоб extent попадал в segment size - DB2_PARALELL_IO=*:8 Таким образом, при каждом префетче будет генерироваться 8 параллельных запросов, каждый на 128k (PAGESIZE*EXTENTSIZE). В теории такой характер запроса должен быть оптимальным - все диски загружены. Если не выставлять DB2_PARALLEL_IO, то при странице в 16k загрузить все диски сразу можно при EXTENTSIZE=64. Спасибо за совет. Сделал тесткейс с тремя размерами экстента (8,32,64) При выключенном DB2_PARALLEL_IO тестовый запрос выполняется : extentsize 8 - ~70 сек extentsize 32 - ~50 сек extentsize 64 - ~70 сек Т.е. запрос выполняется с одинаковой скоростью при размере экстента как 8 так и 64 страницы. Что есть весьма странно. При DB2_PARALLEL_IO=*:8 extentsize 8 - ~320 сек extentsize 32 - ~215 сек extentsize 64 - ~200 сек После каждого выполнения тестового запроса инстанс перестартовывал. Каждый вариант выполнял 3 раза и взял среднее время выполнения. Опыты показывают явную деградацию перфоманса при включении DB2_PARALLEL_IO. Как-то это ненормально, имхо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 18:20 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Надо бы этот запрос db2batch'ем выполнять. Смотреть на io статистику по табличному пространству и сравнивать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 19:06 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinНадо бы этот запрос db2batch'ем выполнять. Смотреть на io статистику по табличному пространству и сравнивать... Очень хорошо использовать db2top, db2pd (вместе с iostat, topas или nmon). С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 20:18 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Я вряд ли могу сказать полезное по данной конкретной проблеме, но, абстрактно говоря, все эти RAID'ы (кроме первого) мне кажутся опасными с точки зрения настройки производительности. Вот, full stripe получился в 1024k. А действительно ли выравнены экстенты по этому размеру? (Я не знаю, как устроена jfs2). Это не говоря о том, что, кроме fullscan'а, бывает и random reading. Спокойнее было бы просто сделать 8 зеркал и разместить на них по 8 контейнеров каждого tablespace. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.08.2010, 20:41 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testДобрый день! Есть тестовая база 9.1.8 на файловой системе jfs2 поверх RAID10 (16HDD, 128K disk segment size) Тестовая таблица создана в TS с PAGESIZE=16K, EXTENSIZE=32, PREFETCHSIZE=AUTOMATIC и одним контейнером. NUM_IOSERVERS=AUTOMATIC=4 При включении DB2_PARALELL_IO=*:4 и выше тестовый запрос, генерирующий фуллскан, начинает работать в 3 раза медленнее чем при невключенном DB2_PARALELL_IO, что есть очень странно, учитывая, что в мануале как бы настойчиво рекомендуется использовать DB2_PARALEL_IO, если контейнер TS лежит на RAID-девайсе. Игрища с изменением PREFETCHSIZE картину сильно не меняют. (+/- 10%) При EXTENTSIZE < 32 запрос начинает выполняться еще дольше, увеличение EXTENSIZE > 32 результат не улучшает. Переразбить рейд на 4x4, увы, не вариант. Нужно соптимизировать текущий конфиг. При компрессии тестовой таблицы результаты выполнения запроса те же только скорость чтения с диска меньше в 3 раза. Может быть еще что-то необходимо включить/изменить для распараллеливания I/O ? Спасибо. FAQ: http://www-01.ibm.com/support/docview.wss?rs=71&uid=swg21298716 C.16 When using a RAID device for tablespaces, what should I set the EXTENTSIZE of the tablespace to? It is recommended that you set the EXTENTSIZE to match the stripe set of the RAID device for efficient data retrieval. Further tuning may be required depending on benchmark tests run on your individual systems. Example:- If you have a RAID 5 (4+1) system with 128k strip size you could set your EXTENTSIZE at 64k and your PAGESIZE at 8k. (as a rule of thumb, EXTENTSIZE X PAGESIZE - 64X8, should equal to strip size X no of disks, - 128X4) Посмотри глубину очередей и число серверов AIO - Best Practices for DB2 on AIX 6.1 for POWER Systems http://www.redbooks.ibm.com/redbooks/pdfs/sg247821.pdf PS: Database Performance Tuning on AIX - http://www.redbooks.ibm.com/redbooks/pdfs/sg245511.pdf С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2010, 09:58 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Mark BarinsteinНадо бы этот запрос db2batch'ем выполнять. Смотреть на io статистику по табличному пространству и сравнивать... Спасибо. Прогнал батчем вариант с EXTENTSIZE=8 со сборкой снэпшотов Без DB2_PARALLEL_IO : Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. C установленным DB2_PARALLEL_IO=*:8 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. Во втором случае Total elapsed asynchronous read time во много раз больше, правда не очень понятно из-за чего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 14:33 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
GVF112GVF Посмотри глубину очередей и число серверов AIO - Best Practices for DB2 on AIX 6.1 for POWER Systems http://www.redbooks.ibm.com/redbooks/pdfs/sg247821.pdf PS: Database Performance Tuning on AIX - http://www.redbooks.ibm.com/redbooks/pdfs/sg245511.pdf Спасибо. В моей системе для диска c базой queue_depth=10 и число запущенных aioserver'ов =120 (судя по ps -elfk | grep aio). В редбуке пишут, что для FC-дисков нужно число шпинделей умножать на 16, т.е. в моем случае 16*16=256=MAX. Думается, что это будет многовато :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 15:05 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testВо втором случае Total elapsed asynchronous read time во много раз больше, правда не очень понятно из-за чего.Похоже, что массив гораздо хуже обрабатывает параллельные запросы, чем последовательные. Xотя вроде бы должно быть наоборот... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2010, 18:46 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein, Думаю, что проблема кроется в физическом планировании базы данных. - Нужно смотреть на план выполнения запрос (db2 explain tools). - Как объекты базы данных затрагивает запрос (таблицы, индексы). - Какие табличные пространства наиболее интенсивно используются (операции I/O - read/write). Это легко посмотреть,используя утилиты - db2top (или db2pd). На уровне ОС - можно использовать nmon/topas или iostat, sar. Далее, можно понять, насколько эффективно выполняются параллельные операции I/O - в каких табличных пространствах и по каким контейнерам. Может он у Вас вообще не расспаралеливает I/O на определенном уровне выполнения SQL-запроса .... ;) Посмотри в db2top как читаются/обновляются таблицы и что происходит на уровне табличных пространств в момент выполнения SQL-запроса. Сколько контейнеров в табличном пространстве. Где выполняются сортировки. Как стратегия размещение - таблиц, индексов и т.д. Где затык - на уровне OC, адаптеров I/O, дисковой подсистемы и т.д. С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2010, 00:15 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
GVF112GVFMark Barinstein, Думаю, что проблема кроется в физическом планировании базы данных. - Нужно смотреть на план выполнения запрос (db2 explain tools) в том и другом случае. - Какие объекты базы данных затрагивает SQL-запрос (таблицы, индексы). - Какие табличные пространства наиболее интенсивно используются (операции I/O - read/write). Это легко посмотреть,используя утилиты - db2top (или db2pd). На уровне ОС - можно использовать nmon/topas или iostat, sar. Далее, можно понять, насколько эффективно выполняются параллельные операции I/O - в каких табличных пространствах и по каким контейнерам. Может он у Вас вообще не расспаралеливает I/O на определенном уровне выполнения SQL-запроса .... ;) Посмотри в db2top как читаются/обновляются таблицы и что происходит на уровне табличных пространств в момент выполнения SQL-запроса. Сколько контейнеров в табличном пространстве. Где выполняются сортировки. Какая стратегия размещения используется для таблиц, индексов и т.д. Где затык (очереди на обслучивание) - на уровне OC, адаптеров I/O, дисковой подсистемы и т.д. С уважением, Вадим. Марк, sorry - это не в твой адреc .... this is message for db2test ... Thanks! Vadim. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2010, 00:23 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
А ларчик просто открывался (с) Как-то я забыл, что для 9.1 по дефолту таблспейсы создаются с FILE SYSTEM CACHING. Ниже (если кому интересно) результаты тестовых прогонов (по 5 раз) запроса по таблицам с размером экстента соответственно 2,8,32 и 64 страницы по 16к при отсутствии/наличии DB2_PARALLEL_IO и FILESYSTEM CACHING test_without_DB2_PARALLEL_IO_and_ FILESYSTEM_CACHING Код: plaintext 1. 2. 3. 4. 5. 6. test_without_DB2_PARALLEL_IO_and_ NO_FILESYSTEM_CACHING Код: plaintext 1. 2. 3. 4. 5. 6. test_ DB2_PARALLEL_IO-8 _and_ FILESYSTEM_CACHING Код: plaintext 1. 2. 3. 4. 5. 6. test_ DB2_PARALLEL_IO-8 _and_ NO_FILESYSTEN_CACHING Код: plaintext 1. 2. 3. 4. 5. 6. Мысли по полученным результатам : 1. Включение DB2_PARALLEL_IO на таблспейсах с FILESYSTEM CAСHING приводит к существенному падению производительности запросов с фуллсканом (исходная проблема). 2. EXTENTSIZE=2 - наихудший вариант для исходной дисковой конфигурации (raid10, 16hdd, 128к disk segment size, 1024k full stripe), что, собственно, неудивительно. 3. При NO FILE SYSTEM CACHING (что по дефолту для таблспейсов начиная с 9.5) установка DB2_PARALLEL_IO повышает производительность и чем больше EXTENTSIZE приближается к RAID full stripe тем выше. 4. Кэш файловой системы иногда не так уж плох, как о нем говорят :) 5. etc.... Посмотрим на результаты с компрессией таблиц. To be continued .... P.S. Понятно, что это все "сферический тест в вакууме" и как оно будет на реальном продакшене с миксом коротких запросов по индексу и периодическими фуллсканами еще "бабушка надвое сказала". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2010, 13:06 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Исследования продолжаются .... В полученных выше результатах для симуляцмм фуллскана использовал простейший запрос вида select date, count(*) from table group by date Теперь просто дергаю данные из тех же таблиц простым select * from table Таблицы, напомню, с разным размером экстента. Наблюдаю очень медленное чтение (db2top показывает 14-15 тыс. записей в секунду) Не помогает ни вкл/выкл FILE SYSTEM CACHING, ни установка/снятие DB2_PARALLEL_IO, ни изменение PREFETCHSIZE, ни компрессия таблицы : на всех тестовых таблицах (extentsize=2,8,32) одна и та же скорость линейного чтения в ~15 000 записей в сек. При этом запрос с группировкой в зависимости от extentsize в db2top'е показывает от 100 000 до 500 000 rows read в сек. Где еще можно копнуть, чтоб скорость чтения таблицы простым селектом увеличить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2010, 14:31 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2test В моей системе для диска c базой queue_depth=10 и число запущенных aioserver'ов =120 (судя по ps -elfk | grep aio). В редбуке пишут, что для FC-дисков нужно число шпинделей умножать на 16, т.е. в моем случае 16*16=256=MAX. Думается, что это будет многовато :) aioservers много не бывает, во всяком случае пишут, что неиспользуемые aioserverы ресурсов не кушают. Если их количества недостаточно, то максимально параллельных запросов будет в Вашем случае 120, а не 256. Не знаю, поможет ли в Вашем случае, но я пользуюсь nmon для мониторинга (в режиме регистрации, а не в интерактиве), он показывает дисковые нагрузки и т.п. Возможно есть смысл посмотреть. Буферпулы - это другая история, но они тоже влияют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 12:21 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Vladimir Kiselev aioservers много не бывает, во всяком случае пишут, что неиспользуемые aioserverы ресурсов не кушают. Если их количества недостаточно, то максимально параллельных запросов будет в Вашем случае 120, а не 256. Не знаю, поможет ли в Вашем случае, но я пользуюсь nmon для мониторинга (в режиме регистрации, а не в интерактиве), он показывает дисковые нагрузки и т.п. Возможно есть смысл посмотреть. Буферпулы - это другая история, но они тоже влияют. iostat -AQ во время выполнения запроса показывает что AIO "курит бамбук". nmon+db2top тоже использую (больше правда в интерактиве). Буфферпул 4 Gb. Тут скорее интересно то, что FILE SYSTEM CACHING показывает лучший результат чем при отключенном кэшировании. Меня сейчас больше беспокоит последняя проблема. Непонятно почему запрос с группировкой лупит по 300000/сек. строк по таблице, а простой select * from table в 20 раз меньше. Кто-нибудь может привести свои цифры по rows read/s из db2top для простого select * from table на достаточно большой таблице (> 10 млн) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 13:49 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testНепонятно почему запрос с группировкой лупит по 300000/сек. строк по таблице, а простой select * from table в 20 раз меньше. Думаю, что узкое место здесь - вывод результатов запроса на экран (или куда они там выводятся). Я почти уверен, что производительность "export to /dev/null of ixf select * from table" будет работать существенно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 16:03 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testМеня сейчас больше беспокоит последняя проблема. Непонятно почему запрос с группировкой лупит по 300000/сек. строк по таблице, а простой select * from table в 20 раз меньше. Кто-нибудь может привести свои цифры по rows read/s из db2top для простого select * from table на достаточно большой таблице (> 10 млн) ?У db2batch есть rows_fetch и rows_out параметры. Советую rows_out=0 и сравнить время выполнения запроса для rows_fetch=0 и rows_fetch=-1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 16:41 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
mustaccio, Все тесты провожу через db2batch c параметром SET ROWS_OUT 0. Т.е, если я правильно понимаю, то все записи фетчит сам db2batch, но на диск не вываливает. Прогнал db2 "export to /dev/null of ixf select * from db2inst1.testtab32" testtab32 - 21 млн. записей, pagesize=16k, extentsize=32, prefetchsize=auto Во время прогона наблюдал за чтением в db2top Снял скриншоты, как сюда картинки вставлять на разобрался сорри, архив с жипегами приаттачил. Сразу после запуска наблюдаю картину (db2top1.jpg) Идет зачем-то запись в какую-то временную таблицу со скоростью ~1 100 000 rows/s Потом через момент времен равный как раз фетчу 21-мл записей с такой скоростью начинается чтение записей из этой же временной таблицы со скоростью ~800000 rows/s. (db2top2.jpg) Потом опять как раз примерно через 25 секунд начинается третья фаза собственно с чтением почему-то из обеих таблиц (временной и рабочей testtab32) со скоростью ..... ~10 000 rows/s (db2top3.jpg). И так до самого конца еле-еле. "Все чудесатее и чудесатее" (c) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:12 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
а не может быть проблемы с мультиблочным чтением (scattered read) ? на сколько я знаю через кеш файловой системы мультиблочно читать не возможно принципиально т.к. это фича железяки. значит при FILESYSTEM_CACHING мультиблочно не мог бы читать, а с NO_FILESYSTEM_CACHING у вас явно разрыв не тот который должено было бы дать мультиблочное чтение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:57 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
А вы не пробовали планы запросов смотреть? Так, на всякий случай спрашиваю, наверное, пробовали... set current explain mode yes select * from db2inst1.testtab32 set current explain mode no db2exfmt -d <database name> -1 | more ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 18:33 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testVladimir Kiselev aioservers много не бывает, во всяком случае пишут, что неиспользуемые aioserverы ресурсов не кушают. Если их количества недостаточно, то максимально параллельных запросов будет в Вашем случае 120, а не 256. Не знаю, поможет ли в Вашем случае, но я пользуюсь nmon для мониторинга (в режиме регистрации, а не в интерактиве), он показывает дисковые нагрузки и т.п. Возможно есть смысл посмотреть. Буферпулы - это другая история, но они тоже влияют. iostat -AQ во время выполнения запроса показывает что AIO "курит бамбук". nmon+db2top тоже использую (больше правда в интерактиве). Буфферпул 4 Gb. Тут скорее интересно то, что FILE SYSTEM CACHING показывает лучший результат чем при отключенном кэшировании. Меня сейчас больше беспокоит последняя проблема. Непонятно почему запрос с группировкой лупит по 300000/сек. строк по таблице, а простой select * from table в 20 раз меньше. Кто-нибудь может привести свои цифры по rows read/s из db2top для простого select * from table на достаточно большой таблице (> 10 млн) ? Нужно смотреть план выполнение запросов и сравнить их. Да и вот еще, Вы смотрели как ведет себя страничный файл (swap file) ? С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 20:19 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
db2testmustaccio, Все тесты провожу через db2batch c параметром SET ROWS_OUT 0. Т.е, если я правильно понимаю, то все записи фетчит сам db2batch, но на диск не вываливает. Прогнал db2 "export to /dev/null of ixf select * from db2inst1.testtab32" testtab32 - 21 млн. записей, pagesize=16k, extentsize=32, prefetchsize=auto Во время прогона наблюдал за чтением в db2top Снял скриншоты, как сюда картинки вставлять на разобрался сорри, архив с жипегами приаттачил. Сразу после запуска наблюдаю картину (db2top1.jpg) Идет зачем-то запись в какую-то временную таблицу со скоростью ~1 100 000 rows/s Потом через момент времен равный как раз фетчу 21-мл записей с такой скоростью начинается чтение записей из этой же временной таблицы со скоростью ~800000 rows/s. (db2top2.jpg) Потом опять как раз примерно через 25 секунд начинается третья фаза собственно с чтением почему-то из обеих таблиц (временной и рабочей testtab32) со скоростью ..... ~10 000 rows/s (db2top3.jpg). И так до самого конца еле-еле. "Все чудесатее и чудесатее" (c) Кодовые страницы базы и OS - такие же (совпадаю) ? Как на счет сортировок ? Как ведет себя страничный файл OS ? С уважением, Вадим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 20:29 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Mark Barinstein[У db2batch есть rows_fetch и rows_out параметры. Советую rows_out=0 и сравнить время выполнения запроса для rows_fetch=0 и rows_fetch=-1. Спасибо. Да, я с самого начала запускал с --#SET ROWS_OUT 0 Теперь добавил ROWS_FETCH 0, получил : --#SET ROWS_FETCH 0 ROWS_OUT 0 Код: plaintext 1. 2. 3. --#SET ROWS_FETCH -1 ROWS_OUT 0 Код: plaintext 1. 2. 3. Только вот чем поможет время без фетча.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 22:46 |
|
||
|
RAID vs. DB2_PARALLEL_IO
|
|||
|---|---|---|---|
|
#18+
Yo.!а не может быть проблемы с мультиблочным чтением (scattered read) ? "мультиблочное чтение" это в смысле параллельное чтение экстентов несколькими префетчерами c одного контейнера ? Ну как бы это и было целю изначального тестирования. Пока не понятно то ли это проблема c DB2, то ли это ..."it depend's (c) :) Yo.! на сколько я знаю через кеш файловой системы мультиблочно читать не возможно принципиально т.к. это фича железяки. значит при FILESYSTEM_CACHING мультиблочно не мог бы читать Тогда это объясняет ухудшение результата в разы при выставлении DB2_PARALLEL_IO и при FILE SYSTEM CACHING (например для EXTENTSIZE=32 это 44 сек. vs 215 сек.). Yo.! а с NO_FILESYSTEM_CACHING у вас явно разрыв не тот который должено было бы дать мультиблочное чтение. Ну вот оно и непонятно, при включении DB2_PARALLEL_IO=*:8 и при NO_FILESYSTEM_CACHING результат все равно хуже чем при кэшировании и без DB2_PARALLEL_IO (при EXTENTSIZE=32 52 сек. vs 44 сек). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 08:51 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=36819246&tid=1602477]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
186ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
1ms |
| others: | 290ms |
| total: | 572ms |

| 0 / 0 |
