Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.
2004 г.

Эффективность встроенных RAID

Сергей Антончук, "Комиздат"

Статья посвящена вопросу производительности дисковой подсистемы при использовании технологии Matrix Storage.

Напомним, что технология Matrix Storage реализована в новых южных мостах ICH6R и ключевой ее возможностью (если не говорить о реализации стандартных RAID-0 и RAID-1) является реализация такой схемы работы, при которой на двух дисках создается два массива уровней RAID-0 и RAID-1 (matrix RAID-0 и matrix RAID-1).

Тестирование серьезной технологии, конечно же, требует серьезного инструмента. Поэтому данное исследование проводилось в деловом приложении, использующем трехуровневую архитектуру. А точнее — в "1С:Предприятие 8.0".

"1С:Предприятие" работало в трехуровневой архитектуре "клиент — сервер приложения — SQL-сервер" на одном ПК. При этом основную нагрузку на дисковую подсистему ПК давал SQL-сервер.

Тестирование именно в этой архитектуре было выбрано потому, что производительность RAID-0 вообще и Matrix RAID-0 в частности серьезно зависит от параметра strip size.

Очевидно, что быстродействие системы в целом наибольшим будет тогда, когда данные от приложения или к нему будут поступать от дисковой подсистемы порциями, равными размеру strip size.

Но в компьютере всегда работает множество приложений с разной спецификой, поэтому размер strip size для RAID-0 в системах общего назначения — это всегда значение компромиссное. Однако если у нас есть приложение, которое должно работать быстро — пусть даже в ущерб всем остальным, то RAID-0 можно подстроить именно под него.

Вообще, такую настройку легче всего (и наиболее правильно) делать для SQL-серверов. Легче — потому что кратность данных, с которой SQL сервер взаимодействует с дисковой подсистемой, всегда известна. Это размер страницы (page size).

Для MS SQL сервера размер страницы составляет 8 Кб. Индексы записываются восьмистраничными блоками по 64 Кб.

Для Matrix RAID-0 значение strip size по умолчанию составляет 128 Кб. Так что, если планируется работа ПК, в основном, в качестве SQL-сервера (как в нашем случае), необходимость оптимизации налицо. Вот этим и займемся.

Чтобы все было по-настоящему, на двух SATA-дисках Maxtor MaXLine III 250 Гб были построены два раздела:

  • Matrix RAID-1 — для системы и бэкапов;
  • Matrix RAID-0 — для свопа, временных файлов и рабочей SQL-базы.

Matrix RAID-0 сначала создавался по умолчанию, затем размер strip size задавался в 64 Кб, 32 Кб, 16 Кб и 8 Кб.

Вот что получилось в результате замеров производительности серверного трехуровневого варианта работы "1С:Предприятие 8.0" для одного клиента:

Полученные результаты достаточно красноречивы. При неудачном для данного случая значении strip size, которое составляет 128 Кб и было создано по умолчанию, сервер работает даже медленнее, чем в случае размещения СУБД на Matrix RAID-1. Зато в случае с "правильным" значением strip size в 8 Кб имеем 31% роста производительности в "проведении по партиям" по сравнению с Matrix RAID-1.

Вообще, все варианты со значением strip size от 64 Кб до 8 Кб показали прирост скорости, а наиболее оптимальным оказался вариант 16 Кб. Хотя для систем общего назначения, в которых SQL-сервер является одним из главных приложений, более предпочтительным может оказаться вариант 32 Кб.

Дело в том, что уменьшение значения strip size замедляет работу дисковой подсистемы в том случае, когда обмен данными идет очень большими блоками. Например, если вы занимаетесь видеомонтажом, то при выборе strip size лучше руководствоваться правилом "чем больше, тем лучше".

Почему нужно возиться с SQL

Почему мы выбрали для тестирования SQL вариант работы "1С:Предприятия 8.0"? Ведь система может работать, например, и в файл-серверном варианте. Дело в том, что "1С:Предприятие" версии 8 с выделенным SQL-сервером работает гораздо быстрее, чем в файловом варианте. При уже упоминавшемся первом обзоре LGA775 (К+П № Х, стр. ХХ) время выполнения "проведения по партиям" и запроса в отчете "взаиморасчеты с комитентами" составили 1095 с и 119 с соответственно. Это в файловом варианте. Сравните с показателями 36 с и 32 с — наилучшими в SQL-системе. Ради тридцатикратного прироста производительности можно и повозиться.

P. S.

Хотя наш интерес в этом тестировании был искренним и чисто познавательным, подсказки о том, какой именно режим будет оптимальным, все же были. Хотя их поиском мы занялись позже. При создании раздела RAID-0 внизу экрана высвечивается такая информация:

Что называется, читайте инструкцию, она рулез. Кроме того, запрос в Google "strip size производительность" уже на первом экране среди прочего мусора выдает следующую ссылку:

в руководствах по Tuning Oracle говорят о striping factor.
По их руководствам stripe size =striping factor*Block size(Cylinder).
А типичный striping factor — 32 блока.
Следовательно, если принять Block size= 512|1024 bytes (зависит от модели и производителя): stripe size =32 *512|1024 =16|32 Kb.

Попадание 100%. Именно эти размеры и оказались оптимальными. Oracle и MSSQL — это, конечно, разные СУБД, но физика процесса одинакова везде.

Matrix storage против внешнего Serial ATA RAID-контроллера

Мы намеренно не делали сравнение внешнего и внутреннего RAID-контроллеров основной темой статьи. Дело в том, что эти контроллеры довольно сильно отличаются по функциональности — как ни странно это звучит на первый взгляд.

Технология Matrix Storage очень гибкая. Мало того что она позволяет создавать на двух HDD разделы RAID разных типов — она еще дает возможность достаточно просто использовать различные размеры strip size. Для внешних Serial ATA RAID-контроллеров, как правило, существуют определенные ограничения: например, не для всех strip size раздел может быть загрузочным.

Зато внешние Serial ATA RAID-контроллеры обычно имеют средства для миграции, позволяющие "зазеркалить" существующий HDD или, что сложнее, преобразовать его (естественно, добавив еще один HDD) в RAID-0.

Недостатком Matrix Storage также можно признать довольно большую (до 12%) загрузку ЦПУ.

В нашем случае в качестве "оппонента" ICH6R был выбран Adaptec 1210SA. Неплохой контроллер с очень хорошим софтом, работающим почти под всеми ОС и поставляемый в исходниках.

Но в случае с Adaptec 1210SA загрузочным для Windows может быть только раздел RAID-0 со strip size 64 Кб. И именно с этим показателем и проводились измерения с HDD Maxtor MaXLine III. Результаты ниже.

1С:Предприятие 8.0 SQL

1С:Предприятие файловая БД

Внешний Serial ATA RAID-контроллер совсем незначительно опережает Matrix Storage в файловом варианте — и довольно ощутимо (на 16%) в варианте SQL. Хотя с оптимальным значением strip size Matrix RAID-0 работает быстрее (см. основную статью).

Таким образом, внешний Serial ATA RAID-контроллер более предпочтителен для серверов или ПК, на которых есть выделенные RAID-массивы под конкретные задачи. Но если у вас только два HDD — однозначно лучше использовать Matrix Storage. И надежность получите, и практически ту же производительность.

Что такое stripe

stripe — непрерывная последовательность дисковых блоков. stripe может быть размером с один дисковый блок, но может состоять и из тысяч.

Устройства RAID разделяют содержащие их разделы дисков на страйпы; различные уровни RAID различаются в способе организации страйпов и в том, как размещаются на них данные. Взаимодействие между размером stripe, типичными размерами файлов в системе и их положением на диске — все это определяет общую производительность подсистемы RAID.

В RAID-0 компоненты разделов делятся на страйпы и затем чередуются. В результате получаем один большой виртуальный раздел. Такой подход не предполагает избыточности и снижает общую надежность: отказ одного диска уничтожит весь раздел.

Влияние замены HDD на производительность

Помимо "образцового" Maxtor MaXLine III 250 Гб, который обычно используется в наших тестированиях, у нас была возможность опробовать пару винчестеров ST3160827AS (160 Гб, 7200 оборотов в минуту, среднее время доступа 8,5 мс; интерфейс Serial ATA, буфер 8 Мб).

Мы обратили внимание на эти HDD, так как они тоже поддерживают NCQ (native command queuing). У "образцового" Maxtor MaXLine III 250 Гб другой объем несколько большее время доступа (9,3 мс — это хуже) и больший кэш (16 Мб, это лучше). Подбором strip size здесь мы уже не занимались, хотя и сделали два измерения для 64 и 32 Кб. Результаты ниже.

HDD от Seagate чуть опережает Maxtor. Можно сделать вывод, что время доступа при работе с деловыми приложениями имеет большее значение, чем больший кэш.

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...