Уровень загрузки ресурсов ввода-вывода
При выборе конфигурации подсистемы ввода-вывода должно быть уделено внимание не только максимальной емкости ее компонентов, но также уровню использования (загруженности) каждого ресурса. Большинство параметров, используемых для описания емкости ресурсов, так или иначе связаны с пропускной способностью. Например, шина SCSI характеризуется пропускной способностью в 10 Мбайт/с. Это скорость пересылки битов по шине. Такой параметр не дает информации о том, насколько занята сама шина, и, следовательно, о том, сколько времени будет потрачено на обслуживание данного запроса. Приводить в качестве параметра ресурса рейтинг максимальной пропускной способности все равно, что говорить, - предел скорости автомагистрали равен 130 км в час: если въезды и съезды с нее так перегружены, что это занимает длительное время, то общая скорость, вероятно, будет намного ниже установленного предела.
Точно такие же принципы применимы к различным периферийным устройствами периферийным шинам. В частности, это справедливо и для шин SCSI. Экспериментальные результаты показывают, что если должна поддерживаться пиковая производительность, то степень загруженности шины SCSI должна поддерживаться на уровне 40%.Аналогичным образом, степень загрузки дисков должна поддерживаться на уровне60%. Диски могут выдерживать значительно большую степень загрузки, чем шина SCSI, поскольку во встроенных дисковых контроллерах имеется интеллект и средства буферизации. Это позволяет координировать работу буферов дорожек, каретки диска и очереди запросов такими способами, которые невозможны на достаточно примитивных главных адаптерах шины SCSI.
Обычно нельзя оценить среднюю степень загрузки дисков или шины SCSI до тех пор, пока система не начнет работать. В результате достаточно приемлемой оказывается такая конфигурация, которая позволяет распределить часто используемые данные и индексы по стольким дискам и шинам SCSI, насколько позволяют бюджет и технические ограничения. Для данных, доступ к которым происходит не очень часто, например только во время ночной пакетной обработки (или других полуархивных данных, подобных транзакциям годовой давности), можно рекомендовать как можно более плотную упаковку на накопителях.
Как только система начнет работать, можно измерить действительную степень загрузки дисков и соответствующим образом перераспределить данные. Как указывалось выше, перераспределение данных должно выполняться с учетом других параметров доступа к диску: везде надо поддерживать баланс.
В контексте СУБД имеется по крайней мере два механизма для распределения данных по дисковым накопителям. Для эффективного распределения доступа к данным все известные СУБД имеют возможность осуществлять конкатенацию нескольких дисковых накопителей или файлов Unix. (В СУБД Ingres, например, реализовано и истинное расщепление дисков, ограниченное стандартным размером чередования 16 Кбайт.) Похожие возможности (помимо горячего резервирования и расщепления дисков) предлагают и многие специальные пакеты, которые можно рассматривать как интегральную часть файловых систем Unix (например, Online: DiskSuite компании Sun). Файловая система NT моделирует файловую систему VMS. Она включает экстентные файлы, возможности прямого и асинхронного ввода-вывода, зеркалирования и расщепления дисков.
Если работа с таблицей ограничивается возможностями подсистемы ввода-вывода, необходимо исследовать запросы, которые вызывают ввод-вывод. Если эти запросы реализуют произвольный доступ к дискам, например если многие пользователи независимо запрашивают индивидуальные записи, то имеющиеся возможности конкатенации дисков в СУБД полностью адекватны распределению нагрузки доступа по множеству дисков (при достаточно полном заполнении пространства таблицы).Если обращения по своей природе последовательны, в частности если один или несколько пользователей должны просматривать каждую строку таблицы, то больше подходит механизм расщепления дисков.
Обычно СУБД делят таблицу на несколько относительно больших сегментов и размещают данные равномерно по этим сегментам. Главное отличие между конкатенацией СУБД и функцией расщепления заключается в размещении смежных данных. Когда диски конкатенируются друг с другом, последовательное сканирование представляет собой тяжелую нагрузку для каждого из дисков, но эта нагрузка носит последовательный характер (только один диск участвует в обслуживании запроса).
Истинное расщепление дисков осуществляет деление данных по гораздо более мелким границам, позволяя тем самым всем дискам участвовать в обслуживании даже сравнительно небольшого запроса. Как результат при использовании расщепления загрузка дисков при выполнении последовательного доступа существенно уменьшается. К архивным и журнальным файлам всегда осуществляется последовательный доступ, и они являются хорошими кандидатами для расщепления, если реализация обращений к таким файлам ограничивает общую производительность системы.
По мере роста размеров и важности баз данных процедуры резервного копирования, которые выполняются с блокировкой доступа к СУБД, становятся практически неприемлемыми. При реализации резервного копирования в оперативном режиме(режиме on-line) могут возникнуть достаточно сложные вопросы по конфигурированию соответствующих средств, поскольку резервное копирование больших томов данных, находящихся в базах данных, приводит к очень интенсивной работе подсистемы ввода-вывода. Резервное копирование в оперативном режиме часто вызывает очень высокий уровень загрузки дисков и шины SCSI, что приводит к низкой производительности приложений. Поэтому особое внимание обычно уделяется конфигурациям всех устройств, вовлеченных в процессы резервного копирования.