|
|
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
pastor> вот и определился ориентир размера страницы БД в FB 4.0 В палату №6, не иначе. Как макс. размер - ещё куда ни шло. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 19:06:42 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
kdvСейчас вот вообще пишут 512K is commonly used and is supposed to have the best combination of benefits for large I/O and the least detriment for small I/O on this controller across multiple operating systems.Ну, возможно кеширование в самом контроллере всё поменяло. В любом случае - проверять нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 19:25:09 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
hvlad, поскольку "разговор об этом с тобой" не вспоминается (я даже не помню, когда и где это было), то вот, что пишут: - страйп - это кусок данных, хранимый на одном диске. т.е. например 64к на одном, потом 64к на другом, и т.д. - поочередное чтение с дисков, разумеется, может увеличить скорость, но чем меньше будет страйп, тем хуже это будет для последовательного чтения (разумеется?). - поскольку в тестах страйпов часто ссылаются на MS SQL, оптимальный размер в 128к может быть связан с "блочным чтением", о котором ты недавно говорил в отношении ФБ3 в фб-девел. - при упоминании размера страйпа часто упоминают его прямую связь со скоростью шины контроллера. Отсюда оптимум в 64, 128 и 256 к. И, да, про страйпы было у Ривза, http://www.firebirdsql.org/file/community/ppts/fbcon11/FB_Conf_2011_Firebird_RAID.pdf со слайда 32. p.s. спорить я не хочу, проще найти результаты тестов контроллеров, но мне отсюда делать это не очень удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.01.2014, 20:39:06 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Предположим нам надо прочитать 100Мб последовательных данных с дисковой системы (full table scan). На правильный операционной системе с правильной файловой системой одно логической чтение имеет лимит 1Мб. Итого нам потребуется минимум 100 логических чтений каждое на 1 Мб. Можно тогда ограничиться рассмотрением чтения 1Мб, поскольку далее мы просто повторяем это 100 раз. У нас есть доступ к массиву жестких дисков неограниченного размера, и мы можем конфигурировать его как хотим. Берем 128*2 дисков и делаем RAID10 с stripe=8k. Наше логическое чтение 1Мб контроллером размазывается на 128 чтений по 8Кб каждое на своем диске и мы без учета накладных расходов на контроллере получаем наш ответ за одно физическое чтение с каждого жесткого диска. Но суммарно мы сгенерировали 128 физических чтений. То есть для одной сессии мы производительность максимизировали, но для 100 сессий такого типа суммарная производительность массива неоптимальна. Такой stripe может иметь смысл для data warehouse и прочих DSS. Сделали stripe=512k. Чтение размазалось только на два шпинделя, мы создали только 2 физических чтения на 1 логическое, что хорого для конкурирующих чтений от других сессий, но производительность чтения нашей сессии упала, поскольку мы вынуждены ждать когда каждый диск сможет нам отдать наши 512Кб. К счастью с высокой вероятностью эти 512Кб записаны последовательно, а скорость последовательного чтения с жесткого диска в десятки раз выше случайного чтения. Так что можно надеяться получить скорость чтения всего в несколько раз меньше, чем с массива из 128 пар дисков. Для случайной записи, конечно, фокус не придет, и надо как можно больше шпинделей, но нормально базы данных пишут гораздо меньше, чем читают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2014, 01:51:36 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
kdv- поочередное чтение с дисков, разумеется, может увеличить скорость, но чем меньше будет страйп, тем хуже это будет для последовательного чтения (разумеется?).Только в отсутствии read-ahead и кеша в контроллере. kdv- поскольку в тестах страйпов часто ссылаются на MS SQL, оптимальный размер в 128к может быть связан с "блочным чтением", о котором ты недавно говорил в отношении ФБ3 в фб-девел.Размер экстента в MSSQL - 64KB и в твоей первой ссылке зуб дают, что испытывали рандомные одностраничные чтения kdv- при упоминании размера страйпа часто упоминают его прямую связь со скоростью шины контроллера. Отсюда оптимум в 64, 128 и 256 к.Это может относиться только к большиму последовательному IO. kdvИ, да, про страйпы было у РивзаУ него на стр.32 для рестора лучше всего страйп И страница 16КБ и страйп 256КБ везде проигрывает. А потом, на стр.34 страйп 256КБ вдруг становится лучшим для инсертов (р-р страницы не указан, кстати). А что есть рестор, как не куча инсертов ? Про индексы во время рестора ничего не сказано. Так что - я ему просто не верю. По крайней мере без объяснений. kdvспорить я не хочуЯ же уже выше согласился - проверять надо. Конкретный контроллер с конкретным набором дисков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.01.2014, 02:13:35 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Дальнейшее развитие ситуации. 1. Контроллер действительно не дает изменить никакие настройки при создании массива. Оказывается, это версия с какой-то особой прошивкой. 2. Провел тесты с другими дисками. Отдельный SAS-диск, подключенный к контроллеру, так и SATA-диск, подключенные к мат. плате, дали примерно такую же производительность при бэкапе - 100 секунд. При ресторе данных чуть SAS-диск быстрее (95 против 105 у SATA и RAID). остальне то же самое (~315 секунд). 3. x64-сборка при ресторе быстрее на 30 секунд при создании индексов. Остальные тайминги такие же. 4. Время рестора данных и бэкапа одинаковые и ~100 секунд. Размер fbk 400 Мб. Отсюда вывод - скорость чтения/вставки ~4 Мб/сек... А вот теперь самое интересное. Так как памяти много, решил проверить - а что будет, если засунуть базу в RamDisk? Установил SoftPerfect RamDisk и получились следующие результаты. Бэкап - 100 секунд, рестор данных - 100 секунд, рестор индексов - 315 секунд. То есть дисковая подсистема тут вообще не влияет! Загрузка процессора все это время в районе 3-4%. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 09:34:31 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMaxТо есть дисковая подсистема тут вообще не влияет! Загрузка процессора все это время в районе 3-4%. Да ты уже близок к http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1069931&msg=15395279 На счет 3-4% странно, если у тебя 16 ядер, то д.б. 6.25 % :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 10:01:16 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Евгений КилинНа счет 3-4% странно, если у тебя 16 ядер, то д.б. 6.25 % :) Их 32 :). Процесс с FB грузится на 100%. Протестировал B/R на RamDisk'е Windows 2008 R2, CPU i3 2.9 GHz. Бэкап - 55 секунд. Рестор: данные 70 секунд, индексы 190 секунд. Итого 260 секунд против 415 на AMD Opteron 2.4 GHz. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 10:26:12 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMax> То есть дисковая подсистема тут вообще не влияет! Спрашивается, стоило ли столько мучаться, чтобы узнать то, что итак известно и еще на первой странице упомянуто. Покрути настройки конфига - может чуток и выиграешь где. Заодно нам раcскажешь о подобранных оптим. параметрах. CyberMax> Загрузка процессора все это время в районе 3-4%. Странно это, ибо ты в проц и должен упираться по идее. Уточни ещё у ДЕ/Влада, может ли там что-нибудь параллелиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:03:12 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMax> Итого 260 секунд против 415 на AMD Opteron 2.4 GHz. AMD гомно! Интел наше всё! (с) Попробуй ещё ради интереса тактовую частоту Интела до 2.4 снизить для пущей честности. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:04:45 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
А что у тебя так много варчар-индексов? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:05:54 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамА что у тебя так много варчар-индексов? На многих справочниках уникальность поля имени на них держится. Процентах на 80, примерно. Это плохо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:12:26 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов РустамСпрашивается, стоило ли столько мучаться, чтобы узнать то, что итак известно и еще на первой странице упомянуто. Ну не верилось, что свежекупленный сервер будет проигрывать чисто по производительности CPU десктопу. Гаджимурадов РустамПокрути настройки конфига - может чуток и выиграешь где. Заодно нам раcскажешь о подобранных оптим. параметрах. Пока покрутил CPU Affinity и TempCacheLimit. Проверяю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:23:12 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMaxНу не верилось, что свежекупленный сервер будет проигрывать чисто по производительности CPU десктопу.разные весовые категории, это как сравнить белаз и феррари. ;) Я когда помогал Диме тестить рестор запускал 4 копии рестора на сервере и они приходили к финишу практически одновременно, и по времени в пределах погрешности относительно одной запущенной копии. Если есть игровая база где затерты реальные данные, могу потестить для тебя на линухе, как на интеле так и на АМД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 12:32:08 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMax> На многих справочниках уникальность поля имени CyberMax> на них держится. Процентах на 80, примерно. Это плохо? Да нет. Все длинные чтоль? Был бы один высокий справочник - вышло бы дешевле, наверное. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:05:20 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
CyberMax> Ну не верилось, что свежекупленный сервер будет CyberMax> проигрывать чисто по производительности CPU десктопу. Он не проигрывает, он делает рестор чуть медленнее. > Пока покрутил CPU Affinity и TempCacheLimit. Проверяю. Забыл, что у тебя супер. Проверь на классике, ради интереса. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:06:50 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
> Пока покрутил CPU Affinity и TempCacheLimit. Проверяю. P.S. TempBlockSize ещё попробуй немного увеличить - хотя вряд ли это как-то поможет. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2014, 14:13:51 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Поскольку одна из причин упирания в гигагерцы это однопоточность клиента gbak, хочется помечтать: 1. Чтобы формат fbk был приспособлен как к последовательной обработке (как сейчас, как бы с магнитной ленты), так и к обработке произвольного доступа (по итогам бакапа в хвост файла пишется табличка смещений, по какому смещению в файле fbk лежат данные той или иной таблицы). Тогда для больших табличек можно стартовать отдельные потоки, которые заливают данные своей таблицы. Как бонус - возможность информировать о проценте выполнения (т.к. изначально известно конечный объем каждой таблицы) 2. Думаю п.1. можно распространить и на создание индексов. В обоих случаях предполагается, что сервер будет все это обрабатывать многопоточно (на Super прироста, кажется не будет) Прошу также заметить, что это предложение касается только клиентской программы gbak. Сервер и так уже заточен на многопоточную обработку. Если распространить мечту и на сервер, то: 3. Пакетное создание индексов одной таблицы. Т.е. если в определенной таблице планируется создать более одного индекса, хорошо бы сообщить об этом серверу одной пачкой, чтобы сервер мог создать все эти индексы за один проход исходной таблицы. Разработчикам на заметку. Приятно было бы отчитаться "gbak performance dramatically increased" (тем более сервер тройки во всех случаях True SMP). Только вот... wadmanЭто настолько частая операция? У меня нбакап на ежесуточном, еженедельном и ежемесячном расписании сидит. Полный b/r - по настроению, обычно когда производство стоит.Может найдется энтузиаст, который сделает такой форк гбака :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 09:48:05 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Oliph, трудоемкость этого будет не намного меньше, чем у создания самого сервера, кмк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 10:53:47 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Oliph, 2 - уже есть в InterBase XE3, но для того, чтобы фича приносила пользу, надо чтобы база и temp были на ssd или на raid из ssd. OliphМожет найдется энтузиаст, который сделает такой форк гбака :) тут даже форк делать необязательно. можно с нуля написать что угодно, прямо сейчас, сохраняющее в любой формат и с любой параллельностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 11:33:08 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
можно и по другому переформулировать задачу, выгрузить базу в скрипт умеет много кто, как следствие научиться выделять в скрипте куски, которые можно исполнить параллельно, т.е приходим к форку не gbak-а, а isql-я. Было бы время и желание. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 12:41:12 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Oliphдля больших табличек можно стартовать отдельные потоки, которые заливают данные своей таблицы. И получить туеву хучу random I/O в процессе, а так же фрагментированные таблицы в результате. Ню-ню... Может, экстенты это и смогут поправить, но я бы не был так оптимистичен... Как уже сказал kdv, каждый может написать свою собственную утилиту экспорта/импорта (которой, собственно, и является gbak) чтобы проверить свои идеи на практике. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 14:46:38 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
А идея в многопоточном бэкапе или ресторе ? Многопоточный бэкап, кмк, не имеет будущего, ибо придется открыть отдельные транзакции на каждый поток, в итоге получим рассогласованные данные. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 15:08:14 |
|
||
|
Производительность gbak
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovИ получить туеву хучу random I/O в процессе, а так же фрагментированные таблицы в результате.ssd (или рам диск на время рестора с последующией заливкой результата на САС рэйд). Опять таки либо решать в железе которому пох рэндомной дисковый ИО либо кэшированием. Райтбэк кэш на правильном контроллере зело облегчит жизнь дискам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2014, 15:18:27 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=38522741&tid=1563979]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
744ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 239ms |
| total: | 1086ms |

| 0 / 0 |
