Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
vasilisКак это рандомные ? index_range_scan - это чтение группы подряд лежащих индексных страниц с ключами (чтение диапазона значений ключа, тот же битвин). И для этого (чтения диапазона) даже не нужно подниматься на верхний уровень после каждой листьевой страницы - у них есть ссылки на следующую страницу своего уровня. Другое дело, что диапазоны могут быть разными, в том числе и маленькими, и вполне помещаться на одну или две страницы и для этого RA не понадобится. Но для большого диапазона (или индексов с большими ключами, а значит большим количеством страниц) это будет очень даже полезно. Вот тут и должен помочь прогноз оптимизатора по количеству возвращаемых строк.Позапускал селекты select pk where pk = (ra не используется), Код: plaintext 1. 2. pk between (используется). Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 14:38 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
vasilis Я НЕ "думаю разница очень сильно сократится" в данном тесте при использовании каких бы то ни было параметров RA (хотя всегда стараюсь его использовать по максимуму :) Я думаю что она достаточно сильно сократится, так как при данном окружении ИМХО процессор успевает пересортировать данные быстрее чем производится чтение с диска. В случае с блочными устройствами мы уже имеем упреждающее чтение в буфере ядра. Я не вижу никаких других факторов при проведении тестирования, которые могли бы дать такую разницу в производительности. Когда мы исключаем этот буфер при работе с RAW мы конфигурации ставим в неравные условия. Эту неравность нужно компенсировать за счет упреждающего чтения в БД. В конечном итоге это не только компенсация, а и оптимизация, так как informix гораздо лучше знает когда лучше использовать упреждающее чтение чем ядро. На время постройки индексов рекомендую попробовать : RA_PAGES 64 RA_THRESHOLD 32 Для чистоты эксперемента в обеих конфигурациях как RAW & BLOCK. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 14:59 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
onstat- vasilis onstat-Фрагментированы ли таблицы? вроде нет, но для блочных устройств было то же самое - не забывайте, тест проводился именно для сравнения ("RAW device" vs "BLOCK device"), а не для поиска оптимального времени загрузки. Я правильно говорю, svat2 ? :) Правильно то оно правильно, вот только нет никакого толку от эксперемента, когда значения погрешности превосходит значения измеряемой величины. Прежде чем сравнивать производительность BLOCK vs RAW нужно оценить уровень погрешностей. Абсолютная величина и причины недозагрузки процессора(на постройке индекса) вносит гораздо большее влияние на производительность(погрешность) чем разница в производительности BLOCK vs RAW. В иделале постройку индекса нужно сравнивать при нагрузке процессоров ~100%. Тогда разница во времени будет показательна. По этой причине и возник вопрос. Что то разговор зашел в сторону, но мне все же кажется, что вы уже начала путать причину и следствие. Для наглядности пример (очень условный :) Сравнивают кто быстрее - велосипедист или мотоциклист по трем разным отрезкам дороги. В итоге вы хотите, чтобы время пути сравнивалось только в том случае, когда физическая нагрузка велосипедиста и мотоциклиста были одинаковые, а она просто не может быть одинаковой при всех прочих равных параметрах. Тест то ведь был (при всей его условности и неправильных, на мой взляд, некоторых параметрах) ОДИНАКОВЫМ для BLOCK и RAW. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 15:03 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
onstat- vasilis Я НЕ "думаю разница очень сильно сократится" в данном тесте при использовании каких бы то ни было параметров RA (хотя всегда стараюсь его использовать по максимуму :) Я думаю что она достаточно сильно сократится, так как при данном окружении ИМХО процессор успевает пересортировать данные быстрее чем производится чтение с диска. В случае с блочными устройствами мы уже имеем упреждающее чтение в буфере ядра. Я не вижу никаких других факторов при проведении тестирования, которые могли бы дать такую разницу в производительности. Если бы RA давал прирост в 2-3 раза, то его бы и так включили по-умолчанию. Никогда он такого не даст, т.к. упреждающее чтение есть еще и в контроллере диска/рейда. onstat-Когда мы исключаем этот буфер при работе с RAW мы конфигурации ставим в неравные условия. Эту неравность нужно компенсировать за счет упреждающего чтения в БД. На время постройки индексов рекомендую попробовать : RA_PAGES 64 RA_THRESHOLD 32 Для чистоты эксперемента в обеих конфигурациях как RAW & BLOCK. Вы невнимательны. Еще в первом посте было указано, что RA_PAGES 64 # Number of pages to attempt to read ahead RA_THRESHOLD 48 # Number of pages left before next group и именно поэтому я и говорил, что изменение этого параметра сильно не поможет, т.к. RA и так хорошо использовался. Все, что вы говорите про упреждающее чтение, правильно, но уже было сделано и использовалось в тесте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 15:15 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
Журавлев Денис vasilisКак это рандомные ? index_range_scan - это чтение группы подряд лежащих индексных страниц с ключами (чтение диапазона значений ключа, тот же битвин). И для этого (чтения диапазона) даже не нужно подниматься на верхний уровень после каждой листьевой страницы - у них есть ссылки на следующую страницу своего уровня. Другое дело, что диапазоны могут быть разными, в том числе и маленькими, и вполне помещаться на одну или две страницы и для этого RA не понадобится. Но для большого диапазона (или индексов с большими ключами, а значит большим количеством страниц) это будет очень даже полезно. Вот тут и должен помочь прогноз оптимизатора по количеству возвращаемых строк.Позапускал селекты select pk where pk = (ra не используется), Код: plaintext 1. 2. Код: plaintext 1. Ну, дык, что и требовалось :) Спасибо, что не поленился проверить. Правда, меня смущает, почему ixda-RA только 3 страницы. Даже по умолчанию должно быть 4. Значит этот механизм еще более интеллектуальней, чем мы думаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 15:17 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
svat2 onstat- Сколько процов? Фрагментированы ли таблицы? Настраивался ли PDQ? 1) Проц 1, 4х-ядерный (я указывал выше) 2) дайте запрос, данные которого Вас интересуют по этому поводу 3) кроме нижеуказанного, ничего не делалось Код: plaintext 1. 2. 3. в переменные окружения PSORT_NPROCS=3 в онконфиг MULTIPROCESSOR 1 NUMCPUVPS 3 SHMVIRTSIZE 640000 RA_PAGES 64 RA_THRESHOLD 32 DS_TOTAL_MEMORY 512000 в сессии: set pdqpriority 100; Нагрузка на процессоры должна подняться минимум до 25% ( одно ядро будет загруженно полностью сортировкой). Остальное в зависимости от фрагментации, по ссылке на FAQ, которую привел vasilis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 15:26 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
vasilis Вы невнимательны. Еще в первом посте было указано, что RA_PAGES 64 # Number of pages to attempt to read ahead RA_THRESHOLD 48 # Number of pages left before next group и именно поэтому я и говорил, что изменение этого параметра сильно не поможет, т.к. RA и так хорошо использовался. Все, что вы говорите про упреждающее чтение, правильно, но уже было сделано и использовалось в тесте. Согласен, недосмотрел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 15:32 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
vasilis Думаю, что на постройке индексов можно сильно сократить время, если использовать FAQ http://www.sql.ru/faq/faq_topic.aspx?fid=858 В данном случае нужно распараллелить сортировки, а для этого добавить несколько tempdbs (еще 3), увеличить SHMVIRTSIZE (а для 11-й версии есть даже спецпараметр для сортировок), установить PDQPRIORITY и PSORT_NPROCS=4. Кстати, еще сделать CPUVP=4 (по кол-ву ядер) Согласно рекомендациям по вышеприведенной ссылке (по возможности) изменю настройки и проведу тест еще раз к завтрашнему утру. vasilis тест проводился именно для сравнения ("RAW device" vs "BLOCK device"), а не для поиска оптимального времени загрузки. Я правильно говорю, svat2 ? :) Да, правильно. Т.к. в тесте менялся по сути только 1 важный параметр при равных остальных условиях. Теперь же я вижу, что есть у комьюнити желание "модифицировать" условия теста таким образом, чтобы "дать RAW-устройствам себя показать". Поскольку есть подозрения, что изначально, возможно, эти условия способствовали BLOCK-устройствам. Согласен и сделаю это. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 17:30 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
С блочным устройством вызовы такие: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.04.2008, 18:06 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. ("HPL-load of data"), при создании таблиц, до заливки данных. Т.е. заливка данных уже происходит в таблицы, на которые "навешены" индексы. Второй же этап ("Creating indexes, constraints, etc.") поэтому я переименовал в "Creating constraints, etc." Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. Имеем: $ onstat - IBM Informix Dynamic Server Version 11.10.FC2TL -- On-Line -- Up 00:10:51 -- 7479248 Kbytes Результаты внес в табличку: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 16:40 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
... и нагрузки за период последних 2х тестов: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2008, 16:41 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
Ну что же, сократили время построения индексов более, чем на 2 часа (30%), т.ч. можно сказать, что своего добились :) т.е. показали, что при соответствующих условиях RAW-устройства проявляют себя немного лучше, чем вначале, но разница все равно остается колоссальная, именно для ЭТОГО теста. P.S. Кстати, ранее я советовал не только NUMCPUVPS=4, а и сделать одинаковый с ним PSORT_NPROCS=4, т.е. количество потоков сортировки м.б. равным числу усл.процов. "RAW device" vs "BLOCK device" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2008, 18:34 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
vasilisНу что же, сократили время построения индексов более, чем на 2 часа (30%), т.ч. можно сказать, что своего добились :) т.е. показали, что при соответствующих условиях RAW-устройства проявляют себя немного лучше, чем вначале, но разница все равно остается колоссальная, именно для ЭТОГО теста. P.S. Кстати, ранее я советовал не только NUMCPUVPS=4, а и сделать одинаковый с ним PSORT_NPROCS=4, т.е. количество потоков сортировки м.б. равным числу усл.процов. "RAW device" vs "BLOCK device" ИМХО дополнительное ядро на сортировке производительности не добавит, по нагрузке на процессоры видно что даже 3 ядра не загружены. Мне интересно из за чего такая разница в обьеме дискового ввода вывода. ИМХО дополнительная буферизация гдето всетаки имеется в случае с блочными устройствами именно она и есть причиной такой разницы в производительности. Если под informix отдать 6 Гб на блочных устройствах ИМХО производительность упадет. 2 svat2 У Вас случаем не завалялся рузультат onstat -D по результатам каждого из трех этапов для всех тестов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2008, 20:06 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
onstat- Если под informix отдать 6 Гб на блочных устройствах ИМХО производительность упадет. Вы невнимательны. Под Информикс в последних тестах УЖЕ было выделено ~7,5 Gb. Хотя и операционной системе осталось ~500 Mb для своих нужд (в т.ч. и буферизации). onstat- 2 svat2 У Вас случаем не завалялся рузультат onstat -D по результатам каждого из трех этапов для всех тестов. Сейчас выполняю еще цикл тестов с PSORT_NPROCS=4 и поэтапной регистрацией "onstat -D". О результатах сообщу позже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2008, 12:07 |
|
||
|
"RAW device" vs "BLOCK device"
|
|||
|---|---|---|---|
|
#18+
Выполнил еще цикл тестов с предыдущим конфигом и с PSORT_NPROCS=4 (было =3). Результаты см. в прикрепленном файле. ЗЫ. поэтапный "onstat -D" для обоих тестов см. в следующем сообщении... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2008, 14:47 |
|
||
|
|

start [/forum/topic.php?fid=44&msg=35256317&tid=1608122]: |
0ms |
get settings: |
12ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
3ms |
| others: | 264ms |
| total: | 414ms |

| 0 / 0 |
