Выравнивание раздела для MS SQL на RAID дисках

Вопросы программирования БД, их оптимизации, резервирования и восстановления данных.

Модераторы: Trinity admin`s, Free-lance moderator`s

pyramid
member
Сообщения: 25
Зарегистрирован: 13 июл 2004, 12:58
Откуда: Караганда

Выравнивание раздела для MS SQL на RAID дисках

Сообщение pyramid » 08 мар 2009, 16:54

Дорогие друзья!
Недавно наткнулся на статью Вячеслава Гилёва Влияние HDD на быстродействие 1С:Предприятие 8.1. Кратко суть:
Размер блока и размер кластера желательно устанавливать одинаковыми, например, для баз данных SQL Server очень часто слышны рекомендации выбирать и там и там 64Кб. Однако, операционная система создает самый первый кластер (блок начальной загрузки MBR) размером в 63Кб. Эта особенность NTFS означает, что каждый последующий кластер будет сдвинут на 1Кб на предыдущий блок. Т.е. кластеры окажутся смещёнными относительно границ блоков массива. Такая ситуация приводит к тому, что одна операция чтения или записи кластера будет затрагивать два сектора и будет приводить к удвоению числа запросов ввода-вывода.
Действительно ли на современных RAID массивах подобная особенность ОС приводит к снижению быстродействия, или это теоретические выкладки, которые нынче устарели?
Кто-нибудь из Вас выравнивает кластер?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение gs » 08 мар 2009, 17:22

Теоретически эффект имеет место быть, но при размерах страйпа в 256к речь идет о единицах процентов. Но и вреда, однако,тоже никакого.

pyramid
member
Сообщения: 25
Зарегистрирован: 13 июл 2004, 12:58
Откуда: Караганда

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение pyramid » 08 мар 2009, 21:02

Отсюда вывод - при создании рейда ставим страйп 256К - и не морочим себе голову?

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение gs » 09 мар 2009, 00:02

Ну никто не мешает еще и отровнять, хотя смысл в этом есть далеко не всегда.
Страйп 256к - это для адаптека. Если для контроллера предпочтителен страйп например 64к, то тут уже стоит подумать.

Аватара пользователя
Stranger03
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 12979
Зарегистрирован: 14 ноя 2003, 16:25
Откуда: СПб, Екатеринбург
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение Stranger03 » 09 мар 2009, 09:07

"pyramid"
Ну вам никто не мешает проверить. Возьмите иометр, да потестируйте.

hitower
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 357
Зарегистрирован: 23 дек 2007, 15:35
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение hitower » 12 мар 2009, 11:37

Страйп ставьте максимально возможный (в разумных пределах, конечно), тогда эффект от невыровненных блоков снижается. При страйпе 64к и размере блока базы 8к операции с 2 из 8 блоков (25%) будут требовать на физическом уровне обращения к 2 дискам, а не к одному. Если страйп 256к - соответственно только 2 из 32 (6%).

Strannik
Advanced member
Сообщения: 436
Зарегистрирован: 19 июл 2007, 15:39
Откуда: г. Тосно

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение Strannik » 07 апр 2009, 16:18

Ну этоже вопрос про размер кластера, насколько я помню обсуждение подобных тем сводилось к тому , что на железных контроллерах обмен идет страйпами и размер кластера NTFS вообще не имеет значения.
И второе. Там говорится про сдвиг из-за MBR , но MBR располагается только на первом загрузочном разделе, на других разделах MBR нет, значит эффект может быть только для первого загрузочного раздела, который чаще всего является ещё и системным. Вы , что боевые базы на системном разделе держите?
Поэтому особого смысла в данных рекомендациях я не вижу.
Поправьте меня , если я не прав.

hitower
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 357
Зарегистрирован: 23 дек 2007, 15:35
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение hitower » 07 апр 2009, 16:26

Strannik писал(а):Ну этоже вопрос про размер кластера, насколько я помню обсуждение подобных тем сводилось к тому , что на железных контроллерах обмен идет страйпами и размер кластера NTFS вообще не имеет значения.
И второе. Там говорится про сдвиг из-за MBR , но MBR располагается только на первом загрузочном разделе, на других разделах MBR нет, значит эффект может быть только для первого загрузочного раздела, который чаще всего является ещё и системным. Вы , что боевые базы на системном разделе держите?
Поэтому особого смысла в данных рекомендациях я не вижу.
Поправьте меня , если я не прав.
Нет смысла обмениваться контроллеру и диску страйпами, разве что специально, чтобы производительность убить :mrgreen:

Размер кластера НТФС по идее должен быть не меньше размера логического блока базы данных, иначе эффект от выравнивания раздела на границу страйпа пропадет. Ну и само собой размер страйпа должен делиться без остатка на размер кластера ФС и блока базы данных.

Про MBR - а что, остальные разделы каким-то магическим образом выравниваются на границы страйпа?

Strannik
Advanced member
Сообщения: 436
Зарегистрирован: 19 июл 2007, 15:39
Откуда: г. Тосно

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение Strannik » 07 апр 2009, 16:44

По поводу МБР не совсем понял.
Допустим есть какой-то массив , он разбит на два ПРИМАРИ раздела, первый системный с МБР , второй под БД.
На первом разделе мы действительно получим сдвиг т.к. там есть МБР и первый кластер получится не 64 кб , а 63 Кб.
На втором же разделе МБР нет соответственно все кластеры одинаковы и равны 64 кб , сдвига нет.
Разве не так?

hitower
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 357
Зарегистрирован: 23 дек 2007, 15:35
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение hitower » 07 апр 2009, 17:31

Strannik писал(а):По поводу МБР не совсем понял.
Допустим есть какой-то массив , он разбит на два ПРИМАРИ раздела, первый системный с МБР , второй под БД.
На первом разделе мы действительно получим сдвиг т.к. там есть МБР и первый кластер получится не 64 кб , а 63 Кб.
На втором же разделе МБР нет соответственно все кластеры одинаковы и равны 64 кб , сдвига нет.
Разве не так?
Почему Вы считаете, что раздел начнется с границы страйпа?

Strannik
Advanced member
Сообщения: 436
Зарегистрирован: 19 июл 2007, 15:39
Откуда: г. Тосно

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение Strannik » 07 апр 2009, 17:45

Да, наверное это не обязательно, т.е. раздел может начаться и не с начала страйпа.

pyramid
member
Сообщения: 25
Зарегистрирован: 13 июл 2004, 12:58
Откуда: Караганда

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение pyramid » 15 апр 2009, 21:17

Потестировал RAID5 из 9*15K SAS на Intel S5000PSLROMBR (~ LSI MegaRAID SAS 8308) при помощи SQLIO.
Методика - целиком из статьи, за исключением того, что оставлены только случайные чтение-запись.
Результаты представлены в виде таблицы:
Результаты в таблице
Результаты в таблице
Судя по результатам, оптимальный размер страйпа для RAID5 на этом контроллере соответствует значению по умолчанию, и равен 64К (об этом уже неоднократно говорилось на форуме).
Эффект от выравнивания имеется, и особенно заметен на блоке 64К.
Вложения
sqlio-test.txt
Результаты в файле
(840 байт) 1523 скачивания

Аватара пользователя
gs
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 16650
Зарегистрирован: 23 авг 2002, 17:34
Откуда: Москва
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение gs » 16 апр 2009, 13:12

Нуу... да... Вы долбите 64к блоками по 64к страйпам - и естественно постоянно нарываетесь на оверхед.
Адаптек поступил мудрее, влепив по дефолту 256к.

Я правда не понял, зачем Вы гоняете мегабайтные блоки, забыв про 8к.

pyramid
member
Сообщения: 25
Зарегистрирован: 13 июл 2004, 12:58
Откуда: Караганда

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение pyramid » 16 апр 2009, 21:13

Страйпы 64К, 256К, 1М, блоки 8К, 64К, 128К, 256К.

ostrov
Power member
Сообщения: 37
Зарегистрирован: 31 мар 2005, 17:26
Откуда: Мытищи Московской области
Контактная информация:

Re: Выравнивание раздела для MS SQL на RAID дисках

Сообщение ostrov » 24 июл 2009, 09:44

Сервер HP Proliant DL380G06 со встроенным контроллером P410iwBBWC(512Mb/RAID5/5+0/1+0/1/0) и 8 дисков.
Целевое назначение сервера - сервер БД под SQL.
Создается 10 RAID.

В FAQ-е и в данной теме GS в частности писал, что "...при размерах страйпа в 256к речь идет о единицах процентов (проблема сдвига 63/64 - авт.). Страйп 256к - это для адаптека. Если для контроллера предпочтителен страйп например 64к, то тут уже стоит подумать."

и здесь же HITOWER "...Страйп ставьте максимально возможный (в разумных пределах, конечно), тогда эффект от невыровненных блоков снижается. При страйпе 64к и размере блока базы 8к операции с 2 из 8 блоков (25%) будут требовать на физическом уровне обращения к 2 дискам, а не к одному. Если страйп 256к - соответственно только 2 из 32 (6%)...."

1. Что значит "если для контроллера предпочтителен" и "максимально возможный (в разумных пределах, конечно)"? Т.е. если контроллер поддерживает максимально страйп 256к его и надо выбирать для оптимальной производительности или все-таки нужно эмпирически выбирать размер после тестирования? По умолчанию размер страйпа на контроллере 128к

2. Можно на "лету" менять размер страйпа? Сервер пока в тестовом режиме, но лишний раз переустанавливать, даже и из образа, OS-SQL не хочется, или, по крайней мере, знать к чему готовиться :-).

Ответить

Вернуться в «Серверы - ПО, Базы Данных и их использование»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя