Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите выбрать правильный диск для MSSQL  [new]
Label
Member

Откуда:
Сообщений: 45
Ситуация, имеются диски с двумя разными характеристиками (получено программой CrystalDiskMark):

Диск 1:
Sequential Read:          71.119 MB/s
Sequential Write: 69.821 MB/s
Random Read 512KB: 29.591 MB/s
Random Write 512KB: 28.264 MB/s
Random Read 4KB (QD=1): 0.409 MB/s [ 99.7 IOPS]
Random Write 4KB (QD=1): 0.964 MB/s [235.5 IOPS]
Random Read 4KB (QD=32): 0.622 MB/s [151.9 IOPS]
Random Write 4KB (QD=32): 1.000 MB/s [244.2 IOPS]

Диск 2:
Sequential Read:          131.913 MB/s
Sequential Write: 62.887 MB/s
Random Read 512KB: 46.866 MB/s
Random Write 512KB: 36.548 MB/s
Random Read 4KB (QD=1): 0.728 MB/s [177.8 IOPS]
Random Write 4KB (QD=1): 0.508 MB/s [124.1 IOPS]
Random Read 4KB (QD=32): 3.360 MB/s [820.3 IOPS]
Random Write 4KB (QD=32): 1.272 MB/s [310.5 IOPS]

Вроде бы выбор очевиден в пользу Диска 2, но смущает значение Random Write 4KB (QD=1), которое в два раза меньше, чем у первого диска.

Что это за характеристика, что такое "глубина очереди" (QD) насколько вообще Random Write 4KB (QD=1) важна для MSSQL (на диске будут базы данных)?
21 ноя 13, 11:23    [15166891]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 35394
Блог
Label,

все зависит от типичной нагрузки на БД и роли этого диска (планируется 1 штука что-ли?)
21 ноя 13, 11:27    [15166921]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
SQL Server читает блоками по 8К, поэтому показатели с другим размером блока не очень релевантны. Будут достаточно близки, безусловно, но лучше ориентироваться на подходящие.

Random read / write - это паттерн использования дисков для файлов данных БД (у логов обычно sequential write). Проще говоря, головки должны летать туда-сюда как можно быстрее, в идеале - SSD.
21 ноя 13, 11:29    [15166943]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Label
Member

Откуда:
Сообщений: 45
Критик, да, один диск. Роль БД - хранилища для CMS интернет-сайтов.
Я просто не понимаю, что такое эти операции чтения/записи по 4 кб с QD=1 и QD=32 в Win и MSSQL и в каких случаях они важны, а в каких не очень...
21 ноя 13, 11:32    [15166969]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Ennor Tiegael
Member

Откуда:
Сообщений: 3422
Label
да, один диск. Роль БД - хранилища для CMS интернет-сайтов.
Тогда все равно. Но вообще, сам тест, судя по всему - лажа полная, потому что не может Random Write быть быстрее, чем Random Read, ну или он совсем не random тогда получается.

Второй диск более сбалансированный, ну или в нем нет какого-то инженерного косяка, который дал такие кривые результаты на первом.
21 ноя 13, 11:36    [15167008]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Label
Member

Откуда:
Сообщений: 45
Ennor Tiegael, т.е. я правильно понял, что надо больше ориентироваться на пары Random Read/Write по 4KB, а не на 512KB? Тогда остался вопрос по QD, что это, поскольку один диск пишет в два раза быстрее при QD=1, а второй чуть выигрывает при QD=32.
21 ноя 13, 11:37    [15167019]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Ennor Tiegael
Member

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

http://en.wikipedia.org/wiki/IOPS
Some HDDs will improve in performance as the number of outstanding IO's (i.e. queue depth) increases. This is usually the result of more advanced controller logic on the drive performing command queuing and reordering commonly called either Tagged Command Queuing (TCQ) or Native Command Queuing (NCQ).
21 ноя 13, 11:43    [15167077]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Label
Member

Откуда:
Сообщений: 45
Ennor Tiegael, спасибо.
21 ноя 13, 12:09    [15167279]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
DangleFly
Member

Откуда: Минск
Сообщений: 28
Ennor Tiegael
SQL Server читает блоками по 8К, поэтому показатели с другим размером блока не очень релевантны. Будут достаточно близки, безусловно, но лучше ориентироваться на подходящие.

Random read / write - это паттерн использования дисков для файлов данных БД (у логов обычно sequential write). Проще говоря, головки должны летать туда-сюда как можно быстрее, в идеале - SSD.


А может размер блока ввода-вывода 64Кб (равно экстенту), а не 8 Кб?
21 ноя 13, 14:17    [15168283]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
Ennor Tiegael
Member

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

А может, да. А может, и нет.
21 ноя 13, 14:27    [15168395]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
Ты можешь диски потепститровать так? Так потестируй SQLIOSim тебе в помощь.

База состоит из файла(ов) данных и файла(ов) лога. Данные пишутся блоками по 8kb минимум и по 256kb максимум, пишутся они случайно. Лог пишется последовательно блоками, размером в физический блок диска, обычно это 512b. Лог пишется "по кругу": начало файла -> ... -> конец файла -> начало файла -> ... ; также "по кругу" он чищается. Однако, если "указатель" где-то в середине и лог заполнился, то файл будет увеличен и дальше будет писаться с начала свежевыделенного места. Обычно, на лог нагрузка меньше, чем на данные. В общих чертах так.
21 ноя 13, 15:00    [15168734]     Ответить | Цитировать Сообщить модератору
 Re: Помогите выбрать правильный диск для MSSQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31969
Ennor Tiegael
SQL Server читает блоками по 8К, поэтому показатели с другим размером блока не очень релевантны. Будут достаточно близки, безусловно, но лучше ориентироваться на подходящие.

Random read / write - это паттерн использования дисков для файлов данных БД (у логов обычно sequential write).
SQL Server обычно читает файлы данных блоками по 64К, случайно или последовательно - зависит от конкретной ситуации (модель данных, запросы, типы операций, распределение по файлам и т.п.) и от редакции сервера.

Для бакапов блок равен 512К

Для тестирования дисков разумно использовать имитатор сиквела (SQLIO), а не обычную утилиту для тестирования дисков, и выбирать смешанную рандом- и последовательную нагрузку по 64К для файлов данных и последовательную запись 512 байт для файлов лога.

Статистику для конкретной системы можно посмотреть, чтоб не гадать.
21 ноя 13, 21:34    [15170803]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить