Byte/RE ИТ-издание

К вопросу о масштабируемости информационных систем с высокой нагрузкой

Константин Иванов

В канун Нового года в Центре компетенции компании "Крок" (http://www.croc.ru)
были завершены исследования, до сих пор на российском ИТ-рынке не проводившиеся.
Предметом их стала масштабируемость СУБД Microsoft SQL Server 2000 Enterprise
Edition под управлением Microsoft Windows 2000 Datacenter Server на аппаратной
платформе одной из последних моделей IBM – сервера xSeries 440.

Средоточение компетенции

Практика создания центров компетенции весьма распространена на Западе в отношениях между вендорами и крупными системными интеграторами. Такие подразделения обычно создаются с целью разработки и тестирования готовых решений для задач клиентов. Эта практика позволяет заказчикам оценивать качество того или иного решения еще до его покупки. К сожалению, в России до сих пор бытует иной подход: как правило, крупные корпоративные заказчики сначала приобретают решения и только потом тестируют их на предмет соответствия своим задачам. При положительном исходе тестирования решение подлежит тиражированию, при отрицательном – забвению. В результате внедрение затягивается, а в худшем случае средства и вовсе оказываются потрачены неэффективно.

Еще одна причина для создания подобных центров компетенции – возможность объединить знания специалистов компании-интегратора и вендора. Плотное общение ведущих специалистов при решении задач заказчиков повышает их общую компетентность.

Что касается Центра компетенции компании "Крок", то нельзя не упомянуть о некоторых его особенностях. Во-первых, это мультивендорность: в работе Центра компетенции наряду с представителями Microsoft принимают участие специалисты компаний Intel, IBM, HP, "Документум", "Элвис+". Кроме того, общение с ведущими мировыми производителями позволяет специалистам Центра не просто знакомиться с передовыми разработками до появления их на рынке, но и проводить их комплексное тестирование.

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

Вопросы по существу

Исследования, о которых идет речь, компания "Крок" проводила с целью решения прикладной задачи своего постоянного заказчика – крупного коммерческого банка. Заказчик был заинтересован в совершенствовании своей информационной системы, в основе которой лежит база данных, разработанная ИТ-подразделением самого банка, распределенная по всем его отделениям и эксплуатируемая уже продолжительное время. Стратегия развития информационной системы банка подразумевает централизацию и, как следствие, размещение базы данных в одной точке, что уже само по себе ставит перед ИТ-специалистами целый комплекс задач. Однако система заказчика имеет и еще одну характерную особенность: при разработке вся бизнес-логика была заключена в хранимых процедурах. Такая организация выдвигает повышенные требования к серверу базы данных, который может стать узким местом всей системы в целом. В условиях централизации базы данных сложность проблемы возрастает многократно. Итак, прикладная задача была сформулирована следующим образом: обеспечить требуемую масштабируемость сервера базы данных.

Специалисты компании "Крок" предложили несколько решений этой задачи. Одно из них заключалось в том, чтобы изменить структурную организацию системы и перенести некоторые элементы бизнес-логики на средний уровень системы – сервер приложений. В этом случае на долю сервера БД приходилось бы лишь хранение и модификация прикладных данных. С целью минимизации затрат предполагалось перенести на сервер приложений ровно столько элементов бизнес-логики, сколько потребовалось бы для разгрузки сервера БД. А сервер приложений уже можно было масштабировать. Кроме того, предполагалось, что переносимая бизнес-логика должна быть портирована на технологию .NET, позволяющую, по заявлениям представителей Microsoft, увеличить производительность сервера приложений в несколько раз. Таким образом, когда принципиальное решение было найдено, возникла задача создать прототип банковской системы заказчика и провести ее нагрузочное тестирование.

Одновременно в ходе тестирования исследовалась возможность использования технологии .NET для построения информационных систем с высокой нагрузкой.

Что тест грядущий нам готовит?

Для создания прототипа банковской системы и его тестирования был выбран расчетно-кассовый модуль системы. Выбор именно этого фрагмента обусловлен тем, что с ним работает наибольшее количество пользователей и он предъявляет самые высокие требования к масштабируемости. Заказчик сформулировал следующие требования к тестируемой системе: 3000 пользователей, интенсивность ввода документов 0,75 документа в минуту (стандартный режим функционирования) и 1,5 документа в минуту (режим удвоенной интенсивности). Норма критического времени отклика системы не должна была превышать 5 с. В соответствии с этим число пользователей, при котором время отклика превышало выбранный порог, использовалось в качестве интегральной оценки производительности исследуемой программно-аппаратной конфигурации.

Прототип системы, разработанный при помощи Microsoft Visual Studio .NET, был реализован в трехуровневой архитектуре. Структурно прототип состоял из сервера приложений, реализованного в виде Web-сервиса на языке C#, клиента – графического интерфейса пользователя системы в стандарте Windows Forms и сервера базы данных. Сервер приложений должен был предоставлять пользователю интерфейсы для работы с данными и бизнес-логикой, реализуемой внутренними объектами системы. Сервер БД использовался для хранения и модификации прикладных данных, обеспечения их физической и логической целостности, а также для контроля конкурентного доступа к ним. Помимо хранения информации, сервер БД посредством хранимых процедур выполнял основную часть бизнес-логики системы. База данных была реализована на СУБД Microsoft SQL Server 2000 Enterprise Edition.

Для исследования прототипа банковской системы был создан тестовый стенд, состоявший из сервера СУБД, трех серверов приложений, контроллера домена и группы нагрузочных серверов (рис. 1). В качестве сервера БД использовался xSeries 440 – самый мощный на сегодня сервер корпорации IBM на базе процессора Intel Xeon MP. Как отметил Алексей Добровольский, заместитель директора департамента информационных технологий компании "Крок", это первый в индустрии 8-процессорный сервер на процессорах Intel Xeon MP с поддержкой технологии Hyper-Threading. Сервер, по словам г-на Добровольского, содержит множество архитектурных и технологических новшеств, обеспечивающих высокую производительность, масштабируемость и надежность. Еще одна особенность сервера – поставка в комплекте с операционной системой Microsoft Windows 2000 Datacenter Server, ранее ни разу не поставлявшейся в Россию. Характеристики компонентов тестового стенда приведены в таблице.

Fig.1 Рис. 1. Структура тестового стенда.


Характеристики тестового стенда

  Сервер базы данных* Серверы приложений Контроллер домена Станции нагружения**
Процессор 8 х Xeon MP 1,6 ГГц Pentium 4 1,6 ГГц Pentium 4 1,6 ГГц Pentium III 800 МГц;
ОЗУ 8 Гбайт 1 Гбайт 1 Гбайт 320 Мбайт
Операционная система Windows 2000 Datacenter Server Windows .NET Server 2003 RC1 с сервером приложений IIS 6.0 Windows 2000 Advanced Server Windows 2000 Advanced Server

*Кроме того, в конфигурацию входили два жестких диска Ultra3 SCSI по
9,1 Гбайт, RAID-массив; на сервере работала СУБД Microsoft SQL Server
2000 Enterprise Edition.

** Рабочие станции для моделирования нагрузки.

Функционирование сервера базы данных, сервера приложений и контроллера домена
было организовано в выделенной локальной сети (100 Мбит/с).

Особо следует отметить, что для моделирования нагрузки были специально разработаны так называемые нагрузочные сценарии и утилиты. Сценарии создавались во взаимодействии со специалистами из компаний IBM и Microsoft в четком соответствии с планом и моделью тестирования. План тестирования был согласован с заказчиком и содержал описание вариантов использования системы и параметры выполнения технологических операций.

Итоги

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

Использованная при тестировании комбинация Microsoft SQL Server 2000 Enterprise Edition под управлением Microsoft Windows 2000 Datacenter Server на аппаратной платформе IBM xSeries 440 показала весьма высокую производительность и масштабируемость. При максимальной нагрузке, развиваемой при проведении тестов, загрузка процессоров сервера базы данных не превысила 32,5% (рис. 2). Если же принять во внимание, что сервер может поставляться с 16 процессорами, то, как считает Алексей Добровольский, на данный момент у сервера базы данных есть большой запас по нагрузочной способности.

Fig.2 Рис. 2. Уровень загрузки процессоров при одновременной работе 3000 пользователей, интенсивность ввода документов – 1,5 документа в минуту.


Результаты тестирования подтвердили производительность и надежность технологии .NET, заявленную корпорацией Microsoft. Как подчеркнул Алексей Добровольский, несмотря на некоторое количество ошибок, выявленных в компиляторе и в среде исполнения, их количество не препятствует реализации крупных проектов. Кроме того, по сравнению с технологией разработки Web-приложений предыдущего поколения (Microsoft Active Server Pages + COM) производительность увеличилась в десятки раз. Так, если при реализации сложной логики обработки данных на ASP можно было рассчитывать на масштабируемость до 100 пользователей на один процессор сервера, то в проведенных тестах достигалась нагрузка 1000 пользователей на один процессор при неполной загрузке процессора. Таким образом, считает Алексей Добровольский, пригодность технологии .NET для построения многопользовательских информационных систем с высокой нагрузкой сомнений не вызывает.

Продемонстрирована высокая нагрузочная способность и надежность предварительной версии Windows .NET Server 2003 RC1, установленной наряду с сервером IIS 6.0 на серверах приложений. При проведении тестов не было зарегистрировано ни одного сбоя.

Говоря о преимуществах комбинации Microsoft SQL Server 2000 Enterprise Edition под управлением Microsoft Windows 2000 Datacenter Server на аппаратной платформе IBM xSeries 440, достаточно вспомнить, что полученные значения показателей производительности и масштабируемости ранее считались достижимыми лишь при использовании других серверных архитектур. В частности, как полагает Алексей Добровольский, в настоящий момент альтернативы рассмотренной платформе нет, а аналогичная по возможностям платформа других производителей может появиться не раньше, чем через шесть месяцев.

 

Перспективы комплекса

В компании "Крок" не без оснований считают, что масштабируемость разработанного
программно-аппаратного комплекса заинтересует банковские и финансовые
структуры, а его высокая надежность – целый ряд компаний, использующих
приложения, для которых критичны отказы и сбои системы. Александр Буйдов,
директор "Крок" по информационным технологиям, так прокомментировал позиции
своей компании в отношении конкурентов: "Характеристики предлагаемого
нами программно-аппаратного комплекса в сочетании с его привлекательной
ценой позволяют говорить о том, что он не имеет аналогов. Кроме того,
у компании "Крок" имеются все необходимые ресурсы и статусы для поставки,
развертывания и обслуживания данного программно-аппаратного комплекса.
Только "Крок" является одновременно партнером и IBM, и Microsoft уровня
Gold сразу в трех категориях: "Корпоративные системы", "Решения для коллективной
работы" и "Техническая поддержка".

Вам также могут понравиться