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

Планирование мощности системы

Расчет для производительности ввода-вывода при доступе к базе данных

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

  1. Рассчитайте общее количество операций чтения, которые будут проходить через систему, применив следующую формулу:
    общее количество чтений = (количество чтений на одну транзакцию) х 
    (общее количество транзакций)
    Предположим, на одну транзакцию у нас производится 500 чтений, а всего будет 50 000 транзакций, тогда всего у нас будет 25 000 000 чтений.
  2. Определите, сколько из этих операций чтения будут физическими операциями ввода-вывода, а сколько – логическими операциями ввода-вывода, пользуясь следующими формулами:
    общее количество логических чтений = (общее количество чтений) х 
    (процент успешных обращений к кэшу)
    
    общее количество физических чтений = (общее количество чтений) - 
    (общее количество логических чтений)
    Предположим, процент успешных обращений к кэшу равен 90%, тогда общее количество логических операций чтения у нас будет равно 22 500 000, а общее количество физических операций чтения будет равно 2 500 000.
  3. Преобразуйте общее количество физических операций чтения в количество чтений в секунду при помощи следующей формулы:
    количество физических чтений в секунду = 
    (общее количество физических чтений) / (рабочий период)
    Здесь рабочий период обозначает длительность времени (в секундах), в течение которого должна быть выполнена работа. Эта величина нужна также для расчета загруженности центрального процессора. Если взять для нашего примера 8-часовой рабочий период, то мы получим 86,8 физических операций чтения в секунду.
  4. Затем рассчитайте общее количество операций записи, которые будут выполняться в системе, при помощи следующей формулы:
    общее количество записей = (количество записей на одну транзакцию) х 
    (количество транзакций) х (множитель RAID)
    Пусть мы имеем 10 операций записи на одну транзакцию и применяем массив RAID 5, тогда общее количество записей будет равно 10 х 50 000 х 3, т.е. 1 500 000 операций записи.
  5. Преобразуйте общее количество физических операций записи в количество операций записи в секунду при помощи следующей формулы:
    количество физических записей в секунду = (общее количество физических записей) / 
    (рабочий период)
    В нашем примере мы имеем 1 500 000 физических операций записи за 8-часовой рабочий период (28 800 секунд), что дает 52,1 физических операций записи в секунду.
  6. Рассчитайте общее количество физических операций ввода-вывода в секунду при помощи следующей формулы:
    количество физических операций ввода-вывода в секунду = 
    	(общее количество физических чтений в секунду) + 
    	(количество физических записей в секунду)
    В нашем примере мы имеем 86,8 физических операций чтения в секунду и 52,1 физических операций записи в секунду, что дает в сумме 138,9 физических операции ввода-вывода в секунду.
  7. Вычислите общее необходимое количество дисковых накопителей по следующей формуле:
    количество дисков для базы данных = 
    	((количество физических операций ввода-вывода в секунду) / 
    	(производительность ввода-вывода одного диска)) + (прибавка RAID)

Помните, что значение производительности ввода-вывода одного диска вы должны брать с учетом правила "85%". Прибавка RAID – это количество дополнительных дисковых накопителей, необходимых для обеспечения отказоустойчивости. Если мы имеем всего 138,9 физических операции ввода-вывода в секунду, а производительность диска составляет 70 операций ввода-вывода в секунду и применяется массив RAID 5, то всего понадобится четыре дисковых накопителя – три для поддержки суммарного ввода-вывода и еще один для обеспечения отказоустойчивости массива RAID 5.

Итак, вы видите, что для размещения базы данных размером 10 Гб было бы достаточно иметь всего лишь один диск, но с учетом выполняемого ввода-вывода потребуется три диска – больший из двух результатов расчета.

Общее количество дисковых накопителей, нужных в системе

Чтобы определить суммарное количество дисковых накопителей, нужных для системы, надо суммировать все количества накопителей, нужных для всех ее компонент. В соответствии с условиями нашего примера нам понадобятся два накопителя для Windows 2000 Server и SQL Server, два накопителя для файлов журнала и четыре накопителя для базы данных, из чего следует, что для всей системы потребуется восемь дисковых накопителей.

Практические советы.

Оставляйте себе резервы

Большинство проектировщиков пользуются пороговыми величинами (75% для загруженности центральных процессоров, 85% для использования дисков и т.д.) как максимальными значениями нагрузок. В большинстве случаев желательно применять меньшие величины. Конечно, часто решения в этих вопросах принимают не проектировщики. На решение проектных вопросов могут оказывать влияние такие внешние факторы, как бюджет расходов на покупку вычислительной техники. В качестве хорошего целевого показателя можно принять максимальную загруженность центральных процессоров, равную 65% и использование дисков на 70%. Однако вы можете применять и любые другие значения этих процентов, которые сочтете оптимальными для проектируемого вами типа систем.

Сбор данных об использовании дисков

После того как система будет установлена и запущена в работу, вам надо будет собирать данные об использовании ее дисков, чтобы знать обо всех изменениях, которые могут потребоваться. При расширении системы может увеличиться количество пользователей (а следовательно, и количество транзакций), могут измениться требования к базе данных (в результате чего может увеличиться размер базы данных) и т.д.

При выполнении исследований последующего планирования загруженности дисков понадобится следить за следующими счетчиками утилиты Performance Monitor, которые вы найдете в объекте PhysicalDisk:

  • % Disk Time. Процент истекшего времени, в течение которого выбранный дисковый накопитель был занят обслуживанием запросов чтения или записи.
  • % Disk Read Time.Процент истекшего времени, в течение которого выбранный дисковый накопитель был занят обслуживанием запросов чтения.
  • % Disk Write Time.Процент истекшего времени, в течение которого выбранный дисковый накопитель был занят обслуживанием запросов записи.
  • Avg. Disk Read Queue Length. Среднее количество запросов чтения, стоящих в очереди на выбранном дисковом накопителе за время интервала измерения.
  • Avg. Disk Write Queue Length. Среднее количество запросов записи, стоящих в очереди на выбранном дисковом накопителе за время интервала измерения.
  • Avg. Disk Queue Length.Среднее количество запросов (любых – и чтения, и записи), стоящих в очереди на выбранном дисковом накопителе за время интервала измерения. Этот показатель является суммой двух предыдущих показателей.
  • Disk I/O Count Per Second.Активность ввода-вывода массива дисков за одну секунду, усредненная за интервал измерения. Этот счетчик недоступен непосредственно из утилиты Performance Monitor, чтобы получить эту величину, надо просто сложить значения двух других счетчиков, которые доступны – Disk Reads/sec и Disk Writes/sec*.
  • Disk Space Used.Объем места на диске, которое в данный момент используется базой данных или операционной системой. Этот счетчик недоступен из Performance Monitor, для получения этой информации нужно применять Disk Administrator.
  • Disk Space Available.Объем места на диске, которое в данный момент свободно**.

Для запуска Disk Administrator нажмите на экранную кнопку Start, затем выберите Programs, Administrative Tools (Common) и, наконец, Disk Administrator. Для получения дополнительной информации об использовании утилиты Disk Administrator, производительности, нажмите на кнопку Help в окне Disk Administrator.

Анализ данных об использовании дисков

Анализ информации об использовании дисков несложен. Например, если бы мы анализировали работу системы, то для определения объема свободного места мы собирали бы информацию о свободном месте на дисках. На рис. 6.7 показаны нагрузка на базу данных в отношении наличия свободного места.

Как можно видеть, в начале наблюдений у нас было 2,05 Мб свободного места из общего объема в 6,15 Мб, т.е. диск был заполнен примерно на 67%. 14 января 2000 года объем свободного места на диске уменьшился примерно до 1,5 Мб, т.е. диск заполнился примерно на 75%. Проведя при помощи Microsoft Excel линию тренда, можно спрогнозировать, что 18 февраля 2000 года на диске останется свободно только около 1,3 Мб, т.е. диск заполнился примерно на 83%. Администратор баз данных может принять решение приобрести в этот момент дополнительный диск.

Прогноз (упреждающий анализ) для свободного места на диске

Рис. 6.7. Прогноз (упреждающий анализ) для свободного места на диске