Опубликован: 11.12.2006 | Доступ: свободный | Студентов: 5820 / 381 | Оценка: 4.42 / 3.86 | Длительность: 57:15:00

Лекция 5: Конфигурирование и планирование подсистемы ввода-вывода

Сравнение производительности уровней RAID

Для правильного конфигурирования и настройки вашей системы RAID, вам нужно понимать различия в производительности различных уровней RAID, о которых мы рассказали в предыдущем разделе. Если вы будете понимать, как работает система RAID и какие действия она осуществляет в различных ситуациях, вы лучше сможете настраивать свою подсистему ввода-вывода. В данном разделе мы внимательно сравним различные показатели производительности, с которыми вы познакомились в предыдущем разделе. В наших примерах мы будем считать, что отдельный дисковый накопитель может выполнять 85 операций произвольного ввода-вывода в секунду.

Производительность чтения

Производительность чтения не сильно зависит от выбранного вами уровня RAID. Когда операция чтения применяется к массиву RAID, то каждый диск вносит свой вклад в производительность по чтению. Так как для высокой производительности основным препятствием являются операции произвольного ввода-вывода, то мы сейчас рассмотрим эту тему. Вы можете максимально повысить производительность последовательного ввода-вывода, выделив их на отдельный том. Давайте посмотрим, как происходит произвольный ввод-вывод для различных уровней RAID:

  • В томах RAID 0 данные распределены равномерно по всем дискам массива. Поэтому и операции произвольного ввода-вывода должны быть равномерно распределены по всем дискам системы. Тогда, с учетом нашего предположения, что отдельный дисковый накопитель может выполнять 85 операций произвольного ввода-вывода в секунду, массив RAID 0 из десяти дисков сможет выполнять 850 операций в секунду.
  • Тома RAID 1 поддерживают параллельный поиск, при котором операции чтения производятся обоими дисковыми накопителями. Поэтому RAID 1 может выполнять в два раза больше операций чтения, чем одиночный диск, т.е. 170 операций ввода-вывода в секунду. Если же операции чтения будут производиться чаще, то производительность снизится.
  • В системах RAID 5 данные распределяются равномерно по всем дисковым накопителям, входящим в состав массива. Даже несмотря на то, что один дисковый накопитель в каждом слое данных служит для хранения данных контроля по четности, из-за произвольных по своей природе операций ввода-вывода, используются обычно все дисковые накопители. Поэтому, как и для массива RAID 0, темп (производительность) чтения массива RAID 5 составит n*85 операций в секунду, где n – количество дисковых накопителей в массиве. Если операции чтения будут производиться в большем темпе, то производительность SQL Server снизится.
  • Массивы RAID 0, как и массивы RAID 1, поддерживают параллельный поиск. Поэтому для них максимальная производительность чтения составит n*85 операций в секунду, где n – количество дисковых накопителей. Вы могли бы инициировать запуск операций ввода-вывода с более высоким темпом, но в этом темпе исполняться они не смогут.

Как видите, подсчитать производительность чтения массивов RAID совсем просто. Добавляя достаточное количество дисковых накопителей, так чтобы ваши потребности в производительности ввода-вывода соответствовали этим ограничениям, вы сможете оптимизировать производительность вашей системы.

Производительность записи

Производительность записи очень сильно зависит от выбранного вами уровня RAID. И снова, поскольку основные трудности возникают из-за операций произвольного ввода-вывода, то мы их сейчас и рассмотрим. Вы можете максимально повысить производительность последовательного ввода-вывода, выделив их на отдельный том или тома. Давайте посмотрим, как происходит запись произвольных данных для различных уровней RAID:

  • Уровень RAID 0 лучше всего подходит для обработки операций записи без ущерба для производительности, но вы расплачиваетесь за это отказоустойчивостью. Так как в RAID 0 не применяется зеркальное дублирование или контроль по четности, то производительность RAID 0 равна просто сумме производительностей отдельных дисковых накопителей. Поэтому массив RAID 0, состоящий из десяти дисков, сможет выполнять 850 операций в секунду (с учетом нашего предположения о производительности отдельного накопителя).
  • Тома RAID 1 должны выполнять зеркальное дублирование всех данных, записываемых в массив, из-за чего одна запись в массив RAID 1 порождает две операции ввода-вывода на дисковые накопители. Поэтому массив RAID 1 имеет темп записи такой же, как и у одиночного дискового накопителя, т.е. 85 операций ввода-вывода в секунду.
  • Операции записи в массивы RAID 5 происходят еще медленней. Запись в RAID 5 порождает четыре физических операции ввода-вывода на диски. Поэтому производительность записи в массив RAID 5 в четыре раза меньше производительности записи отдельных дисковых накопителей в составе массива.
  • Массивы RAID 10 имеют такие же показатели производительности записи, как и массивы RAID 1. Каждая запись в массив RAID 10 порождает две физических операции записи. Поэтому производительность записи в массив RAID 10 в два раза меньше производительности записи отдельных дисковых накопителей в составе массива.

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

Подсчет количества операций ввода-вывода для дисков

Чтобы определить объем нагрузки, приходящейся на отдельные дисковые накопители системы, вам придется выполнить некоторые расчеты. Если вы пользуетесь аппаратным контроллером RAID, то количество операций ввода-вывода в секунду, показываемое монитором производительности Performance Monitor означает количество операций ввода-вывода, выполняемых массивом как единым целым. Вы не увидите сведений о дополнительных операциях ввода-вывода, генерируемых контроллером и служащих для обеспечения отказоустойчивости. Фактически, Windows 2000 не замечает их выполнения, но вы должны знать о них, чтобы правильно определить количество дисковых накопителей, необходимое для обеспечения оптимальной производительности.

RAID 0

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

количество операций на диск = (чтения + записи) / количество дисков

RAID 1

Для массивов RAID 1 вычисления будут несколько более сложными. Так как количество записей удваивается, то число операций ввода-вывода на один диск в секунду равно сумме количества операций чтения и удвоенного количества операций записи для массива, деленной на количество дисков в массиве (для RAID 0 – два). Нужно применять такую формулу:

количество операций на диск = (чтения + (2 * записи)) / 2

Запись в массивы RAID 1 происходит медленней, но они обеспечивают лучшую отказоустойчивость.

RAID 5

Массивы RAID 5 обеспечивают отказоустойчивость, но при записи у них получается очень большая нагрузка на диски. Операции чтения в массивах RAID 5 распределены по многим дисковым накопителям массива, но для записи приходится выполнять четыре физических операции ввода-вывода. Чтобы подсчитать количество операций ввода-вывода, приходящихся на один дисковый накопитель, надо сложить количество операций чтения и учетверенное количество операций записи, а затем разделить на количество дисков в массиве. Поэтому формула для RAID 5 будет такой:

количество операций на диск = (чтения + (4 * записи)) / количество дисков

RAID 10

Скорость записи в массивы RAID 10 такая же, как в RAID 1, но зато RAID 10 обеспечивает высокую степень отказоустойчивости. Расчет для RAID 10 аналогичен расчету для RAID 1. Поскольку количество записей удваивается, то число операций ввода-вывода на один диск равно сумме количества операций чтения и удвоенного количества операций записи для массива, деленной на количество дисков в массиве. Формула для RAID 10 будет такой:

количество операций на диск = (чтения + (2 * записи)) / количество дисков
Сравнение различных уровней RAID

Давайте сравним разные уровни RAID. Тогда вам станет легче понять, какой уровень RAID лучше подходит для вашей системы. Когда вы сравниваете производительность работы разных уровней RAID, одним из наиболее важных факторов, оказывающих влияние на нее, является соотношение чтения и записи. При выполнении операций чтения производительность различных уровней RAID отличается не сильно, различия относятся в основном к производительности операций записи. Также нужно учитывать, нужна ли вашей системе отказоустойчивость. И наконец, вам следует оценить соотношение стоимости системы и ее емкости. Характеристики для различных уровней RAID перечисленны в табл. 5.3.

Таблица 5.3. Сравнение уровней RAID
Уровень RAID Производительность Отказоустойчивость Оценка стоимости
RAID 0 Наилучшая Без отказоустойчивости Экономичный
RAID 1 Хорошая Хорошая Дорогой
RAID 5 Быстрая для чтения, медленная для записи Нормальная Самый экономичный из уровней, обеспечивающих отказоустойчивость
RAID 10 Хорошая Хорошая Дорогой

Как видите, наилучший вариант зависит от ваших потребностей. Чтобы понять различие между производительностью RAID 5 и RAID 10 при разных соотношениях чтения и записи, посмотрите табл. 5.4, в которой показаны данные для массивов RAID 5 и RAID 10, выполняющих 500 операций ввода-вывода в секунду на 10 дисковых накопителях при разных соотношениях чтения и записи.

Таблица 5.4. Сравнение RAID 5 и RAID 10
Соотношение Чтения/Записи Операции ввода-вывода RAID 5 (Чтения + (4 * Записи)) /  Кол-во дисков Операции ввода-вывода RAID 10 (Чтения + (2 * Записи)) /  Кол-во дисков
100% чтений

0% записей

(500+0)/10

50 операций ввода-вывода на диск

(500+0)/10

50 операций ввода-вывода на диск

90% чтений

10% записей

(450+200)/10

65 операций ввода-вывода на диск

(450+100)/10

55 операций ввода-вывода на диск

75% чтений

25% записей

(375+500)/10

87.5 операций ввода-вывода на диск

(375+250)/10

62.5 операций ввода-вывода на диск

50% чтений

50% записей

(250+1000)/10

125 операций ввода-вывода на диск

(250+500)/10

75 операций ввода-вывода на диск

0% чтений

100% записей

(0+2000)/10

200 операций ввода-вывода на диск

(0+1000)/10

100 операций ввода-вывода на диск

Как видите, когда соотношение чтения к записи составляет 90%:10%, нагрузка на диски для RAID 5 и RAID 10 почти не отличается. Но когда запись составляет более высокий процент в операциях ввода-вывода, нагрузка на диски массивов RAID 5 становится гораздо больше.