(Возврат на основную страницу)

 

Содержание номера за Сентябрь 2006 год

Microsoft пересматривает процесс бета-тестирования

Мэри Джо Фолей (Mary Jo Foley)

Если бы Пол Флесснер (Poul Flessuer) и его команда по разработке SQL Server могли действовать по своему желанию, традиционные бета­выпуски продуктов вскоре ушли бы в прошлое. И они не единственные, кто старается продвинуть новый способ сборки конечного продукта, чтобы приблизиться к подходу, который использует сообщество открытого кода.

В Microsoft и других компаниях бета­тестирование было краеугольным камнем разработки с тех пор, как они вышли на рынок создания и продажи прикладного программного обеспечения. Но, если влиятельные силы в Редмонде смогут реализовать свои идеи, выпуск бета­версий скоро станет историей для Microsoft, ее партнеров и заказчиков.

Что стоит за изменением подхода?

Бета­версии — это предсказуемые вехи (milestone) процесса разработки, по которым внешние и внутренние тестеры оценивали свое движение к финальной версии. Обычно они выпускаются нечасто, и, как следствие, информация по ним может оказаться запоздавшей и иногда некачественной. Однако их количество известно, и именно они являются для производителей, OEM­партнеров и заказчиков отправной точкой поддержки нового продукта.

Сообщество открытого кода перевернуло традиционную парадигму создания ПО с ног на голову. Здесь тестеры получают часто изготавливаемые сборки продукта, находящегося на стадии формирования. Их рекомендации и предложения, как правило, принимаются во внимание быстрее. А в деле выпуска качественного кода сообщество разработчиков считается не менее важным, чем «эксперты», которые следят за процессом.

До последнего времени Microsoft позиционировала свой «способ изготовления сосисок» как наилучший. Но в прошлом году в голосах из Редмонда появились совершенно иные интонации. Высшее руководство корпорации развернуло дискуссии о том, являются ли распространяемые под барабанную дробь и звуки фанфар бета­версии самым эффективным способом разрабатывать и тестировать ПО. Может быть, есть более удачная альтернатива?

Группа Microsoft Engineering Excellence, возглавляемая ветераном с 20­летним стажем Джоном де Вааном (Jon DeVaan), надзирает за проектом по реинжинирингу процесса разработки ПО внутри Microsoft. Джон де Ваан, член группы Microsoft central Business Leadership, управляет инженерными стандартами, используемыми для создания программных продуктов Microsoft. Получая отзывы от Windows Core Operating Systems Division (COSD), разработчиков Office, инструментальных средств и приложений, он стоит во главе фундаментальных изменений инженерных процессов. В рамках этой инициативы группы разработки основных продуктов часто «виртуализируются» за рамками своих непосредственных работ, что сводит вместе разработчиков из разных команд для создания нового продукта или подсистемы. В то же самое время работа этих «виртуалов» основана на Customer technology preview (CTP) — технологии частых тестовых сборок, служащей для увеличения скорости создания и тестирования продукта.

В январе Джим Олчин (Jim Allchin), сопрезидент подразделения платформенных продуктов и услуг Microsoft, намекнул о возможных переменах. Он признал, что группа разработки Windows Vista на финальных стадиях полагается на более частые выпуски тестовых CTP­сборок по сравнению с традиционными бета­версиями. Это подтвердил и Пол Флесснер — старший вице­президент Microsoft по серверным приложениям. По его словам, отдел SQL решил отказаться от Beta 3 SQL Server 2005, так как информация по результатам тестирования CTP была достаточно надежной и быстрой, чтобы выпустить продукт.

Если Флесснер добьется реализации того, что он описывает как SQL Server Reengineering Initiative, для разработчиков и тестеров SQL Server наступит эра, свободная от бета­версий. «Если бы у меня были развязаны руки, на свет никогда больше не появилась бы еще одна бета­версия SQL Server, — сказал он в интервью Microsoft Watch. — Руководитель не всегда имеет свободу выбора, но мы определенно двигаемся в этом направлении».

Подобные изменения не происходят неожиданно. Разработчики сообщества открытого кода оказали воздействие на восприятие ситуации в Microsoft — это признают Флесснер и другие руководители корпорации, но здесь повлияли и другие факторы.

Подразделения Microsoft, которые первыми начали использовать CTP, — в первую очередь, группы разработки Windows, SQL Server и Visual Studio и их тестеры, обнаружили, что CTP более эффективны в обмене кодом и результатами проверки с группами тестирования.

В течение последних 18 месяцев разработки SQL Server 2005 группа Флесснера, по его словам, «дей­ствительно встала в колею CTP». Что касается Katmai, следующей основной версии SQL Server, то планируется переход только на CTP без использования бета­модели.

Разумеется, CTP в SQL Server отличается от того, что под этой маркой выпускает группа Visual Studio или Windows. Отдел Visual Studio, который de facto определил CTP как «снимок продукта в данный момент времени», выпускал тестовые CTP­сборки, которые по качеству не соответствовали бета­версиям (это признают официальные представители компании). Группа разработки Windows усложнила ситуацию, выпустив CTP­версии Vista, которые по официальным заявлениям соответствовали Beta 2. С другой стороны, группа SQL проводила полномасштабное тестирование CTP, которые она выпускала.

Пол Флесснер ожидает, что новый инженерный процесс окажет немедленное и положительное влияние на цикл выпуска продукта, будь то следующая версия SQL Server или WinFSWindows File System.

Системные требования и конфигурация системы хранения данных для SQL Server

Джо Чанг (Joe Chang)

Правильная, технически грамотная оценка требований к системной и дисковой конфигурации для SQL Server должна учитывать все разнообразие процессоров, а также анализ использования памяти и системы ввода­вывода. Ее стоимость может достигать 10–20 тысяч долларов с учетом оплаты рабочего времени персонала в зависимости от наличия существующего производственного окружения, на базе которого можно осуществлять дальнейшее проектирование, или от необходимости основываться лишь на теоретических моделях и прототипе базы данных. При этом может оказаться, что характеристики сервера за 20 тысяч долларов многократно превышают окончательные требования, поэтому нужно подумать, стоит ли производить строгую техническую оценку.

К счастью, разумную системную конфигурацию можно предложить без трудоемкого технического анализа — по большей части на основе структуры стоимости ОС Windows, лицензий SQL Server и серверной платформы. В случаях, когда речь идет о действительно большой системе на базе более чем четырех процессоров, надлежащий технический анализ все же потребуется.

Сводка для менеджеров

У менеджеров высшего звена обычно нет времени, чтобы вникать в детальное обоснование решений о конфигурации каждой системы, — они хотят видеть лишь краткую сводку. Простая иллюстрация и ответ без детального обоснования приведены на рис. 1. Если это еще не очевидно, основное внимание нужно уделить пропускающей способности системы ввода­вывода и такому показателю, как количество случайных операций ввода­вывода в секунду. В теории достижимая последовательная полоса пропускания для двух внутренних и восьми внешних каналов SCSI составляет 2,5 Гб/сек, но это не было проверено на практике.

В табл. 1 содержится краткая сводка вариантов системной конфигурации для систем на базе чипсетов Intel E7230, E7520 и E8500. Конфигурации основаны на технологии хранения данных U320 SCSI. В следующем году технология SCSI, скорее всего, уступит место сочетанию SAS и SATA, которые будут выбраны потребителями из широкого спектра серверных систем и систем хранения данных.

Ниже приведено краткое описание вариантов выбора программного обеспечения, системной конфигурации, памяти и подсистемы хранения данных.

•     Программное обеспечение: 64­разрядные Windows Server 2003 и SQL Server 2005 предпочтительнее, чем 32­разрядные версии, включая SQL Server 2000, если другие требуемые компоненты поддерживают 64­разрядные операции в полном объеме. Из­за разницы в поведении SQL Server 2005 по сравнению с SQL Server 2000, а также 64­разрядных версий по сравнению с 32­разрядными может по­требоваться настройка производительности.

•     Система: любая подходящая серверная система с 1, 2 или 4 двухъядерными процессорами. Даже если окажется, что требуется большая NUMA­система, просто переключите 1–4­х процессорную систему на использование в режиме тестирования. Учтите, что система с единственным двухъядерным процессором сегодня сравнима с системой на базе 4­х процессоров Xeon MP 2,0 ГГц производства 2002 г.

•     Память: заполните имеющиеся гнезда памяти модулями DIMM объемом 1 Гб или 2 Гб, если только вы не уверены, что требуются именно модули объемом 4 Гб. Выбирайте двухгигабайтные модули, если их стоимость хорошо соотносится со стоимостью модулей объемом 1 Гб. Требования к памяти могут повлиять на выбор системы в целом. Иногда более эффективно купить систему с 4­мя гнездами для процессоров и большим количеством гнезд для памяти, даже если для процессоров вам требуется всего 2 гнезда, особенно если это поможет избежать установки модулей памяти объемом 4 Гб.

•     Система хранения данных: распределите нагрузку между 4–10 или более каналами ввода­вывода и 16–60 (или более) дисками. Любой из интерфейсов U320 SCSI, FC или SAS сможет соответствовать требованиям по производительности, если выполнить распределение правильно. В начале 2006 г. лучше всего выбрать диски 15K1 объемом 36 Гб или диски 10K объемом 72–74 Гб. Не дайте какому­нибудь идиоту убедить вас, что большие диски 15K на 146 Гб или диски 10K на 300 Гб соответствуют требованиям к объему и позволяют при этом сэкономить. Если вы заинтересованы в производительности, то это не вариант. Для дисков SFF 2,5" SAS, на 36 или 72 Гб приемлемая скорость составляет 10K.

И последнее, но очень важное замечание: протестируйте полученную конфигурацию на производительность. То, на что должна быть способна дисковая конфигурация, и то, на что она способна на самом деле, не одно и то же.

Версии программного обеспечения

Для практических целей структура стоимости лицензий на программное обеспечение поможет сузить множество рекомендованных системных конфигураций. В табл. 2 приведено количество процессоров и объем ОП, которые поддерживаются 32­ и 64­разрядной версиями Windows Server 2003 R2.

Табл. 3 содержит информацию о поддержке процессоров и памяти SQL Server 2000 в зависимости от версии. 64­разрядная версия SQL Server 2000 — только для процессора Itanium.

В табл. 4 представлена информация о поддержке процессоров и памяти SQL Server 2005 в зависимости от версии для 32­ и 64­разрядных версий.

Очевидно, что более старые версии программных продуктов ограничены в возможностях по использованию памяти. На момент выпуска продукта эти ограничения были разумны. Для версий Enterprise Edition 3 Гб и AWE были пределом, что не было нелогичным в 2000 г., когда модули памяти объемом 4 Гб были дороги и требовали дорогой системы. С тех пор 8­16 Гб памяти вполне соответствуют по цене версии Standard Edition, но из­за отсутствия новых выпусков един­ственным вариантом был SQL Server 2000 Enterprise Edition. С выходом SQL Server 2005 ограничения к памяти в версии Standard Edition были ослаблены. ОС тоже имеет свои ограничения в области памяти, но они гораздо слабее, особенно для 64­разрядных версий, а разница в цене при переходе на Enterprise Edition не так велика.

В любом случае предпочтительное решение — 64разрядная версия Windows Server 2003. Standard или Enterprise Edition удовлетворит нужды большин­ства компаний. SQL Server 2005 имеет значительные преимущества над SQL Server 2000 благодаря возросшему объему используемой памяти, в том числе в Standard Edition. 64­разрядная версия имеет неограниченный доступ к памяти свыше 4 Гб по сравнению с 32­разрядными версиями, которые требуют использования AWE.

Платформы

Сегодня для абсолютного большинства требований 1­, 2­ или 4­процессорной системы более чем достаточно. Большинство фирм покупает систему с 2 или 4 гнездами для процессоров. Тем не менее, учитывая сегодняшние возможности микропроцессоров и доступность многоядерных процессоров, стоит серьезно рассмотреть вариант системы с единственным процессором, где это возможно. Производители не хотят рекомендовать такой вариант, имея в наличии более дорогие системы на базе двух процес­соров.

В табл. 5 приведены характеристики процессоров. Двухъядерные процессоры на данный момент доступны в любых вариантах, кроме Itanium, для которого двухъядерная версия выйдет в середине или ближе к концу 2006 г. Процессоры с одним ядром обычно имеют тактовую частоту немного выше, чем соответ­ствующие двухъядерные. Стоимость лицензий на программное обеспечение говорит в пользу двухъядерного варианта, кроме кода, который должен выполняться последовательно.

На начало 2006 г. AMD Opteron, возможно, обладает более высокой производительностью выполнения широкого спектра операций SQL Server. Opteron также исключительно хорош, если требуется последовательный доступ к памяти. Процессоры линий Intel Pentium D, Xeon и Xeon MP пока отстают — в основном из­за температурных ограничений, из­за которых реальная частота процессора гораздо ниже максимума, поддерживаемого частотой переключения транзисторов. Семейство Pentium 4/Xeon обеспечивает наилучшую производительность при сканировании таблиц из всех процессорных линеек. Функция Hyper­Threading в этой линии процессоров действительно повышает производительность приложений, обменивающихся по сети большими объемами данных. К сожалению, это справедливо не для всех операций и в некоторых случаях возможно падение производительности, поэтому использование этой технологии требует тщательного анализа. HT улучшает производительность сжатия на 50% на ядро, что очень впечатляет. Эти характеристики ускоряют операции создания резервных копий и восстановления из них при использовании программного обеспечения для создания резервных копий с использованием компрессии сторонних разработчиков, например LiteSpeed от Quest (в прошлом Imceda).

Intel Core Duo и его предшественник Pentium M существуют только в 32­разрядной версии, но у них прекрасная производительность и очень низкое энергопотребление. Они лучше всего подходят для исключительно 32­разрядных сред, однопроцессорных систем, сред высокой плотности или других ограниченных в энергопотреблении. Линейка Itanium 2 должна занять свое место среди систем на 2—4 процессора, но пока ее выход откладывается из­за задержки с выпуском двухъядерной версии, и текущий процессор Madison, изготовленный по технологии 130 нм, соревнуется с процессорами Opteron и Xeon, изготовленными по технологии 90 нм. Тем не менее в высокопроизводительных масштабируемых средах системы на базе Itanium достойны серьезного рассмотрения при построении решений на базе Windows и SQL Server. Unisys предлагает линию продуктов класса high­end на базе процессоров Xeon MP. До того как была представлена поддержка 64­разрядной технологии в линейке Xeon MP, применение 32­разрядных процессоров Xeon MP в больших NUMA­системах было затруднено, в основном из­за ограниченного адресного пространства 4 Гб. Сегодня неясно, как рынок систем с более чем четырьмя процессорами разделится между Itanium, Xeon MP и, возможно, Opteron, ведь теперь полная поддержка 64­разрядной технологии присутствует во всех линейках процессоров.

На рис. 2 приведено упрощенное изображение однопроцессорной системы на базе чипсета Intel E7230. Позаимствованный у настольных систем, он весьма впечатляет своими возможностями ввода­вывода. Он имеет один x8 порт PCI­Express, который соединен с двумя шинами PCI­X. Первая с частотой 100 МГц имеет 2 слота, а вторая с частотой 133 МГц — 1 слот. Альтернативные конфигурации включают единственный x8 порт PCI­E, два x4 порта PCI­E или один x4 порт PCI­E и одну шину PCI­X. В целом следует предпочесть PCI­E конфигурации, если в наличии имеются адаптеры PCI­E. Порт DMI соединяет контроллер памяти с ICH7 с той же полосой пропускания, что и один x4 порт PCI­E. ICH7 имеет 4 порта SATA на 3,0 Гбит/сек, 2 PCI­E x1 порта для гигабитного Ethernet и один x4 порт PCI­E.

У чипсета E7230 не должны возникать проблемы с обслуживанием 4 внутренних SATA­дисков, 2 RAID­контроллеров и 4 каналов SCSI. Впрочем, одного RAID­контроллера с двумя каналами SCSI будет достаточно для этой однопроцессорной системы. Можно упомянуть, что E7230 произошел от линии 9XX чипсетов для настольных систем, у которой вообще­то был один x16 порт PCI­E для графики и один порт DMI, который, по сути, является x4 портом PCI­E. Нет причины, по которой x16 графический порт не может быть сконфигурирован как два x8 порта, кроме того, что возможности ввода­вывода и так превышают требования большинства однопроцессорных систем.

На рис. 3 показана двухпроцессорная система на базе чипсета Intel E7520. У E7520 три x8 порта PCI­E и один интерфейс HI для более старых устройств с низкой пропускной способностью. У каждого из x8 портов PCI впечатляющая номинальная полоса пропускания 2 Гб/сек в каждом направлении. Действительная устойчивая полоса пропускания не проверялась.

Как видно, один x8 порт PCI­E соединен с двумя шинами PCI­X. Каждая шина PCI­X имеет встроенное PCI­X устройство вдобавок к имеющимся в наличии открытым слотам. Альтернативные конфигурации для чипсета E7520 включают 3 x8 порта PCI­E или 1 x8 порт PCI­E и 4 шины PCI­X, каждые две на двух мостах ввода­вывода. Каждый x8 порт PCI­E может быть сконфигурирован как два x4 порта. Для двухпроцессорных систем хорошей комбинацией является 4–8 внутренних SCSI­дисков на двух встроенных SCSI­каналах и два двухканальных RAID­контроллера всего для 2 внутренних и 4 внешних SCSI­каналов.

На рис. 4 показана 4­процессорная система на базе чипсета Intel E8500. У него две независимых процессорных шины, каждая из которых поддерживает два гнезда для процессоров, всего — четыре гнезда. Есть также четыре независимых интерфейса памяти (independent memory interface, IMI), подсоединенных к северному мосту. Каждый канал IMI может быть расширен с помощью внешнего моста памяти (external memory bridge, XMB) до двух каналов памяти DDR­II. В подсистеме ввода­вывода присутствуют три x8 порта PCI­E, один x4 порт и интерфейс HI для более старых устройств ввода­вывода. Как и в случае с другими чипсетами, каждый x8 порт может быть сконфигурирован как два x4 порта. Один x8 порт соединен с двумя шинами PCI­X, со встроенными SCSI и GE. Другой x8 порт оставлен как есть, третий — сконфигурирован как порты x4 для конфигурации с одним x8 и тремя x4 слотами PCI­E.

Дисковая конфигурация включает 4–8 внутренних дисков на двух встроенных каналах SCSI и 4 двухканальных RAID­контроллера по одному на каждый из доступных слотов PCI­E. Всего получается 10 SCSI­каналов, 8 из которых соединены с 4 внешними двухканальными дисковыми модулями. Основная задача данной конфигурации — достигнуть последовательной полосы пропускания дисковой подсистемы более 3 Гб/сек. Неясно, действительно ли E8500 может поддерживать такую полосу пропускания, но, по крайней мере, 1,5 Гб/сек — проверенный результат.

В любом случае оба чипсета E7520 и E8500 имеют весьма внушительные возможности в области полосы пропускания ввода­вывода. В них огорчает только то, что до сих пор применяется интерфейс HI для старых устройств, учитывая, что в чипсетах для настольных систем используется существенно улучшенный интерфейс DMI. Возможно, Intel не хотела рисковать, задерживая выпуск чипсетов E7520 и E8500 из­за не очень значительной новой технологии, но в следующем чипсете этот недостаток будет исправлен.

Тестирование чипсета AMD Opteron показало, что он в состоянии поддерживать пропускную способность дисковой системы на уровне 2,4 Гб/сек (об этом сообщили в Microsoft Research).

Память

Технически правильная оценка требований к памяти должна учитывать противоречие между нагрузкой на диски и объемом памяти, чтобы определить наилучшие характеристики в плане цены и производительности. Стоимость технической оценки, вероятно, превысит стоимость памяти почти всегда, кроме очень больших систем. В большинстве случаев разумная конфигурация памяти может быть определена на базе информации о типе операционной системы, версии SQL Server и количестве гнезд DIMM в системе. В табл. 6 представлено наиболее вероятное количество гнезд DIMM в зависимости от типа системы.

В табл. 7 приведены цены на ECC Re­gis­­tered модули памяти DDR2 PC2­3200 от Crucial (www.crucial.com) на март 2006 г.

В каждый заданный момент времени DIMM, выпускаемые в больших объемах, обладают, в сущности, линейной зависимостью между стоимостью и объемом. DIMM большого объема, выходящие малыми тиражами, обычно имеют гораздо более высокую стоимость в пересчете на 1 Гб. Примерно каждые два года модули DIMM класса high­end удваиваются в объеме. До недавнего времени стоимость модуля ECC DIMM на 2 Гб была более чем в четыре раза выше, чем модуля ECC DIMM на 1 Гб, то есть в два раза выше в пересчете на 1 Гб. Только недавно появились новые модули DIMM SKU объемом 2 Гб по значительно более привлекательной цене относительно модулей объемом 1 Гб. Цена оригинальных модулей DIMM объемом 2 Гб оста­лась такой же неблагоприятной. Скорее всего, потребуется еще два года для того, чтобы цена на модули ECC DIMM объемом 4 Гб стала сопоставима с ценой модулей объемом 2 Гб.

В большинстве случаев будет проще заполнить систему промышленными модулями DIMM максимального объема, на данный момент 1 или 2 Гб, чем проводить детальный анализ, кроме случаев, когда имеются ограничения со стороны ОС или версии SQL Server. Если известно, что дисковый ввод­вывод чув­ствителен к объему памяти и стоимость системы хранения данных высока, стоит использовать модули DIMM большого объема.

Система хранения данных

Самая серьезная и частая ошибка по отношению к системе хранения данных заключается в том, что во внимание принимается только объем как основное требование. Производители систем хранения должны быть осведомлены лучше, но и они склонны допускать эту оплошность. Систему хранения данных нужно проектировать с учетом как объема, так и производительности, которая определяется в терминах произвольного ввода­вывода и последовательной полосы пропускания при передаче данных. Сегодня объем отдельных дисковых накопителей таков, что для удовлетворения требований к производительности системы хранения он оказывается не относящимся к делу показателем.

В большинстве случаев следует покупать диски 10K или 15K наименьшего (в разумных пределах) объема. Разумно выбрать диски 10K на 73 Гб и диски 15K на 36 Гб. И те и другие обычно стоят по $200 за диск. Цены у производителей готовых систем могут быть на 50% выше. Цена за диск в системе SAN может превышать $2000. Когда стоимость следующих по объему дисков (146 Гб 10K и 73 Гб 15K) отличается не больше чем на 30%, они становятся дисками наименьшего разумного объема. Причина, по которой не стоит ждать равенства цен, в том, что диск большего объема может быть настроен для лучшей производительности произвольного ввода­вывода данных фиксированного размера. В терминах стоимости операции ввода­вывода диски 10K и 15K являются сравнимыми. Конфигурация системы хранения с дисками 10K будет иметь больший объем, а с дисками 15K — меньшую задержку при выполнении произвольных операций ввода­вывода.

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

Запросы при создании отчетов часто приводят к сканированию крупных таблиц или диапазонов индексов переменного размера с вовлечением большого числа строк. Если эти операции требуют обращения к данным на диске, система хранения будет полностью загружена, что приведет к невозможности обработки транзакций в системе. Одна из причин — в том, что запрос при создании отчета может вызвать большое количество упреждающих чтений с диска, из­за чего удлинится очередь в дисковой системе. Нормальные транзакции могут вызвать лишь небольшое число чтений с диска, вероятно, без упреждающих чтений. Поэтому, даже если заданный приоритет транзакции выше, чем приоритет отчета, в действительности приоритеты в системе хранения данных спроектированы в пользу запросов ввода­вывода для создания отчетов. Чтения с диска, вызванные транзакциями, окажутся в конце длинной очереди, образованной чтениями, вызванными построе­нием отчетов.

Оказывается, SQL Server 2000 имеет ограниченные возможности чтения с диска при выполнении операций сканирования таблиц. Без дополнительных настроек (hints) операция сканирования таблицы в SQL Server 2000 в большинстве систем способна создать нагрузку 300–400 Мб/сек в терминах чтений с диска. При использовании настройки NOLOCK сканирование таблицы может сгенерировать 700–800 Мб/сек дискового трафика. Если сконфигурированная система хранения имеет меньшую последовательную пропускную способность, сканирование таблицы может привести к перегрузке дисковой системы и вызвать основательное падение производительности дискового ввода­вывода, вызванного транзакциями. Если система хранения данных способна обрабатывать и последовательное сканирование таблиц, и произвольный транзакционный ввод­вывод, тогда, скорее всего, производительность транзакций не снизится в зависимости от производительности процессора и других ресурсов.

В SQL Server 2005 нет таких ограничений на по­следовательные дисковые операции. Операция сканирования таблицы в SQL Server 2005 на HP Super­dome с десятками двухканальных U320 SCSI RAID­контроллеров и 3–5 дисками на каждом канале может вызвать более чем 12 Гб/сек дискового трафика. Поэтому невозможно или непрактично конфигурировать систему хранения, превышающую показатели сканирования таблиц в SQL Server 2005. Положительный момент в том, что можно завершить запрос при по­строении отчета, который выполняется гораздо быстрее, и, таким образом, минимизировав время, на которое прерываются транзакции. Нечастые прерывания по 2–3 секунды будут почти незаметны. Это должно предостеречь вас от установки произвольных значений в договоре на уровня обслуживания (Service Level Agreements) на время отклика без всестороннего и детального понимания характеристик производительности базы данных и системы в целом, особенно если пользователь не ощущает значительных изменений. Всегда лучше задать высокий процент откликов в разумное время и разрешить низкий процент с более длительным интервалом, если только реальные и непоколебимые требования не диктуют по­другому.

Цели, к которым нужно стремиться в области производительности системы хранения данных, следующие. Последовательная полоса пропускания для файлов данных основной базы данных SQL Server должна быть не менее 400–800 Мб/сек в зависимости от требований. Рекомендованная для этих целей конфигурация приведена для систем хранения на базе SCSI, SAS и FC.

Хранилище, подсоединенное напрямую, на базе технологии U320 SCSI

•     2–8 дисков во внутренних системных отсеках на встроенном контроллере SCSI.

•     1–4 внешних дисковых модулей (14–15 отсеков) с двухканальным SCSI.

•     4–7 дисков на каждом канале внешнего модуля хранения, всего 8–14 дисков на модуль.

•     1 PCI­X или PCI­Express двухканальный RAID­контроллер на модуль хранения.

Целесообразность использования внутренних дисковых отсеков в том, что они уже оплачены вместе со встроенным контроллером. Отдельно купленный диск обойдется дешевле по сравнению с полной стоимостью внешнего хранилища, которая включает стоимость диска, внешнего модуля и контроллера. Даже в кластерной среде, где ресурсы кластеров должны быть общими, никогда не помешает обеспечить дополнительную полосу пропускания для неразделяемого ресурса.

Разумно использовать внешнее хранилище по следующим причинам. Каждый канал U320 SCSI с номинальной полосой пропускания 320 Мб/сек может в действительности поддерживать примерно 240–260 Мб/сек при последовательном перемещении больших блоков на диске. Чтобы полностью загрузить один канал U320, понадобятся 3 диска текущего поколения. При этом не всегда возможно использовать самую быструю часть каждого диска или добиться полностью последовательного перемещения. Внешние модули также имеют минимум по 7 отсеков на канал. Поэтому по всем этим причинам практичным будет использовать на одном SCSI­канале от 4 до 7 дисков. Внешние модули хранения 3U SCSI доступны с одним или двумя каналами SCSI. Конфигурирование более 7 дисков на одном канале — пустая трата последовательной полосы пропускания, поэтому избегайте использования модулей с одним каналом, если только вам не требуется очень большое число дисков, по­скольку при конфигурировании более 7 дисков на одном канале пропускная способность будет превышена. Устаревшие технологии продолжают встречаться в продуктах для хранения данных, поэтому избегайте модулей U160.

На рис. 5 представлены характеристики последовательного дискового чтения и записи для 15K SCSI­диска объемом 36 Гб текущего поколения. Начальная часть 15K диска может перемещать данные со скоростью более 90 Мб/сек. Производительность внутренней части все еще превышает 50 Мб/сек. Размещение данных может повлиять на производительность. Как правило, распространено размещение в начале диска данных, наиболее критичных к производительности, в середине — менее критичных, а в конце — резервных копий и вспомогательного хранилища.

Выбирая RAID­контроллер, следует рассмотреть двух­ или четырехканальные контроллеры. 64­разрядная шина PCI­X с частотой 133 МГц имеет номинальную полосу пропускания 1 Гб/сек, что может показаться достаточным для четырех каналов U320, способных поддерживать примерную скорость 250 Мб/сек каждый. Тем не менее пока неочевидно, что любой из имеющихся в наличии четырехканальных контроллеров PCI­X SCSI действительно может поддерживать более 500–600 Мб/сек. Поэтому лучше всего выбрать двухканальную модель, если только вам не требуется очень большое число дисков, когда пропускная способность двухканальных контроллеров будет превышена.

Fiber Channel/хранилище SAN

Fiber Channel был спроектирован для рынка устройств в целях хранения данных класса high­end. По некоторым причинам производители FC/SAN не спешили повышать пропускную способность FC с 2 до 4 Гбит/сек. Между тем U320 SCSI постепенно вытесняется 3 Гб/сек SAS, и даже оригинальный интерфейс SATA 1,5 Гбит/сек заменяется улучшенной версией 3 Гбит/сек. Можно поспорить, что FC на 4 Гбит/сек, который наконец­то выходит после долгой паузы со времени выпуска версии на 2 Гбит/сек, теперь быстрее, чем SAS и SATA. Однако интерфейсы SAS и SATA 3 Гбит/сек позволяют подключать от 1 до 4 дисков, тогда как системы SAN созданы для подключения 14–28 дисков по единственной линии связи 2–4 Гбит/сек, серьезно ограничивая последовательную пропускную способность.

Другая проблема с SAN­системами среднего уровня в том, что большинство из них строится на базе компонентов давно существующих серверных систем, таких как процессор Xeon с чипсетом ServerWorks GC­LE или RISC­процессоры с чипсетами, имеющими еще более низкую производительность. В то время ни один из существовавших чипсетов не мог предоставить хорошую полосу пропускания ввода­вывода, как это в состоянии сделать большинство чипсетов сегодняшнего дня. Поэтому SAN­системы среднего уровня в 20032005 гг. не были особенно практичным решением для достижения высокой последовательной полосы пропускания по разумной цене по сравнению с хранилищами, подсоединенными напрямую.

•     Предпочтительно использовать Fiber Channel на 4 Гбит/сек, а не 2 Гбит/сек FC.

•     Следует применять двухканальные контроллеры с 2 Гбит/сек FC на PCI­X и 4 Гбит/сек FC на PCI­X 2.0 или PCI­Express.

•     Необходимо использовать 12 FC­порта на 14­дисковый внешний модуль хранения.

Например, в линейке EMC Clarion CX 700 поддер­живает 8 портов FC к хостам и 8 портов к хранилищу. Конфигурирование 8 стоек по 14 дисков на 8 портах FC от хранилища к SAN и к хосту должно практически обеспечить максимальную поддерживаемую CX 700 скорость передачи в 1,3 Гб/сек. Для линейки HP EVA соответствующие контроллеры системы хранения — HSV110/210, которые имеют 2 порта к хостам и 4 к хранилищу. Каждая стойка из 14 дисков, подключенная к единственному контроллеру HSV, может предоставить последовательную полосу пропускания 300 Мб/сек, но для высокой пропускной способности на запись требуется больше дисков. С точки зрения общей производительности и практичности, 2 стойки дисков на HSV­контроллер обеспечат лучший баланс, чем 1 стойка на HSV­контроллер.

Serial Attached SCSI (SAS)

Рекомендованная конфигурация для дисков на основе новой технологии SAS пока неясна. Из всех крупных производителей только HP в настоящий момент предлагает SAS с внешним модулем хранения, 10 SFF­дисков в одном модуле 1U. SAS RAID­контроллер имеет 8 портов на 3 Гбит/сек. Для современных дисков, вероятно, будет разумным использовать 23 диска на порт, если будет подтверждено, что единственный адаптер сможет обслуживать комбинированную по­следовательную пропускную способность 1218 дисков. В противном случае рассчитывайте на 12 диска на порт. Два 6­портовых адаптера, 2 модуля хранения 1U и внутренние отсеки должны соответствовать базовому уровню производительности системы хранения данных SQL Server 2000. При конфигурации более высокой последовательной скорости передачи протестируйте полосу пропускания, возможную в каждой конфигурации, чтобы подобрать лучшее сочетание контроллера и диска.

Контроллеры и диски SATA

Многие сегодня интересуются контроллерами и дисками SATA, особенно теперь, когда ими наконец поддерживается технология NCQ (native command queuing). Низкая цена и высокий объем SATA­дисков особенно привлекает. Основной проблемой является то, что большинство SATA­дисков имеет скорость 7200 об./мин и нацелено на рынок настольных систем. Проектируемая продолжительность жизни диска в настольной системе — 1­2 года при нагрузке в 20%, в то время как большинство серверных дисков спроектировано для работы со 100%­ной нагрузкой в течение 5 лет. В основном по этой причине SATA­диски должны применяться в первую очередь в средах разработки, возможно, некоторых средах хранилищ данных и потенциально для хранения резервных копий, пока мы не узнаем больше об их надежности. Диски SATA на данный момент не следует использовать в рабочих средах обработки транзакций.

Выводы

Итак, 64­разрядная версия Windows Server 2003 обладает расширенными возможностями по использованию памяти даже в версии Standard Edition. В версии SQL Server 2005 Standard ограничения к памяти были сняты. 64­разрядная версия имеет полный доступ к огромному адресному пространству, в то время как 32­разрядная должна использовать сочетание PAE/AWE. Двухъядерные процессоры в большинстве случаев предпочтительнее процессоров с одним ядром благодаря более благоприятным условиям лицензирования. Конфигурация системы хранения данных должна учитывать производительность случайного и по­следовательного ввода­вывода как основной фактор. Это значит, что для системы будет практичным распределить нагрузку между возможно большим числом дисков и каналов ввода­вывода. Как всегда, протестируйте реальные характеристики производительности в окончательной конфигурации.

1 Имеется ввиду 15 тыс. оборотов в мину­ту. — Прим. ред.

Табл. 1

Количество гнезд для процессоров

Одно

Два

Четыре

Чипсет

E7230

E7520

E8500

Количество двухъядерных процессоров

1

2

4

Количество гнезд для памяти

4

6–8

16–32

Поддерживаемая конфигурация PCI­Express

1´8, 1´4

3´8

3´8, 1´4

Встроенные контроллеры;
RAID­контроллеры

SATA
1

SCSI
2

SCSI
4

Каналы SCSI

Внутр. SATA
2 внешних

2 внутренних
4 внешних

2 внутренних
8 внешних

Внешние модули хранения данных

1

2

4

Дисковые накопители — внутренние и внешние

2–4
8–14

4–6
16–28

4–8
32–56

Последовательная полоса пропускания

Не менее 600 Мб/сек

Не менее 1,2 Гб/сек

Не менее 2 Гб/сек

 

* Один слот x8 может быть сконфигурирован как два слота x4 или преобразован в 2 шины PCI­X.

Табл. 2

Поддержка процессоров и памяти Windows Server 2003 R2 в зависимости от версии

Standard Ed. 32­bit / 64­bit

Enterprise Ed. 32­bit / 64­bit

Datacenter Ed.
32­bit / 64­bit

Максимальное число процессоров (гнезд)

4 / 4

8 / 8

32 / 64

Максимальный объем памяти

4 Гб / 32 Гб

64 Гб / 1 Тб

64 Гб / 1 Тб

 

Табл. 3

Поддержка процессоров и памяти SQL Server 2000 в зависимости от версии

Standard Ed.
32­bit / 64­bit

Enterprise Ed.
32­bit / 64­bit

Максимальное число процессоров (гнезд)

4

Не ограничено

Максимальный объем памяти

2 Гб

64 Гб / 512 Гб

 

Табл. 4

Поддержка процессоров и памяти SQL Server 2005 в зависимости от версии

Workgroup

Standard Ed.
32­bit / 64­bit

Enterprise Ed.
32­bit / 64­bit

Максимальное число процессоров (гнезд)

2

4

Не ограничено

Максимальный объем памяти

3 Гб

Максимальный, под­дер­живаемый ОС

Максимальный, под­держиваемый ОС

 

Табл. 5

Процессор

Количество гнезд

Комментарии

AMD Opteron

1–4

Для любых целей, лучшие характеристики в среднем

Intel Pentium D

1

Начальный уровень

Intel Core Duo

1

Начальный уровень, низкое энергопотребление, только 32разрядная версия

Intel Xeon

2

Средний уровень, прекрасная производительность при сканировании таблиц, для приложений, активно использующих сеть, предпочтительно наличие технологии Hyper­threading

Intel Xeon MP

4–32

То же

Itanium

2–64

Класс high­end, отлично подходит для полностью 64­разрядной масштабируемой среды. Двухъядерная версия выйдет в середине 2006 г.

 

Табл. 6

Процессор

Чипсет

Количество гнезд для процессоров

Количество гнезд DIMM

Максимальных объем памяти

Opteron

8000

2

8

16–32 Гб

Opteron

 

4

32

32–128 Гб

Pentium D

E7230

1

4

8 Гб

Xeon

E7520

2

6–8

12–16 Гб

Xeon MP

E8500/8501

4

16–32

32–64 Гб

 

Табл. 7

Объем

Цена (март 2006 г.)

512 Мб

$100

1 Гб

$190

2 Гб

$1000/550

 

Новые конечные точки HTTP создают Web-службы SQL Server 2005. Часть 2*

Питер Дибетта (Peter DeBetta)

Клиент, применяющий Web-службу

Применение Web­службы, созданной в SQL Server 2005 в качестве конечной точки HTTP аналогично применению Web­службы, созданной на C#. Это достоин­ство Web­служб и SOAP. Начните новое приложение Windows и Visual Studio.NET и добавьте в форму следующие элементы управления (ТипЭлемента: имя):

•     Button: btnExecSP;

•     DataGridView: dgvProduct;

•     ListBox: lstProducts;

•     PictureBox: picProduct.

Вам понадобится добавить ссылку на Web до написания кода. Для этого можно перейти по адресу http://server/awproducts?wsdl. Помните, что объект, на который ссылаются в сети, называется server_AWProducts (имя моего компьютера win2k301, так что в обозревателе я увижу http://win2k301/awproducts?wsdl, а ссылочным объектом служит win2k301_AWProducts). Следует поправить код, чтобы он соответствовал созданному вами имени.

XML в SQL Server 2000 и SQLXML. Часть 2*

Даршан Сингх (Darshan Singh)

В первой части статьи рассказывалось, как применять FOR XML для преобразования реляционного набора строк в XML. Функция OPENXML имеет прямо противоположное назначение и может использоваться для преобразования XML в реляционный набор строк. Например, она пригодится в том случае, если у вас есть XML и вы хотите получить представление в виде набора строк поверх него, которое вы могли бы применять для изменения реляционных табличных данных.

Процесс применения OPENXML состоит из трех шагов.

Воспользуйтесь sp_xml_preparedocument, чтобы загрузить XML­документ и создать его представление в памяти. Эта хранимая процедура возвращает описатель (handle), который можно задействовать только в рамках данного подключения. Если ваш XML­документ содержит пространства имен (по умолчанию или с именем­префиксом), нужно указать их данной хранимой процедуре.

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

Когда вы закончили работу и вам больше не нужен XML­документ в памяти, вызовите sp_xml_removedocument.

Быстрая обработка текстов в SQL Server

Алекс Козак (Alex Kozak)

Обработка текстов или длинных строк обычно превращает SQL в обычный процедурный язык. Изучите несколько методик, позволяющих облегчить и ускорить этот процесс. Обработка текстов или длинных строк в SQL никогда не была простой задачей. Язык SQL — мощное средство для быстрой обработки наборов данных, но здесь его возможности находятся на уровне прозаичного процедурного языка. В этой статье рассказывается о нескольких методиках, которые позволяют облегчить быструю обработку текста в SQL. Хотя это демонстрируется на примере SQL Server, вы можете применять основные идеи и в других СУБД — с небольшими корректировками. Кроме того, никакие средства третьих фирм, расширенные хранимые процедуры, пользовательские функции или объекты, написанные на других языках программирования, не используются — только SQL (или Transact­SQL).

С помощью этих методик вы сможете без применения циклов:

•     определить количество слов в тексте;

•     определить длину и позицию любого слова в тексте;

•     определить число повторений символа (маски символов) и их позиции в тексте;

•     определить частоту использования любого от­дельного слова или символа в тексте;

•     устранить дубликаты символов;

•     устранить лишние пробелы между словами или строками текста;

•     преобразовать текст согласно заданному формату (например, задать длину строк в тексте или применить более сложное форматирование).

 

(Возврат на основную страницу)

Hosted by uCoz