Случайное чтение и RAID 10 на MegaRAID 320-2x - тормозит

Конфигурирование, планирование RAID систем, возможности, технологии, теория. Qlogic, LSI Logic, Adaptec ...

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

GrayMagellan
Power member
Сообщения: 44
Зарегистрирован: 12 мар 2004, 14:56
Откуда: Moscow

Сообщение GrayMagellan » 21 ноя 2005, 18:27

Значит, если я вас правильно понял, при Stripe Size=8 кб и количестве дисков в RAID 0, равном пяти, в максимуме со всех пяти дисков при будет считано 40 кб?

Аватара пользователя
exLH
Сотрудник Тринити
Сотрудник Тринити
Сообщения: 5061
Зарегистрирован: 11 фев 2004, 15:49
Откуда: Москва
Контактная информация:

Сообщение exLH » 21 ноя 2005, 20:16

GrayMagellan писал(а):Если CACHE (MS SQL) нужно считать 8 кб с дисковой подсистемы, я думал, что на каждом диске, входящем в массив из M дисков, будет храниться 8кб/M, т.е. в нашем случае 8/5 кб ~= 1,6 кб. Я прав или нет?
Нет. Именно поэтому Вы и не наблюдаете отличий при использовании Outstanding IOs =1. Фактически, Вы всегда работаете как бы с одним диском => и не будет никакого ускорения (на случайном чтении).
Поскольку в большинстве контроллеров кэш на чтение либо включен всегда, либо включен по умолчанию, то возникает еще одна маленькая ремарка - с кэшем было бы работать крайне неэффективно, если бы он не был бы также разбит на блоки (читай страйпы). Во встроенных контроллерах это обычно покрыто мраком, но я удивлюсь если это у какого-нибудь контроллера не так. Поэтому контроллер должен читать целиком этот блок с дисков, чтобы потом эффективно использовать кэш.
Пример: при использовании RAID10 и stripe-size=8KB Вы хотите прочитать 8KB. Оставим пока вопрос разбиения кэша на блоки в стороне (предположим, что он равен размеру страйпа на диске). Если Вам повезло и блок данных попадает аккурат на один диск, то с диска будет прочитан только один страйп 8КБ. Он попадет в кэш контороллера, а оттуда - уже в Вашу программу. Вариант удачный, но может оказаться, что Ваши 8КБ данных попадают на два страйпа (2КБ на один и 6КБ на другой), тогда будут прочитаны с двух дисков (почти одновременно) два страйпа по 8КБ и помещены в кэш контроллера, а потом нужные 8КБ попадут в Вашу программу.
Теперь предположим, что у Вас stripe-size 16KB и Вам, как и прежде, нужно считать 8КБ. Вероятность того, что эти 8КБ попадут на один диск гораздо больше, поэтому скорее всего контроллер будет обращаться только к одному диску.
А теперь попробуем считать 64КБ. Для этого, нам потребуется счатать данные с 4-5 дисков. Если у Вас сделан RAID10 из 10-ти дисков, то все данные будут прочитаны одновременно и опять мы не получим никакого ускорения по сравнению с одним диском.

А теперь пару слов про то, как могут хранится данные в кэше и почему дефолтный stripe-size лучше. Предположим, что размер блока данных в кэше равен default-stripe size, то если мы будем уменьшать stripe-size, данных будет считываться все равно больше, т.е. если мы сделаем stripe-size 8KB, а блок данных в кэше имеет размер 64КБ, то с дисков будет всегда прочитано 64КБ данных (8 операций чтения, которые на RAID10 из 10-ти дисков могут быть распределены по всем дискам). Т.е. реально Вы ускорения не получите, более того, вполне вероятно снижение производительности.

Надеюсь, в общих чертах понятно, что я хотел сказать...
P.S. В этом сообщении изложено мое мнение, которое основывается на опыте и личных домыслах :)

S&L
Advanced member
Сообщения: 113
Зарегистрирован: 30 ноя 2003, 13:06

Сообщение S&L » 22 ноя 2005, 12:21

Привет!
На случайном чтении-записи все упирается во время поиска диска.
Страйпинг тут ничего не даст, так как он как бы расчитан на последовательные операции ввода-вывода, да и то при работе с БД обычные рекомендации - задавать такой размер stripe unit size, чтобы каждый запрос работал только с одним диском, т.е. все равно никакого страйпинга для отдельного запроса. Делается это для предотвращения конкуренции за диск со стороны одновременно выполняющихся запросов. Советую почитать статью Gaja: Oracle and RAID, в инете есть русский перевод. оракла канешна не кашэ, но подходы можно применять.

Ответить

Вернуться в «Массивы - RAID технологии.»

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

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