|
Программирование >> Программирование баз данных
Касаясь такой темы, как нагрузка подсистемы ввода-вывода, необходимо учитывать влияние такого фактора, как пробуксовка. По мере того как нагрузка подсистемы ввода-вывода достигает максимально допустимой, все чаще возникают ситуации, в которых операции ввода-вывода, выполнявшиеся до сих пор, не оказывая влияния друг на друга, начинают совпадать по времени; иными словами, некоторые операции начинаются еще до завершения других операций. В результате этого возникает еще более значительное замедление работы системы, чем при обычных условиях. Аналогичный эффект возникает и при возрастании нагрузки процессора. Именно поэтому автор, руководствуясь указанными и некоторыми другими соображениями, рекомендует поддерживать нагрузку процессора на уровне, не превышающем 60%. Автор обнаружил, что удвоение объема выполняемых операций при 10%-ной нагрузке процессора чаще всего приводит к увеличению нагрузки процессора до 20%. Если же удвоение объема выполняемых операций происходит при 20%-ной нагрузке процессора, то в большинстве случаев нагрузка процессора возрастает до 50%, поскольку все чаще возникают ситуации, в которых различные процессы вытесняют из кэша данные, необходильые для других процессов, а также обнаруживаются другие явления, связанные с отрицательным взаимным влиянием процессов. Короче говоря, автор использует предельно допустимое значение нагрузки, равное 60%, поскольку пришел к выводу, что оставшиеся 40% резерва исчерпываются гораздо быстрее, чем первые 40%. Во многом такая же ситуация наблюдается применительно к операциям в подсистеме ввода-вывода и в сети. Если же инсталляция системы еще не выполнена, то приходится проводить гораздо более обширные аналитические исследования. Безусловно, почти все приложения, работающие под управлением СУБД SQL Server, предназначены для обработки данных, поэтому в них основная создаваемая нагрузка связана с потреблением ресурсов подсистемы ввода-вывода, но встречаются и такие запросы, которые требуют достаточно большого объема ресурсов процессора, как показано в табл. 23.2. Таблица 23.2. Разновидности операций, выполнение которых связано с созданием определенной нагрузки процессора Низкая нагрузка процессора Высокая нагрузка процессора Простые запросы и операции обновления, Крупные соединения применяемые к единственной таблице Запросы с соединениями, применяемые Операции агрегирования (sum, avg и т.д.) к относительно небольшим таблицам Сортировка крупных результирующих наборов Учитывая сказанное, рассмотрим более подробно каждую из складывающихся ситуаций. Приложения, создающие более значительную нагрузку на подсистему ввода-вывода Если в процессе эксплуатации приложения в большей степени создается нагрузка на подсистему ввода-вывода и это приводит к снижению производительности, то должна быть проведена модернизация аппаратных средств, причем основной объем расходов должен быть связан с приобретением дисковых массивов, а не с обновлением процессоров. Следует отметить, что речь в данном случае идет именно о дисковом массиве, а не об отдельных дисках; последний вариант вообще не должен рассматриваться. Мнение автора по этому вопросу таково, что не предусмотрев аппаратную избыточность при организации хранения данных в базе данных, вы тем самым допустите очень серьезную ошибку. Все данные, предназначенные для хранения в базе данных, должны быть надежно защищены от потери. Речь о том, как этого добиться, будет идти немного ниже. Прежде чем приступить к обсуждению темы об организации функционирования подсистемы ввода-вывода, кратко рассмотрим, что подразумевается под понятием нагрузки на подсистему ввода-вывода. Вообще говоря, нагрузка на подсистему ввода-вывода рассматривается как наиболее неблагоприятная, если она в основном связана с выборкой данных, а процессы обработки данных, эксплуатируемые в системе, представляют собой почти исключительно только запросы (а не сложные деловые расчеты), кроме того, в состав операций обработки данных не входят обновления, которые требуют интенсивных вычислений. След}ет учитывать, что жесткие диски чаще всего являются аппаратными устройствами, характеризующимися наиболее низкими показателями обмена данными (не считая CD-ROM). Краткий обзор технологии RAID В настоящее время технология RAID применяется в СУБД практически повсеместно. Разработан целый ряд вариантов организации технологии RAID, называемьгх уровнями, которые в целом предназначены для создания своего рода механизма обеспечения безотказной работы за счет эксплуатации массивов жестких дисков, которые сами по себе подвержены отказам. В настоящем разделе рассматриваются основы технологии R.\ID, изучая которые необходимо в первую очередь учитывать, что не все уровни RAID обеспечивают пол1гую защит} от потери данных. Технология RAID первоначально создавалась как способ организации избыточного массива недорогих дисков (Redundant Array of Inexpensive Disks). В основе этой технологии лежал относительно простой замысел, который состоял в том, чтобы создать надежный виртуальный диск большого объема, используя большое количество дисков меньшего объема, суммарная стоимость которых была бы ниже по сравнению с одним крупным диском. Кроме того, эта технология обеспечивает равномерное распределение нагрузки по всему массиву дисков, что способствует повышению быстродействия, а также позволяет в случае необходимости обеспечить избыточность хранения данньгх. С того времени, как была предложена технология RAID, стоимость жестких дисков существенно снизились (возможно, эти данные не совсем точны, но в среднем стоимость хранения данных на жестких дисках, измеряемая в долларах за мегабайт, в настоящее время составляет менее одного процента от того показателя, которым она измерялась ко времени создания технологии RAID), поэтому стали появляться другие трактовки термина RAID. Чаще всего встречаются современные расшифровки термина RAID как Random Airay of Independant Disks (Массив независимых дисков с произвольным доступом), хотя, по мнению автора, такая трактовка термина содержит в себе противоречие, и как Random Array of Individual Disks (Массив из отдельных дисков с произвольным доступом), что можно считать более удачным толкованием. Таким образом, термин RAID фактически приобрел право на самостоятельное существование и в основном не требует расшифровки, но следует помнить, что он всегда обозначает массив, состоящий из двух или нескольких жестких дисков, которые эксплуатируются совместно, обычно с целью повышения производительности и обеспечения надежности хранения данных. Более подробную информацию о технологии RAID можно найти во многих источниках, поэтому в данной главе мы рассмотрим только три наиболее часто применяемых варианта этой технологии (фактически в наибольшей степени применяются четыре варианта, но один из них рассматривается как сочетание двух других); эти варианты, которые принято называть уровнями, описаны в табл. 23.3. Таблица 23.3. Наиболее широко применяемые уровни RAID Уровень RAID Описание RAID О Уровень RAID О предусматривает полосовое распределение данных по дискам без контроля четности. Несмотря на то, что этот уровень входит в число наиболее часто применяемых, он распространен отнюдь не так широко, как два других уровня. Для организации работы технологии RAID на уровне О необходимо по меньшей мере три жестких диска, как и при использовании технологии RAID 5. В отличие от RAID 5, технология RAID О не обеспечивает никакой защиты от потери данных. (Как следует из формулировки принципа действия этого уровня, он не предусматривает применения контроля четности, а средства контроля четности обеспечивают вычисление специальных контрольных сумм, благодаря чему при определенных обстоятельствах появляется возможность реконструировать потерянные данные, но в технологии RAID О контроль четности не используется.) Но технология RAID О имеет свои преимущества, которые заключаются в том, что она обеспечивает достижение максимальной производительности, не требуя непроизводительного расходования пространства на жестких дисках. В технологии RAID О предусмотрено распределение хранимых данных по всем жестким дискам в массиве (количество которых должно составлять по меньшей мере 3). Следует также отметить, что схема адресации данных на внешних устройствах является линейной, а в этой технологии вся совокупность адресов делится на сегменты, после чего сформированные сегменты распределяются последовательно по жестким дискам массива; благодаря этому появляется возможность одновременно выполнять операции чтения или записи данных, относящиеся к различным участкам адресного пространства, на трех или большем количестве жестких дисков. Если же применяется только зеркальное отображение, без полосового распределения, то все данные находятся на одном жестком диске (и копия всех данных хранится на другом диске). Таким образом, при использовании зеркального отображения распределение нагрузки по жестким дискам не происходит (если не считать того, что жесткий диск, который служит для хранения копии, может применяться для выполнения операций только чтения) RAID 1 Технология RAID 1 определяется как способ организации хранения данных с использованием зеркального отображения. Для каждого активного жесткого диска в массиве предусмотрен второй жесткий диск, который зеркально отображает (сохраняет точную копию) информацию связанного с ним жесткого диска. Жесткие диски, применяемые для организации зеркального отображения, обычно относятся к одному и тому же типу и имеют одинаковую емкость, и операции записи для сохранения всей информации на каждом жестком диске производятся практически одновременно. (В операционной системе Windows NT предусмотрена программная поддержка технологии RAID, с помощью которой можно обеспечить зеркальное отображение информации на двух томах в системе, при условии, что оба тома имеют одинаковые размеры.)
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |