Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
Александр Волок (def1983)
В тему:
Disk Performance Hands On, Part 5: RAID 10 vs. RAID 5

Disk Performance Hands On, Part 3: RAID 5 Performance

Disk Performance Hands On, Part 2: RAID 10 Performance

И на моей памяти был пост, в котором очень доступно доказано, что райд0 из 2 дисков по производительности был равен 2 отдельным дискам, на которых располагались файлы одной файловой группы SQL Server.


До кучи: http://sqlblog.com/blogs/linchi_shea/archive/2007/02/07/is-raid-5-really-that-bad.aspx
Производительность RAID0 (как и любого другого) шибко зависит от мозгов контроллера и того, как он соединён и какие диски в массив собраны...
22 апр 09, 14:10    [7098522]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
alkoln, преимущества оптимизатора SQL проявятся именно в случае, когда файловая группа будет распределена на несколько дисков (не менее N*RAID1 для максимальной надежности).
В пределах одного диска возможно только оптимизирование очередей IO (минимальное ускорение).
Случай распределения файловой группы по нескольким дискам - это ж по сути и есть чередование данных, но оно осмыслено сервером и поэтому эффективнее (сервер оптимально составляет очередь, а контроллер тут будет оптимизировать только порядок в имеющейся очереди).
В остальных случаях выигрыш вряд ли возможен.
Так что если тесты для SmartArray на RAID10 будут такие же невменяемые, то кроме создания файловой группы на 4*RAID1 посоветовать в Вашем случае нечего.
22 апр 09, 14:19    [7098598]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
alkoln
vino
2N*RAID0 (со встроенным чередованием и максимальной избыточностью)

Позволю себе поправить vino. Видимо, он имел в виду 2N*RAID10.

точно, спасибо!
22 апр 09, 14:20    [7098610]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
alkoln
Member

Откуда:
Сообщений: 67
vino,

Да вот я тут постепенно прихожу к выводу, что самым интересным вариантом, учитывающим нюансы всех описанных в этой теме подходов, будет разделить файлгруппу на количество файлов, равное количеству ядер процессора (в нашем случае 4), и разложить эти 4 файла по двум 4-дисковым массивам RAID10 - по два файла на массив.
22 апр 09, 14:24    [7098654]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
vino
Так что если тесты для SmartArray на RAID10 будут такие же невменяемые, то кроме создания файловой группы на 4*RAID1 посоветовать в Вашем случае нечего.

Имел в виду сравнение c 8 шпинделями только двух вариантов:
1) одного 8 дискового RAID10 (чередование силами контроллера)
2) четырех двухдисковых RAID1 (т.е. чередование силами MSSQL)
Если сможете протестить - будет очень полезно
22 апр 09, 14:25    [7098658]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
alkoln
vino,
Да вот я тут постепенно прихожу к выводу, что самым интересным вариантом, учитывающим нюансы всех описанных в этой теме подходов, будет разделить файлгруппу на количество файлов, равное количеству ядер процессора (в нашем случае 4), и разложить эти 4 файла по двум 4-дисковым массивам RAID10 - по два файла на массив.

Вариант интересный! Хотя прямой зависимости между ядрами и портами IO нет, но теоретически ускорение за счет параллелизма возможно.
22 апр 09, 14:28    [7098686]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
alkoln
vino,
Да вот я тут постепенно прихожу к выводу, что самым интересным вариантом, учитывающим нюансы всех описанных в этой теме подходов, будет разделить файлгруппу на количество файлов, равное количеству ядер процессора (в нашем случае 4), и разложить эти 4 файла по двум 4-дисковым массивам RAID10 - по два файла на массив.

Еще напомню, что лог тоже куда-то положить надо
22 апр 09, 14:30    [7098708]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
Так что, если размер лога позволяет, его на отдельный диск, а файл-группу разбить на 3 оставшихся диска.
22 апр 09, 14:31    [7098723]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
WhatIsIt
Member

Откуда:
Сообщений: 21
Это что ж получается? Использовать RAID имеет смысл только для поддержания отказоустойчивости и никак не производительности? Вот не верится мне никак, что RAID0 будет записывать дольше чем отдельный диск.
Да и какой в таком случае смысл использовать RAID10? Уж лучше сделать 2хRAID1 и положить на каждый по файлу.
22 апр 09, 14:33    [7098748]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
alkoln
Member

Откуда:
Сообщений: 67
vino
Хотя прямой зависимости между ядрами и портами IO нет


, но есть прямая зависимость между внутренними (в рамках движка) очередями запросов к каждому файлу данных (который всегда обрабатывается одним потоком ввода-вывода) и количеством файлов данных :) Общей рекоммендацией (подтверждаемой Microsoft), как известно, является количество файлов в каждой группе, равное количеству ядер процессора. Этот факт, думаю, всем хорошо известен.
22 апр 09, 14:36    [7098774]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
alkoln
Member

Откуда:
Сообщений: 67
WhatIsIt,
WhatIsIt
Уж лучше сделать 2хRAID1 и положить на каждый по файлу.


Ну да, можно и так. Но это одна из крайностей между двумя подходами с сомнительным преимуществом друг перед другом. А я попытался совместить оба подхода приблизительно посередине :) Т.е. и параллелизм на уровне дисков есть, и параллелизм на уровне SQL Server'а тоже.
22 апр 09, 14:38    [7098794]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
alkoln
vino
Хотя прямой зависимости между ядрами и портами IO нет


, но есть прямая зависимость между внутренними (в рамках движка) очередями запросов к каждому файлу данных (который всегда обрабатывается одним потоком ввода-вывода) и количеством файлов данных :) Общей рекоммендацией (подтверждаемой Microsoft), как известно, является количество файлов в каждой группе, равное количеству ядер процессора. Этот факт, думаю, всем хорошо известен.


К счастью, это не так. Файл базы данных может открываться одновременно несколькими потоками.
Да и рекомендация не общая, а относительно файлов данных базы tempdb. Однако, не стоит провоцировать в рамках одого запроса конкуренцию одного и того же ресурса за один процессор, это действительно может снизить производительность. Поэтому рекомендации делать число файлов данных равным числу процессоров есть смысл придерживаться.
22 апр 09, 14:58    [7098996]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
alkoln
WhatIsIt,
WhatIsIt
Уж лучше сделать 2хRAID1 и положить на каждый по файлу.


Ну да, можно и так. Но это одна из крайностей между двумя подходами с сомнительным преимуществом друг перед другом. А я попытался совместить оба подхода приблизительно посередине :) Т.е. и параллелизм на уровне дисков есть, и параллелизм на уровне SQL Server'а тоже.


То, что изображено на графике, как раз и есть иллюстрация сравнения выбраного Вами подхода с альтернативными вариантами. Т.е. я не делал массив RAID10 из 12 дисков, там было 3 массива RAID10 по 4 диска... иначе, разница была бы ещё хуже ;)

Сообщение было отредактировано: 22 апр 09, 15:02
22 апр 09, 15:01    [7099025]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
WhatIsIt
Member

Откуда:
Сообщений: 21
Александр Гладченко
alkoln
WhatIsIt,
WhatIsIt
Уж лучше сделать 2хRAID1 и положить на каждый по файлу.


Ну да, можно и так. Но это одна из крайностей между двумя подходами с сомнительным преимуществом друг перед другом. А я попытался совместить оба подхода приблизительно посередине :) Т.е. и параллелизм на уровне дисков есть, и параллелизм на уровне SQL Server'а тоже.


То, что изображено на графике, как раз и есть иллюстрация сравнения выбраного Вами подхода с альтернативными вариантами. Т.е. я не делал массив RAID10 из 12 дисков, там было 3 массива RAID10 по 4 диска... иначе, разница была бы ещё хуже ;)


В итоге приходим к деструктивному выводу, что чередование применительно к MS SQL штука совершенно излишняя? Не верится как-то да почему-то..
22 апр 09, 15:11    [7099143]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
alkoln
Member

Откуда:
Сообщений: 67
Александр Гладченко

То, что изображено на графике, как раз и есть иллюстрация сравнения выбраного Вами подхода с альтернативными вариантами. Т.е. я не делал массив RAID10 из 12 дисков, там было 3 массива RAID10 по 4 диска... иначе, разница была бы ещё хуже ;)


Ну Вы учтите, коллега, что (по Вашему собственному признанию) при тесте использовался SQLIO, а, значит, об оптимизации движка SQL в плане балансирования нагрузки в данном случае говорить не приходится. Или я опять неправильно Вас понял?
22 апр 09, 15:17    [7099189]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
Александр Гладченко
То, что изображено на графике, как раз и есть иллюстрация сравнения выбраного Вами подхода с альтернативными вариантами. Т.е. я не делал массив RAID10 из 12 дисков, там было 3 массива RAID10 по 4 диска... иначе, разница была бы ещё хуже ;)

Так-так, интересно, вариант с одним восьми- или двенадцатидисковым RAID10 не тестировался?
Как раз, как я понимаю, с увеличением дисков при чередовании дает существенно лучшую производительность (чем больше шпинделей, тем ближе к линейному росту, в идеале можно представить случай, когда на каждый сегмент чередования приходился бы свой шпиндель).

Александр Гладченко
рекомендации делать число файлов данных равным числу процессоров
Стоит уточнить - речь именно о количестве всех файлов рабочей БД "не большим числу ядер"? Как минимум в любой БД лог + 1 файл mdf
22 апр 09, 15:30    [7099306]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
WhatIsIt
Александр Гладченко
alkoln
WhatIsIt,
WhatIsIt
Уж лучше сделать 2хRAID1 и положить на каждый по файлу.


Ну да, можно и так. Но это одна из крайностей между двумя подходами с сомнительным преимуществом друг перед другом. А я попытался совместить оба подхода приблизительно посередине :) Т.е. и параллелизм на уровне дисков есть, и параллелизм на уровне SQL Server'а тоже.


То, что изображено на графике, как раз и есть иллюстрация сравнения выбраного Вами подхода с альтернативными вариантами. Т.е. я не делал массив RAID10 из 12 дисков, там было 3 массива RAID10 по 4 диска... иначе, разница была бы ещё хуже ;)


В итоге приходим к деструктивному выводу, что чередование применительно к MS SQL штука совершенно излишняя? Не верится как-то да почему-то..

Логически ясно, что чередование N дисков силами контроллера, несомненно, уступает оптимизатору MSSQL, но только в случае, когда вычислительных ресурсов CPU достаточно и файловая группа распределена по тем же N дискам.

Если бы речь шла не о MSSQL, обладающем собственным оптимизатором, то тут по надежности и скорости, IMHO, очевидно:
1) для интенсивного чтения/записи больших файлов RAID0+1
2) для эффективного хранения/выборки большого объема файлов RAID6 или как минимум RAID5
и в обоих случаях обязателен HotSpare
Если довериться опыту Александра Гладченко, то реализация чередования производителями RAID10 слишком некачественная. Но, возможно, она будет исправляться
22 апр 09, 16:06    [7099607]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
alkoln, хотя к теме это не относится, кстати, для хранения больших массивов в SmartArray есть достаточно эффективный RAID6 (ADG). Единственное, я не понял, сколько spare-дисков поддерживается. Не в курсе?
22 апр 09, 16:10    [7099638]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
alkoln
Member

Откуда:
Сообщений: 67
vino
alkoln, хотя к теме это не относится, кстати, для хранения больших массивов в SmartArray есть достаточно эффективный RAID6 (ADG). Единственное, я не понял, сколько spare-дисков поддерживается. Не в курсе?


насколько я помню, на нашем сервере в утилите HP Array Configuration Utility при создании массивов эта опция (RAID6) вообще отсутствует. видимо, нашим контроллером она не поддерживается, или прошивка новая нужна, не знаю... в общем, ничего по этому поводу ответить не могу :(
22 апр 09, 16:36    [7099908]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
WhatIsIt

В итоге приходим к деструктивному выводу, что чередование применительно к MS SQL штука совершенно излишняя? Не верится как-то да почему-то..


К неправильному выводу Вы приходите. Из моих сообщений этого не следует. Я хотел подчеркнуть, что никакого выигрыша от RAID10 по отношению к RAID5 получить не удастся. То, что требования ACID не вынуждают использовать избыточность для файлов данных не значит, что её не нужно использовать.
22 апр 09, 22:30    [7101641]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
alkoln

Ну Вы учтите, коллега, что (по Вашему собственному признанию) при тесте использовался SQLIO, а, значит, об оптимизации движка SQL в плане балансирования нагрузки в данном случае говорить не приходится. Или я опять неправильно Вас понял?


SQLIO сделана подобной по поведению SQL Server. Используются те же подходы, методы и интерфейсы. Но там, разумеется, нет оптимизатора и распределение памяти там не выполняется интеллектуальными механизмами ядра. Однако, в достаточно близком приближении поведение этой утилиты можно сравнивать с СУБД.
22 апр 09, 22:33    [7101647]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
vino

Так-так, интересно, вариант с одним восьми- или двенадцатидисковым RAID10 не тестировался?
Как раз, как я понимаю, с увеличением дисков при чередовании дает существенно лучшую производительность (чем больше шпинделей, тем ближе к линейному росту, в идеале можно представить случай, когда на каждый сегмент чередования приходился бы свой шпиндель).

Я уже говорил тут, что подобные тесты меня интересовали на начальных этапах разработки методики. Уже лет пять я это не воспроизвожу в силу бессмысленности. Увы, ни о каком линейном росте говорить не приходится. Проверьте...

vino

Стоит уточнить - речь именно о количестве всех файлов рабочей БД "не большим числу ядер"? Как минимум в любой БД лог + 1 файл mdf


Нет, это не так. Я говорю о файлах одной файловой группы. В базе их может быть несколько и каждая может содержать столько файлов - сколько процессоров в системе. Тут важно то, что один запрос не будет эффективно параллелиться на большее числа процессоров потоков.
22 апр 09, 22:38    [7101660]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
Александр Гладченко
Member

Откуда:
Сообщений: 10803
Блог
vino

Если бы речь шла не о MSSQL, обладающем собственным оптимизатором, то тут по надежности и скорости, IMHO, очевидно:
1) для интенсивного чтения/записи больших файлов RAID0+1
2) для эффективного хранения/выборки большого объема файлов RAID6 или как минимум RAID5
и в обоих случаях обязателен HotSpare
Если довериться опыту Александра Гладченко, то реализация чередования производителями RAID10 слишком некачественная. Но, возможно, она будет исправляться


Увы, всё совсем не так :(
Для интенсивного чтения и записи RAID0+1, RAID10, RAID5, RAID6 совсем не подходят. Если решили мне довериться, то не рассматривайте эти массивы для файлов данных вообще, если не приходится иметь дело с тысячами дисков, как в TPC.
Ни в коем случае не используйте для эффективной выборки RAID5 и, упаси боже, это уродство - RAID6. Эти массивы сделны для бедных файловых помоек... ни для чего путного они не годяться. Эдак вы и до SATA дисков опуститесь
Дело не в медленном RAID10, а в принципиальных его проблемах под нагрузкой баз данных. Поймите, это не то же самое, что обычные файлы, для которых многое из рекламных слоганов как раз и справедливо. Когда занимаетесь сайзингом файлов SQL Server, забудьте всё, чему учат в книжках. Тут нужно вооружаться эталонным тестом и всё перепроверять. Даже у одного вендора сегодня могут быть совсем другие результаты, чем вчера...

Сообщение было отредактировано: 23 апр 09, 12:31
22 апр 09, 22:48    [7101684]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
Александр Гладченко
vino

Если бы речь шла не о MSSQL, обладающем собственным оптимизатором, то тут по надежности и скорости, IMHO, очевидно:
1) для интенсивного чтения/записи больших файлов RAID0+1
2) для эффективного хранения/выборки большого объема файлов RAID6 или как минимум RAID5
и в обоих случаях обязателен HotSpare
Если довериться опыту Александра Гладченко, то реализация чередования производителями RAID10 слишком некачественная. Но, возможно, она будет исправляться


Увы, всё совсем не так :(
Для интенсивного чтения и записи RAID0+1, RAID10, RAID5, RAID6 совсем не подходят. Если решили мне довериться, то не рассматривайте эти массивы для файлов данных вообще, если не приходится иметь дело с тысячами дисков, как в TPC.
Ни в коем случае не используйте для эффективной выборки RAID6 и, упаси боже, это уродство - RAID6. Эти массивы сделны для бедных файловых помоек... ни для чего путного они не годяться. Эдак вы и до SATA дисков опуститесь
Дело не в медленном RAID10, а в принципиальных его проблемах под нагрузкой баз данных.
Александр Гладченко

Как раз речь о медиа-хранилищах - там как раз важна стоимость байта. Да и RAID0+1 я указал как наиболее точное прочтение технологии - прежде всего это должна быть скорость за счет чередования, плюс зеркалирование для надежности.
Да и RAID6 не стоит так унижать (все-таки отказоустойчивость RAID6 в два диска против одного RAID5):
1) вычислительные мощности растут и дешевеют, так что возможно появление адекватных контроллеров
2) актуально уменьшение количества железа на "файлопомойках" (активно работающих шпинделей)
Поймите, это не то же самое, что обычные файлы, для которых многое из рекламных слоганов как раз и справедливо. Когда занимаетесь сайзингом файлов SQL Server, забудьте всё, чему учат в книжках. Тут нужно вооружаться эталонным тестом и всё перепроверять. Даже у одного вендора сегодня могут быть совсем другие результаты, чем вчера...

Спасибо! В целом я понял, что зеркалирование для БД с использованием распределения файловых групп в MSSQL - достаточная RAID-технология, так как фактически сам MSSQL - низкоуровневая система и лучше справляется с распределением IO, чем любой контроллер RAID.
Ну так оно и понятно, по аналогии, ведь сегодня HDD - тоже устройства со встроенной БД и кэшем, а когда-то все программы сами писали в физически выбираемый на блинах сектор
23 апр 09, 12:42    [7103862]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать дисковый расклад  [new]
vino
Member

Откуда:
Сообщений: 1191
Извините! копипаст подвел. Это, конечно, мой ответ:
Александр Гладченко

Как раз речь о медиа-хранилищах - там как раз важна стоимость байта. Да и RAID0+1 я указал как наиболее точное прочтение технологии - прежде всего это должна быть скорость за счет чередования, плюс зеркалирование для надежности.
Да и RAID6 не стоит так унижать (все-таки отказоустойчивость RAID6 в два диска против одного RAID5):
1) вычислительные мощности растут и дешевеют, так что возможно появление адекватных контроллеров
2) актуально уменьшение количества железа на "файлопомойках" (активно работающих шпинделей)
23 апр 09, 12:45    [7103888]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить