автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.11, диссертация на тему:Анализ производительности распределенных информационных систем

кандидата физико-математических наук
Рачинский, Евгений Станиславович
город
Санкт-Петербург
год
2010
специальность ВАК РФ
05.13.11
Автореферат по информатике, вычислительной технике и управлению на тему «Анализ производительности распределенных информационных систем»

Автореферат диссертации по теме "Анализ производительности распределенных информационных систем"

САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

На правах рукописи 0ИЧОЫ4--'—

Рачинский Евгений Станиславович

АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ РАСПРЕДЕЛЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМ

05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ

диссертации на соискание ученой степени кандидата физико-математических наук

Санкт-Петербург 2 О М ' ■'"] ^{рО

2010

004602380

Работа выполнена на кафедре системного программирования математико-механического факультета Санкт-Петербургского государственного университета.

Научный руководитель - доктор физико-математических наук, профессор Терехов Андрей Николаевич

Официальные оппоненты - доктор технических наук, профессор,

Лисс Александр Рудольфович (ОАО «Концерн «Океанприбор»»)

кандидат физико-математических наук Бугайченко Дмитрий Юрьевич (Санкт-Петербургский государственный университет)

Ведущая организация - Институт систем информатики им. А.П. Ершова

СО РАН

Защита состоится « 0. Об, /О

» в « /с часов на заседании совета Д 212.232.51 по защите докторских и кандидатских диссертаций при Санкт-Петербургском государственном университете по адресу: 198504. Санкт-Петербург. Старый Петергоф. Университетский пр., д.28, математико-механический факультет, ауд. 405.

С диссертацией можно ознакомиться в Научной библиотеке им. М.Горького Санкт-Петербургского государственного университета по адресу: 199034, Санкт-Петербург, Университетская наб., д.7/9.

Автореферат разослан « А 2010 г.

Ученый секретарь диссертационного совета доктор физико-математических наук, профессор

И.К.Даугавет

Общая характеристика работы

Введение

Рост и широкое распространение крупных распределенных клиент-серверных приложений (ЕЯР-систем, систем автоматизации бизнеса и т.д.) порождает многочисленные специальные задачи по их разработке. Одна из таких задач -реализация требований по производительности. Производительность является одной из ключевых бизнес-характеристик больших клиент-серверных систем, а их несоответствие таким требованиям может повлечь за собой большие финансовые и физические потери при эксплуатации и едва ли не полную повторную реализацию.

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

Актуальность

Для решения задач по анализу производительности существует большое количество математических и инженерных подходов. Их можно разделить на три основных направления: аналитическое моделирование, имитационное моделирование и экспериментальный анализ производительности. Первые два направления основываются на создании математических моделей, однако сложны в применении к крупным распределенным системам. Это связано с трудностью построения подробных

математических моделей для реальных систем - не просто получить достоверные значения для всех многочисленных параметров таких моделей. На практике чаще применяются подходы третьего направления: с помощью различных специализированных программных средств исследуются уже существующие системы или их прототипы путем измерения показателей производительности по реакциям систем на внешне контролируемые воздействия. Однако открытой проблемой таких инструментов является гибкость, то есть обеспечение возможности имитации достоверной нагрузки и оценки различных характеристик производительности с учетом многочисленных индивидуальных особенностей реальных систем, а так же наличие способов интеграции с другими инструментами обеспечения качества ПО. Дело в том, что крупные клиент-серверные системы имеют многочисленные индивидуальные черты. Они используют закрытые коммуникационные протоколы, имеют различные архитектурные особенности, при их создании и сопровождении часто используются специфические средства разработки и т.д. Существует ряд готовых инструментов (HP Loadrunner, IBM Rational Performance Tester и др.), но они эффективны только для конкретных типов систем и узкого круга средств разработки, и к тому же они имеют очень высокую стоимость. Настройка подобных систем с учетом многочисленных нестандартных особенностей конкретных клиент-серверных систем является очень трудоемкой задачей и во многих случаях невозможна.

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

Результаты, выносимые на защиту

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

1. Создана модель распределенной нагрузки для клиент-серверной системы, позволяющая гибко управлять нагрузкой во время эксперимента, в том числе динамически менять параметры нагрузки в зависимости от отклика системы.

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

3. Создана архитектура расширяемой и гибко настраиваемой компонентной технологии PEToDA (Performance Evaluation Tools on Demand Assembling), основанная на платформе Eclipse и позволяющая реализовывать различные расширения, учитывающие особенности исследуемых систем, в частности, различные протоколы и способы взаимодействия клиентов и сервера, разнообразные методы регистрации измерений, семантики откликов системы, способы статистического анализа измерений.

4. Выполнена реализация технологии PEToDA на платформе Java/Eclipse.

5. Создана методика развертывания технологии PEToDA при использовании в разработке клиент-серверных распределенных систем, позволяющая учитывать их индивидуальную специфику.

6. Выполнена апробация технологии PEToDA для анализа производительности двух крупных клиент-серверных систем: внутреннего Web-портала компании Siemens (Мюнхен, Германия) и системы управления информацией о продукции компании Heiler Software (Штутгарт, Германия).

Новизна

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

Новизной обладает также предложенная в работе идея конфигурировать все аспекты нагрузочного эксперимента программно, в частности, описывать сценарии и стратегии нагрузки на языке программирования общего назначения (на языке Java), а не с помощью интерпретируемых настроек, как это реализовано в таких средствах, как HP Loadrunner, ТРТР или Silkperformer. Такой подход неэффективен, если клиент-серверная система, для которой разворачивается технология, не имеет индивидуальной специфики. Но крупные клиент-серверные приложения, как правило, имеют такую специфику. Поэтому использование обычного языка программирования, концепции расширяемых frameworks, а также компонентная архитектура PEToDA - все это позволяет точно, эффективно и с приемлемыми трудозатратами реализовать нужную в проекте функциональность по анализу производительности.

Технология PEToDA основывается на концепции расширяемых frameworks, которая активно развивается и используется в сообществе Eclipse. Однако до сих пор в области анализа производительности не было создано ни одной подобной технологии.

Публикации и доклады

Основные результаты диссертации отражены в работах [1-5]. Статья [1] опубликована в журнале, входящем в перечень ВАК. Статьи [3, 5] написаны в соавторстве. В работе [3] соискателю принадлежит постановка задачи и схема изложенного подхода (раздел «Proposed Approach: Process»). В работе [5] соискателю принадлежат разделы «Common Performance Modeling Techniques» и «Service Performance Emulation».

Результаты работы докладывались также на европейском Eclipse-форуме в 2009 году в городе Ludwigsburg, Германия (название доклада - «Building a Load Testing Tool Using Eclipse Technologies»), а также на международной конференции SQA Days 2008, Москва (название доклада - «Компонентная среда разработки инструментария нагрузочного тестирования»).

Апробация

Технология PEToDA использовалась при решении ряда практических задач: при анализе производительности и планировании возможностей (Capacity Planning) корпоративного портала компании Siemens (Мюнхен, Германия), а также при разработке инфраструктуры нагрузочного тестирования системы по управлению информацией о продукции крупного промышленного предприятия (Heiler Software, Штутгарт, Германия). Помимо промышленных испытаний был произведен ряд лабораторных апробаций технологии: поиск оптимальных значений параметров Web-cepBepa Apache и построение эмпирической модели времени отклика Web-службы авторизации.

При апробации использовались следующие метрики производительности: среднее время ответа системы, средняя частота ответов, частота отказов. Среднее время ответа

У-t-

системы вычислялось так: t = где C¿ - это время ответа системы на воздействия в рамках одной итерации нагрузочного сценария, а п - количество итераций. Средняя частота ответов системы вычислялась следующим образом: Д = у, где щ — это количество успешных итераций нагрузочного сценария, а Т— промежуток времени, в котором производится оценка. В случае, когда коэффициент загруженности системы приближается к 1, частота ответов приближается к максимальной пропускной способности системы для данного типа сценариев. Частота отказов определялась так:

- пе

е = —, где пе — это количество итерации нагрузочного сценария, в которых произошли ошибки. В качестве метрики загруженности системы использовалось среднее значение длины очереди ожидания доступа клиентов к ресурсам. В рамках технологии PEToDA возможно использовать и другие, более сложные метрики производительности, в частности, время ожидания ответа системы может быть описано с помощью экспоненциального, гипер-экспоненциального или логнормального распределения, а также с помощью распределения Эрланга.

Структура и объем диссертации

Диссертация состоит из введения, четырех глав (со сквозной нумерацией разделов, рисунков и таблиц), заключения и списка литературы. Текст диссертации

изложен на 105 страницах и содержит 22 рисунка. Список литературы содержит 68 наименований.

Основное содержание работы

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

Первая глава содержит обзор существующих подходов и концепций в области анализа производительности. В ней излагается концепция инженерного эксперимента, которая уточняется для использования в экспериментальном анализе производительности (см. рис. 1). Далее описываются различные, существующие на данный момент, экспериментальные модели нагрузки, приводится обзор используемых в индустрии программных средств нагрузочного тестирования, делаются выводы о необходимости разработки новой технологии для экспериментального анализа производительности. После этого описываются задачи, которые могут быть решены с применением такой технологии. В заключении излагается концепция расширяемых frameworks платформы Eclipse, используемая при реализации PEToDA, и описывается пакет для статистического анализа измерений производительности R-statistics, с которым PEToDA интегрируется.

Формулировка выводов и рекомендаций \___)

I

а)

Рис. 1. а) процедура классического эксперимента, б) процедура эксперимента по анализу производительности.

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

Модель нагрузки М для данного нагрузочного эксперимента задается так:

М = (5,2, Ю,

где 5 - это пользовательский сценарий, 1 - это случайная величина, определяющая продолжительность паузы между итерациями сценария, а N — это количество параллельных потоков исполнения сценария 5.

Формулировка выводов и рекомендаций б)

Пользовательский сценарий определяется так: 5 = {(5Сер1,5еер2.....

где 5£ер, - это шаг сценария, а X - это случайная величина, определяющая продолжительность пауз между шагами данного сценария 5.

Шаг сценария определяется следующим образом:

з1еР1 = {(г',г2(.....4), Г},

где 7}' - это отдельный запрос, а К1 - это случайная величина, определяющая продолжительность пауз между запросами.

Главными параметрами модели являются 2 и Л/, которые могут задаваться двумя способами: как значения функции (Я), где Я - это вектор откликов системы, либо как значения функции 5/(£), где £ — это время относительно начала эксперимента. Функцию 5/ будем называть стратегией нагрузки. Определение функции 5/" зависит от целей эксперимента.

В третьей главе описывается технология РЕТоБА, реализующая предложенную модель нагрузки и обобщенную архитектуру генератора нагрузки. Описывается модель типового инструментария, который пользователи могут создавать с помощью РЕТоОА для решения своих задач. Типовой инструментарий рассматривается в следующих измерениях:

• типовая функциональность (рис. 2);

• обобщенный процесс функционирования (рис. 3);

• компонентная модель (рис. 4);

• распределенная архитектура периода исполнения (рис. 5).

1. Планирование, управление и контроль

Спецификация нагрузки

Управление нагрузкой

Контроль измерений

Хранилище результатов

1 {

2. Генерация нагрузки и измерение

Генерация нагрузки

Регистрация отклика

3. Анализ результатов

Статистический анализ

Формирование отчетов

Обработка измерений

Рис. 2. Функциональность типового ннструментарня.

Функциональность типового инструментария состоит из нескольких уровней — см. рис 2. На уровне «Планирование, управление и контроль» задается нагрузка и производится управление ходом эксперимента. На уровне «Генерация нагрузки и регистрация отклика» производится генерация нагрузки в виде потока запросов к исследуемой системе, а также осуществляется регистрация внутренних и внешних откликов системы. На уровне «Анализ результатов» производится статистический анализ результатов эксперимента и автоматическое создание отчетов.

Рис. 3. Обобщенный процесс функционирования целевого инструментария.

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

Рис. 4. Компонентная модель целевого инструментария.

Компоненты целевого инструментария разделяются на два типа (см. рис. 4). Первый тип - это базовые сервисы инструментальной платформы (на рисунке они выделены темным цветом). Эти компоненты реализуют функциональность, которая стандартна и неизменна для всех экземпляров инструментария, создаваемого с помощью РЕ'ГоОА: генерация потока запросов, протоколирование измерений, взаимодействие с пользователем во время эксперимента и т.д. Второй тип - это инструментальные компоненты (на рис. 4 они выделены белым цветом), которые зависят от индивидуальных требований контекста, предъявляемых к экземпляру инструментария, и должны быть реализованы разработчиками, использующими РЕТоБА. Индивидуальные требования контекста прежде всего обуславливаются функциональностью исследуемой системы, интерфейсами доступа к ней, технологиями реализации и конкретными проблемами, которые решаются с помощью РЕТоОА. Реализация инструментальных компонент завит также от специфических способов

статистической обработки измерений и индивидуальных требований по управлению ходом эксперимента.

РС управления

Контейнер управления а

: 6 изуал иаацкя^~| измерений :Консоль управления ^

'.Семантика из ме рений ¡Стратегия нагрузки ^

'.Управление экспериментом ¡Хранилище измерении

Удаленный РС агента

Распределенный агент

а

¡Сценарий Ц] нагрузки Статистическая ¿П обработка

¡Семантика измерений Сервис €} протоколирования

¡1 енератор нагрузки :Сетевое ¿П взаимодействие т_1

а

Анализ результатов

а

Создание отчетов

Исследуемая систем« и » окружение

Рис. 5. Распределенная архитектура периода исполнения.

Далее описывается архитектура целевого инструментария периода исполнения, схематично представленная на рис. 5. Эта архитектура является распределенной: подсистема управления экспериментом, генератор нагрузки и сама исследуемая система могут быть расположены на разных компьютерах и взаимодействовать по сети, что необходимо для исключения косвенного взаимного влияния и искажения результатов эксперимента.

После этого подробно описываются инструментальная платформа РЕТоБА - базовые сервисы, библиотеки и другие ресурсы, общие для всех целевых инструментов, получаемых с помощью РЕТоВА.

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

В четвертой главе описывается апробация PEToDA при модернизации нутреннего портала компании Seimens (Мюнхен, Германия), а также использование ехнологии при разработке и сопровождении системы по управлению информацией о родукцт крупного промышленного предприятия (компания Heiler Software, Штутгарт, ермания).

Портал компании Siemens представляет собой крупную информационную истему, объединяющую сотни внутренних информационных служб компании в единый ервис. Портал построен на базе Java-технологий с применением распределенных ерверов приложений. Общее количество пользователей системы превышает 500 тысяч еловек. В результате пересмотра архитектуры портал был переведен на активное спользование технологии Web-сервисов. Перевод осуществлялся постепенно, в несколько этапов. При этом одним из важнейших требований было обеспечение контроля производительности системы для каждой новой версии. Технология PEToDA была использована для разработки инструментария нагрузочного тестирования ряда новых версий системы. Разработанный инструментарий позволил автоматически оценивать пропускную способность системы для заданных сценариев, а также контролировать статистические характеристики времени ответа (среднее, дисперсию, медиану, квантили). В результате PEToDA позволила существенно упростить процедуры контроля производительности системы при ее дальнейшей эволюции.

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

собственный коммуникационный протокол). PEToDA применялась для решения задач поиска и устранения «узких» мест, для контроля производительности новых версий, а также для планирования производительности сервера под высокими нагрузками. В результате были обнаружены ошибки в обработчике запросов к серверу, структурные ошибки в базе данных, использование некорректной конфигурации протокола TCP/IP, ошибки в параллельных алгоритмах и пр. Устранение данных ошибок позволило уменьшить время отклика сервера в 2-3 раза и увеличить его пропускную способность в 1.5 раза.

В заключении приводятся основные результаты работы.

Публикации автора по теме диссертации

Статьи в журналах, рекомендованных ВАК

1. Е.Рачинский. Программная среда для оценки производительности клиент-серверных систем при нагрузочном окружении. Научно-технические ведомости СПбГПУ, № 5, 2008. Санкт-Петербург. С. 105-111.

Другие публикации

2. Е. Rachinskiy. Automated Performance Bottleneck Discovery in WEB Services Compositions. AIS Conference 2007, Russia. P. 34-37.

3. E. Rachinsky, L. Olkhovich, A. Hennig. Using Partly-Emulated Execution Environment for Measuring QoS-related Parameters of Business Processes // Proceedings des 6. Workshop des Arbeitskreis PEAK, Berlin, 2005 Environment Testing. P. 9-18.

4. E. Rachinskiy. Performance Prediction of Service Based Systems. Proceedings of Net.ObjectDays 2005 (ASG PhD Session). Erfurt, 2005. P. 97-110.

5. B. Kempter, E. Rachinskiy, L. Olkovich. Performance Engineering Methodology. ASG Public Deliverable. 2007. 52 p. http://asg-platfonn.org/.

Подписано к печати 31.03.10. Формат 60 ><84 1/16 . Бумага офсетная. Гарнитура Тайме. Печать цифровая. Печ. л. 1,0. Тираж 100 экз. Заказ 4666. Отпечатано в Отделе оперативной полиграфии Химического факультета СПбГУ 198504, Санкт_Петербург, Старый Петергоф, Университетский пр., 26 Тел.: (812) 428-40-43,428-69-19