|
|
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Ariochесли ты на мелких и небуферизованных ( flush buffers ) операциях будешь головкам "butterfly test" устраивать, то 3+3 мб/сек, которые ты показал в 16:28 [15489197], это очень даже пристойно!откудова может быть "butterfly test" при ресторе ? и с чего ты взял, что там небуферизованная запись идёт ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:56:04 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
kdvДругое дело - заливка данных в несколько потоковт.е. создать базу-1 с 10 таблицами одинаковой структуры, по 1 млн записей в каждой, а затем создать через backup и restore -m её "пустой аналог" и попробовать два варианта: 1) одновременно запускаемые 10 isql-окон, каждое коннектится к базе-источнику через ES EDS и льёт в "свою" таблицу из 10 имеющихся; 2) одно окно, делает то же самое, что все 10 в пункте "1)", но последовательно. Ты это имеешь в виду ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 16:59:12 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоид, ...а я спросил. А почему бы нет? резкое падение скорости hdd в такую схему укладывается хорошо. Мало ли какой у тебя на сервере планировщих IO, какая FS, что делает сервер... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:03:35 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоидсоздать базу-1 с 10 таблицами одинаковой структуры, по 1 млн записей в каждой, а затем создать через backup и restore -m её "пустой аналог" и попробовать два варианта я имел в виду просто создать базу, и в 10 таблиц лить данные 10-ю isql. Да, это самый примитивный вариант теста. Но через ES EDS (? what is EDS?) будет тормознее, причем не очень понятно, что тут сравнивать. я бы написал 10 однотипных процедур, вливающих случайные данные в 10 таблиц. Это уже ближе к теме для проверки именно распараллеливаемости вставки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:04:31 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоидоткудова может быть "butterfly test" при ресторе ? и с чего ты взял, что там небуферизованная запись идёт ?попробуй ресторить на рам-диск (хотя бы начать, если все данные не уберутся) ну или на какой-нить Samsung 840 Pro - увидишь и 100% загрузку ядра, и другие цифры в статистике IO. а "откуда" - какая разница, если исправить никак не сможешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:08:12 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
fd00ch, тут еще хитрее, у меня дома копирование с винчестера на винчестер шло со скоростью не больше 10 мб/с оказалось китайский SATA-контроллер (SilImg) был с RAID-прошивкой на непрощиваемой микросхеме, давно на это наплевали и забыли. Но... именно, когда он использовался в режиме с одного отдельного диска на другой, он не столько копировал, сколько переключался между дисками. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:11:36 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Ariochрезкое падение скорости hdd в такую схему укладывается хорошо.т.е. ты предполагаешь (или утверждаешь ?), что при ресторе происходит такое огромное число "дёрганий бошек", что он, болезный, добавляет только по 10-15 тыс записей в сек ? А как насчет этого ? (40 тыс записей в сек вместо 10 тыс, обычный insert). AriochМало ли какой у тебя на сервере планировщих IO, какая FS, что делает сервер...Не знаю, какой там планировщик 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:11:38 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
kdvwhat is EDSon external data source kdvя бы написал 10 однотипных процедур, вливающих случайные данные в 10 таблиц. Это уже ближе к теме для проверки именно распараллеливаемости вставки.попробую как-нить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:13:36 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
разные таблицы на ресторе показывают разный i/o, это однозначно. Это я к тому, что если ты померял скорость вставки на одной таблице, а скорость рестора - на другой, то будут разные результаты. ТаблоидНе знаю, какой там планировщик IO - наверное, "типичный". даже я знаю что есть планировщик cfq, есть as, есть deadline, и еще какие то. И они реально по разному работают. Например http://www.phoronix.com/scan.php?page=article&item=linux_iosched_2012&num=4 Threaded IO для hdd вроде разница между планировщиками не сильная, для SSD ощутимая, и куда выше разница между hdd и ssd (в сравнении с IOZone write performance выше). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:21:23 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
ТаблоидА как насчет этого ? (40 тыс записей в сек вместо 10 тыс, обычный insert). т.е. сплошная запись в один файл вместо чтения и записи двух разных файлов вперемешку ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:23:54 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоид, Код: sql 1. 2. Это не тоже самое что Код: sql 1. 2. и потом подставляем туда по одной строке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:28:13 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Ariochсплошная запись в один файл вместо чтения и записи двух разных файлов вперемешкуНет, не так. ЧТЕНИЕ (см. insert into ... select from ... ) тоже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:32:39 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисТаблоид, Код: sql 1. 2. Это не тоже самое что Код: sql 1. 2. и потом подставляем туда по одной строке.естес-сно! это тяжелее , чем подставлять по одной строке литералы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:33:29 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоид, не факт. В первом случае ничего кроме движка не работает. К тому же rdb$types попадает в кэш пусть даже и при вставке он будет постоянно вытесняться, но всё равно объём чтений с диска должен быть ниже. Во втором (если используется TCP) есть дополнительное взаимодействие через клиента. Вот когда рестор идёт через сервисы уже ближе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:41:53 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Ладно, экперимент покажет. Вот дождусь окончания этого долбаного рестора - ужо держитесь тогда! :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 17:44:01 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
kdvТаблоидсоздать базу-1 с 10 таблицами одинаковой структуры, по 1 млн записей в каждой, а затем создать через backup и restore -m её "пустой аналог" и попробовать два вариантая имел в виду просто создать базу, и в 10 таблиц лить данные 10-ю isql. Замер показал: параллельный инсерт по 1 млн строк в 10 таблиц *быстрее*, чем одиночный инсерт 10 млн строк в 1 таблицу. DDL (пустая новая база, FW = OFF): Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Батник для генерации 10 .sql-скриптов, каждый из которых вставляет по 1 млн записей в "свою" таблицу (t01 ... t10): perfins_parall.bat Код: 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. Батник, генерящий 1 скрипт со вставкой 10 млн строк в одну таблицу: perfins_single.bat Код: 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. Вспомогательный батник, вызываемый из обоих вышеприведенных: perfins_aux.bat Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Логи работы 10 скриптов, вставлявших по 1 млн строк в 10 таблиц, а также лог вставки 10 млн строк в 1 таблицу (три прогона) - см. аттач. Но если коротко, то: parallel 10 connects, insert + commit, elapsed time, secondssingle connect, insert + commit, elapsed time, seconds104,00136,3983,04140,6796,34137,7887,06102,38 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 21:59:22 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
а еще тут такая штука вылезла интересная: оказывается, чели поменять арх-ру на Super Classic , да назначить кеш коннекта = 2048, то: 1) время вставки 1 млн записей "в параллель" уменьшается с 90 до 20 сек - более чем в 4 раза! 2) время вставки 10 млн записей в "моноспектакле"... о стается тем же (!!). В аттаче - логи. Any comments ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 22:18:40 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
ТаблоидAny comments ?между 2 и 10 потоками разница велика? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 22:36:35 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
fd00chТаблоидAny comments ?между 2 и 10 потоками разница велика? :)не мерял, сделай сам это, плз. Всё приведено выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 22:38:47 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Запустил рестор через service_mgr. Оставляю до утра. Записи пишет "пачками": т.е. создаёт сразу по-многу, но затем ждёт завершения IO: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.01.2014, 23:25:43 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
ТаблоидЗапустил рестор через service_mgr.Итого: restore on…EventWITHOUT servicesWITH services3.0startJan 29 12:23:21Jan 29 23:05:42finishJan 29 13:59:11Jan 30 00:36:13datediff(second)575054312.5startJan 29 13:59:11Jan 30 00:36:14finishJan 29 19:30:28Jan 30 02:07:24datediff(second)198775470Кажись, в 2.5 про рестор без сервисов лучше забыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 09:24:44 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
ТаблоидAny comments ? Забавный тест. Получается, у Супера есть какой-то затык либо более узкий, чем HDD, либо блокировки на уровне файла, а не на уровне мьютексов в памяти? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 13:41:12 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
AriochПолучается, у Супера есть какой-то затык либо более узкий, чем HDD, либо блокировки на уровне файла, а не на уровне мьютексов в памяти?Не знаю, монстры придут - расскажут, авось. Ты у себя запускал его ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 14:04:31 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
Таблоид, у меня совсем не до того. Черкнуть пару строк пока тест компиляетсягрузится - это да. А так я нужную мне базу не тестирую, отложил на потом... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2014, 14:49:59 |
|
||
|
Старая песня о главном: распараллеливание рестора
|
|||
|---|---|---|---|
|
#18+
ТаблоидКажись, в 2.5 про рестор без сервисов лучше забыть.мнда, это точно надо запомнить: рестор в 2.5 - только через сервисы. Проверил еще раз рестор продакшена, варианты *с* и *без* сервисов, на LI-V2.5.3.26737 и LI-T3.0.0.30813 Firebird 3.0 Extents. ФБ в обоих случаях работает как SuperServer. База имеет размер 16К. Изменённые параметры конфигов: 1) 2.5 : Код: plaintext 1. 2. 3. 4. 2) 3.0 : Код: plaintext 1. 2. 3. 4. 5. 6. 7. Итого: restore on…EventWITHOUT servicesWITH servicesLI-T3.0.0.30813startJan 31 09:35:31Jan 31 11:16:18finishJan 31 11:16:12Jan 31 12:52:19datediff (sec)6 041 5 761 max temp usage469 762 048 469 762 048 LI-V2.5.3.26737startJan 31 12:57:49Jan 31 18:28:41finishJan 31 18:28:38Jan 31 20:02:41datediff (sec)19 849 5 640 max temp usage4 764 729 344 4 764 729 344 ("max temp usage" - максимально зарегистрированный размер fb_sort_* файлов для каждого варианта) Если сравнить с предыдущим замером: restore on:EventWITHOUT servicesWITH services3.0startJan 29 12:23:21Jan 29 23:05:42finishJan 29 13:59:11Jan 30 00:36:13datediff(second)575054312.5startJan 29 13:59:11Jan 30 00:36:14finishJan 29 19:30:28Jan 30 02:07:24datediff(second)198775470 ЗЫ. Для 2.5 max temp usage таков, будто там TempCacheLimit = 4294967296 был проигнорирован и проставлен в дефолтные 64М. Если это так, то непонятно, почему это не повлияло на время рестора при ИСПОЛЬЗОВАНИИ service_mgr - если сравнивать его с таким же временем для ФБ-3.0: те же 5600...5700 сек. А вот если TempCacheLimit = 4294967296 в ФБ 2.5 всё таки *был* задействован таким, то совсем непонятно, откудова такое превышение вылезло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2014, 22:20:35 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38542841&tid=1563925]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
330ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 240ms |
| total: | 710ms |

| 0 / 0 |
