Электронная библиотека диссертаций и авторефератов России
dslib.net
Библиотека диссертаций
Навигация
Каталог диссертаций России
Англоязычные диссертации
Диссертации бесплатно
Предстоящие защиты
Рецензии на автореферат
Отчисления авторам
Мой кабинет
Заказы: забрать, оплатить
Мой личный счет
Мой профиль
Мой авторский профиль
Подписки на рассылки



расширенный поиск

Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Артемьев Александр Борисович

Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах
<
Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах
>

Диссертация - 480 руб., доставка 10 минут, круглосуточно, без выходных и праздников

Автореферат - бесплатно, доставка 10 минут, круглосуточно, без выходных и праздников

Артемьев Александр Борисович. Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах : Дис. ... канд. техн. наук : 05.13.13 Москва, 2005 120 с. РГБ ОД, 61:05-5/4057

Содержание к диссертации

Введение

1. Технологии взаимодействия в распределенных системах 8

1.1. Принципы построения распределенных систем 8

1.2. Модель взаимодействия «клиент-сервер» 12

1.2.1. Клиенты и серверы вычислительных сетей 13

1.2.2. Взаимодействие с базами данных 16

1.23. Развис модели «клиент-сервер» для распределенных вычислении 19

1.3. Распределенные объектные технологии 22

1.3.1. Основные сведения о технологии CORBA 22

1.4. Проблемы построения распределенных систем 26

2. Методы управления нагрузкой серверов приложений 30

2.1. Выравнивание нагрузки методом разделения приложении 30

2.1.1. Разделение приложений 31

2.1.2. Стратегии разделения 34

2.1.3. Статическое распределение приложений 36

2.2. Управление нагрузкой с использованием репликации данных 37

2.2.1. Механизмы репликации 40

2.3. Управление нагрузкой распределением клиентов 54

2.4. Критерии качества решения задачи управления нагрузкой 56

3. Математические модели для анализа алгоритмов управления нагрузкой 65

3.1. Общая постановка задачи моделирования 65

3.2. Статическое распределение 69

3.2.1. Распределение клиентов по серверам 71

3.2.2. Распределение приложений по серверам 78

3.2.3. Оптимизация распределения 83

3.3. Динамическое распределение потоков запросов 86

3.3.1. Диспетчеризация запросов па исполнение приложений 87

3.3.2. Диспетчеризация запросов от клиентов 90

3.4. Модели работы серверов 93

3.4.1. Модель сервера приложении с синхронной обработкой запросов 94

3.4.2. Модель работы сервера с разделением ресурсов 100

4. Применение разработанных алгоритмов и моделей для управления в распределенных информационных системах 106

Основные результаты и выводы 110

Литература 112

Введение к работе

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

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

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

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

с управлением нагрузкой серверов приложений. Эта проблема свойственна как уже устоявшейся п широко используемой трехслойной архитектуре клпепг-серпер, так и се развивающимся направлениям. Задачей управлення нагрузкой яшіястся распределение потока запросов к серверам с целью улучшения показателей качества работы как серверов, так [і системы.

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

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

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

Па защиту выносятся:

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

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

комплекс критериев качества управления нагрузкой серверов, которые дают возможность сравнивать и оптимизировать алгоритмы управления, обоснованно выбирать параметры серверов;

комплекс математических моделей для анализа и оптимизации алгоритмов управления нагрузкой серверов;

математические модели для анализа работы серверов при различных режимах обработки запросов.

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

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

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

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

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

Апробация работы.

Основные положения п результаты диссертации докладывались па Международной конференции «Информационные и телекоммуникационные технологии в интеллектуальных системах» (Барселона, 2004 г.), XLI Всероссийской конференции по проблемам математики, информатики, физики и химии (РУДН, 2005 г.), научно-технических семинарах МИЭМ (20U3 - 2005 гг.).

Публикации.

Результаты диссертационной работы отражены в 8 опубликованных печатных работах.

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

Диссертация состоит из введения, четырех глав и списка литературы.

Принципы построения распределенных систем

Распределенные системы являются в настоящее время основным решением при создании крупных корпоративных систем государстяенного, регионального и отраслевого уровнен. В данном случае под распределенной системой будем понимать набор независимых друг от друга компьютеров и компьютерных сетей, которые обеспечивают совместное решение функциональных задач системы, при котором каждая программа (пользователь) видит систему как единое целое (в смысле предоставляемых ресурсов) [43, 72], Далее под термином пользователь будем понимать лпОо конкретное физическое лицо, которое пользуется сервисами, предоставляемыми системой, либо программу (приложение), которая обращается к ресурсам системы в процессе исполнения. Ресурсами системы будем называть либо технические средства, либо программы, либо данные. При этом распределенность подразумевает пс только территориальную удаленность элементов системы друг от друга, но и применение принципов децентрализованного (распределенного) управления системой и ее частями. Принципы построения распределенных систем известны достаточно хорошо, поэтому остановимся па них кратко [45, 46, 72]: Прозрачность. Открытость. Масштабируемость. Прозрачность подразумевает, что от пользователя системы скрыто, что система состоит из множества независимых ресурсов, каждый пользователь видит систему как единое целое и имеет доступ ко всем разрешенным ему ресурсам. Данный принцип должен соблюдаться при разработке системного и прикладного программного обеспечения. Для пользователя выполнение данного принципа означает единообразие при обращении к ресурсам, возможность использования единого нространстіза имен и адресов. Открытость, подразумевает, что все пользователи используют единый набор стандартов для вызова служб системы, т.е. для вызова служб используются стандартные синтаксис и семантика. Другими словами, пользователи используют единый интерфейс п набор протоколов. Такой подход позволяет выполнять свойства переносимости для приложений и ннтсропсрабельностп для систем [46]. Данный принцип должен закладываться при определении набора стандартов для построения системы и создания прикладного программного обеспечения. Для пользователя открытость означает возможность легко включать в состав системы новые приложения и подсистемы, созданные по такому же набору стандартов. Масштабируемость подразумевает, во-первых, достаточно простое изменение размерности системы, во-вторых, возможность территориального распределения пользователей и ресурсов и, в-трстьнх, возможность управления компонентами системы, работающими в различных подсистемах. Для достижения масштабируемости необходимо решить много различных задач, среди которых можно выделить: управление службами, управление данными, управление передачей данных, управление безопасностью Здесь управление службами обеспечивает управление серверами и приложениями. При управлении данными решаются задачи распределения данных по системе, обеспечение доступа к данным. Управление передачей данных (любых) должно обеспечить качественную доставку требуемой информации от отправителя к получателю, т.е. доставку с соблюдением требовании по времени доставки и качеству данных. Управление безопасностью должно обеспечить защиту от несанкционированного доступа к ресурсам системы, целостность ресурсов, противодействие различным угрозам.

Выравнивание нагрузки методом разделения приложении

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

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

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

При горизонтальном разделении (рис, 2.1) объекты назначаются одному и только одному разделу (серверу) и не должны реализоваться более чем в одном разделе. Горизонтальное разделение часто называется разделением интерфейсов, так как отдельные серверы обычно предлагают различные наборы интерфейсов приложения. Общая нагрузка па приложение распределяется по всем серверам. За определение соответствующего сервера, который должен обработать запрос, отвечает сам клиент. Во многих случаях для определения службы используется ключ разделения, реализуемый в виде хорошо известного имени.

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

В многозвенных приложениях очень важно сократить количество "межраздельных1 запросов, так как они приводят к слишком частому общению разных серверов [72].

Здесь рассмотрим более подробно подходы к распределению приложении на примере системы CORBA, где эти вопросы достаточно хорошо проработаны и систематизированы [28, 29]. При использовании любого из подходов к разделению клиент может установить соединение с нужным сервером, в качестве ключа используя хорошо известное имя. Как только ключ разделения разрешен по отношению к объекту сервера, все последующие удаленные вызовы выполняются непосредственно на этом сервере; при дальнейших запросах не используются пи агент активизации CORBA, ни служба именования. Поскольку элементы службы именования обычно используются для обнаружения служб, количество переключении между различными серверами уменьшается. При использовании как вертикального, так и горизонтального разделения вероятность того, что объект был кэшпрован более чем одним сервером, значительно снижается. В случае вертикального разделения это одна из самых важных задач проектирования, В результате снижается необходимость применения в сложных политиках синхронизации кэша для того, чтобы обеспечить одинаковое состояние объектов, кэшироваипых на нескольких серверах в любой момент времени.

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

Разделенным серверам свойственны определенные проблемы. Часто очень сложно выбрать подходящие разделы, поскольку нагрузка неравномерно распределяется между разделами. Бывает сложно разделить приложение, скажем, па десять компонентов, равнодоступных со стороны приложений клиента. Кроме того, разделенные серверы не способны динамически реагировать па изменение условий нагрузки.

Чрезвычайно статичная природа подхода разделения усложняет внесение изменении в выбранные разделы: для этого понадобится, например, вносить фундаментальные изменения в IDL, что приведет к изменению способа обнаружения служб клиентами. Так, перемещение объекта CORBA с одного разделенного сервера на другой может оказаться нетривиальной задачей. Также часто оказывается очень сложно разделить приложение па много компонентов, полностью взаимно независящих. Практически всегда объект одного сервера должен совершать вызовы методов объектов других серверов, В крайнем случае, общая производительность приложения может оказаться намного ниже с таким вариантом сбалансированной нагрузки, чем без нее, что связано с часто общающимися серверами (группа серверов, характеризуемая большим количеством межпроцессных вызовов в рамках обычной работы серверов).

Общая постановка задачи моделирования

Для анализа различных вариантов решения задачи управления нагрузкой серверов требуется, как отмечалось выше, разработать комплекс математических моделей, позволяющих количественно оценивать значения показателен качества различных вариантов (алгоритмов) решения задачи. Первой и главной целью разработки моделей является получение возможности вычислять значения характеристик работы серверов, определенных рапсе в главе 2 в зависимости от применяемых методов решения задачи управления нагрузкой. Знание числовых значений этих характеристик даст возможность вычислять значения критериев качества решения задачи управления нагрузкой. Второй задачей является анализ работы серверов в зависимости от технологии взаимодействия с клиентами и дисциплины обработки запросов. Наконец, третьей задачей является получение оптимальных параметров алгоритмов управления нагрузкой и выбор параметров серверов, В качестве математических моделей будем использовать системы массового обслуживания [1, 3, 11, 19, 20, 56, 65, 66]. Этот выбор обусловлен во-первых, достаточно хорошим качеством и разнообразием моделей, известных на сегодняшний день, во-вторых, возможностью настройки моделей с учетом специфики работы серверов (протоколы взаимодействия, применяемые технологии обработки запросов, особенности системного программного обеспечения) и, в-третьих, возможностью получения аналитических зависимостей характеристик серверов от их параметров, что позволяет выдвигать требования к параметрам серверов и решать задачи выбора серверов при построении конкретных систем «клиент-сервер». Следует учесть также богатый опыт применения методов и моделей теории .массового обслуживания для анализа работы вычислительных систем, серверов и сетей [20, 36, 38, 54, 60], В соответствии с результатами проведенного анализа возможных методов решения задачи управления нагрузкой (главы 1 и 2) ЇНІЖС будут исследованы следующие методы и разработаны соответствующие модели (классификация методов приведена па рисунке ЗЛ): методы статического распределения клиентов или приложений по серверам; методы динамического распределения запросов по серверам. Кроме того, будут исследованы различные варианты организации обслуживания запросов клиентов непосредственно на серверах, поскольку они зависят от используемой технологии. Так, будут исследованы следующие варианты [23, ЗО, ЗІ, 34, 37, бб, 72); обслуживание запросов в порядке общей очереди (дисциплина FIFO) независимо от того, каким клиентом они посланы, и какое приложение они вызывают; обслуживание запросов при работе клиентов в режиме ожидания ответов на предыдущие запросы (синхронный режим), что соответствует работе с Web серверами; обслуживание запросов с разделением ресурсов сервера, что соответствует многозадачной операционной системе, когда в основной памяти сервера одновременно находится несколько ПрИЛОЖеппЙ. Параметры разрабатываемым моделей соответствуют параметрам работы серверов и клиентов: время обслуживания запросов, в зависимости от запускаемого приложения п конкретного сервера; количество одновременно запускаемых приложении; интенсивность потока запросов от клиента на запуск конкретных приложении; время подготовки запроса клиентом. Для решения задач оптимизации параметров алгоритмов управления нагрузкой и обоснованного выбора параметров серверов должны быть разработаны методы оптимизации, использующие созданные математические модели работы серверов. В качестве оптимизируемых функций используются функционалы, определяющие качество решения задач управления нагрузкой и рассмотренные в разделе 2.3. Таким образом, результатом, проведенных в данной главе исследований и разработок, станут математические модели для расчета и оптимизации количественных значений показателен качества решения задачи управления нагрузкой серверов. В этом разделе будем рассматривать фиксированное распределение пользователей и приложении по серверам. Достоинство такого подхода состоит в том, что при этом не нужно обеспечивать диспетчеризацию запросов пользователей, что значительно упрощает реализацию таких систем и управление ими. Однако, следует отметить, что практическая реализация методов распределения клиентов или ириложепии по серверам требует различных усилии. Так, при распределении клиентов требуется только, чтобы клиент знал адрес сервера, к которому он прикреплен при распределении, по на каждом сервере должны быть установлены вес приложения, которые могут потребоваться прикрепленным к нему клиентам. При распределении приложений, каждый клиент должен иметь возможность обращаться к тем серверам, на которых установлены требуемые ему приложения, что требует более сложных программных средств (однако достаточно просто реализуется в технологии CORBA, например) [28]. Пусть TV количество пользователей в системе (количество клиентов), а М — количество типов приложений, вызываемых пользователями. Обозначим через К- количество серверов

Применение разработанных алгоритмов и моделей для управления в распределенных информационных системах

В этой главе приводятся результаты применения разработанных. алгоритмов и моделей для анализа и оптимизации алгоритмов управления нагрузкой серверов. По результатам применения можно сделать следующие выводы; как правило, имеются безусловные решения по закреплению клиентов или приложений за серверами; как правило, клиент работает только с ограниченным числом доступных ему приложений; распределение доступных клиентам приложений достаточно статично, поскольку оно определяется функциональными обязанностями клиентов; в основном все серверы приложений имеют одинаковые параметры, что обеспечивает одинаковые длительности исполнения приложений на серверах (серверы однородны); интенсивности потоков запросов от клиентов могут значительно меняться на протяжении времени работы клиентов (рабочего времени). Здесь первое свойство приводит к тому, что расширяется множество ограничений в задачах оптимизации алгоритмов управления. К уже известным ограничениям, определенным в главе 3, добавляются условия, определяющие жесткое закрепление клиентов (приложений) за серверами; для алгоритма распределения клиентов это будут дополнительные ограничения типа тік - Ідля заданных клиентов и серверов; для алгоритма распределения приложении это будут ограничения типа njk = 1для заданных приложений и серверов; для алгоритма диспетчеризации клиентов это будут ограничения типа q-k І для заданных клиентов и серверов; для алгоритма диспетчеризации приложении это будут ограничения типа pjk =1 для заданных приложений и серверов. Второе свойство обеспечивает достаточно большое количество нулевых элементов в матрице Л = II Лі;- II. Отмстим, что оба этих свойства значительно сокращают число возможных вариантов при оптимизации алгоритмов, поэтому практические задачи имеют значительно меньшую размерность. Кроме того, однородность серверов также уменьшает размерность задачи по числу возможных вариантов решений. Статичность распределения приложений за клиентами позволяет сделать вывод о том, что применяемые алгоритмы работают достаточно долгое время, что обеспечивает выполнение условии стационарности характеристик серверов и тем самым делает модели более адекватными реальным условиям. Нестабильность интенсивностей потоков запросов от клиентов на запуски приложсниіі обусловлена спецификой работы пользователей. Для того, чтобы система работала эффективно в этих условиях, необходимо иметь возможность менять параметры алгоритмов управления. Для этого время работы системы можно разбить на интервалы и па каждом интервале использовать необходимые параметры алгоритмов управления (можно менять и сами алгоритмы). Такой подход позволяет построить систему управления, которая адаптируется к изменению интенсишюстей потоков запросов. Это можно использовать и для случаев, когда меняется число работающих пользователей. Предложенные алгоритмы и методы их применения были использованы при разработке системы администрирования распределенной информационной системы Федерального центра информатизации счетной палаты Российской Федерации. Работы проводились в рамках Федеральной целевой программы «Электронная Россия». Для данной системы характерна иерархическая структура на нижнем уровне которой находятся клиенты, на верхнем серверы баз данных, а на промежуточном серверы приложении. Количество клиентов варьируется в диапазоне от 200 до 2000.» Количество серверов приложений находится в диапазоне 5 до 20, а количество приложений достигает 50. Несмотря на значительную размерность системы ей свойственны такие особенности как жесткое (безусловное) закрепление клиентов за серверами, поскольку серверы обслуживают определенные подразделения счетной палаты и связаны с определенными базами данных, что обусловлено требованиями к конфиденциальности информации. Такое закрепление позволяет вместо одной задачи большой размерности решать несколько задач меньшей размерности (каждая задача соответствует подсистеме одного из подразделений. Обобщенная структура системы приведена на рисунке 4.1. Реализованы статические алгоритмы управления-Результаты внедрения алгоритмов управления представлены в акте об использовании результатов диссертационной работы для управления нагрузкой серверов в распределенной информационной системе Федерального центра информатизации счетной палаты Российской Федерации

Похожие диссертации на Разработка алгоритмов и моделей управления нагрузкой серверов в распределенных системах