Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
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:

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

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

Релиз ядра Linux 4.14  (9)
Среда 22.11, 19:04
Loading

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
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...