Назад в библиотеку

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

Авторы: А. М. Бершадский, Л. С. Курилов, А. Г. Финогеев

Источник: Известия высших учебных заведений. Поволжский регион. Технические науки Выпуск № 4 / 2009 http://cyberleninka.ru/article/n/issledovanie-strategiy-balansirovki-nagruzki-v-sistemah-raspredelennoy-obrabotki-dannyh

Аннотация

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

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

Введение

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

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

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

Классификация стратегий балансировки нагрузки

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

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

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

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

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

  2. По степени приспосабливаемости к изменению нагрузки стратегии делятся на адаптивные и неадаптивные. Адаптивные – обеспечивают выравнивание нагрузки и перераспределение ресурсов при изменении ресурсной конфигурации распределенной системы. Например, при включении новых узлов в состав системы либо исключении/отказах уже работающих узлов производится ремасштабирование вычислений, и, таким образом, происходит автоматическая адаптация. Иногда под адаптивной балансировкой нагрузки понимают динамическую балансировку, только в более узком смысле этого слова.
  3. По способу смены плана распределения выделяют стратегии с зависимым и независимым распределением. Зависимым считается такое распределение, при котором отслеживаются некоторые события, касающиеся изменения характеристик загрузки, либо таймерные события, и по их проявлению строится новый план. Независимое (по сути, относящееся одновременно к полудинамическому и динамическому типу стратегий) подразумевает априорное вычисление последовательности планов до начала работы распределенного приложения. Во время его выполнения происходит смена статических планов по заранее составленному сценарию с привязкой к определенным событиям системы или целевого вычислительного процесса, таймерным отсчетам, уже без вычисления самих планов: П1 ? П2 ? … ? Пk. К примеру, такая смена может быть назначена в точках барьерной синхронизации паралелльно-распределенного приложения. Данный подход также можно назвать квазидинамическим.
  4. По принципу управления (характеру ответственности за распределение) алгоритмы балансировки можно поделить на централизованные и децентрализованные. Здесь стратегия определяет, каким именно способом осуществляется разделение ресурсов. Централизованные алгоритмы определяют как глобальные, т.е. имеется центральный элемент – планировщик (диспетчер), который для принятия решений собирает информацию со всех узлов системы. Обычно этот планировщик и необходимость постоянной синхронизации сведений о состоянии ресурсов во всей системе является узким, уязвимым местом стратегий данного типа. Децентрализованные алгоритмы не нуждаются в сведениях о загрузке в каждом узле, т.е. по всей распределенной системе, поэтому их определяют как локальные. Распределение ресурсов планируется каждым узлом отдельно, иногда с учетом взаимодействия с соседними узлами. Децентрализованные схемы наиболее типичны для сеточных вычислений и в тех случаях, когда структура связывающих узлы коммуникаций хорошо подходит для конкретных прикладных задач. Централизованные стратегии балансировки используются наиболее часто по причине универсальности подхода и простоты алгоритмизации, хотя и не всегда дают хорошую масштабируемость, однако, как уже было отмечено, для некоторых прикладных задач децентрализованный подход оказывается более эффективным, несмотря на его ограниченную применимость и определенные сложности при совместной синхронизации и обеспечении целостности всего вычислительного процесса.
  5. По признаку универсальности стратегии делят на универсальные либо специализированные. К последним можно отнести, например, стратегии, рассчитанные на определенную архитектуру распределенной системы, конкретную топологию сетевой среды, разработанные под конкретный алгоритм или с учетом специфичных свойств конкретной сетевой инфраструктуры. Универсальные стратегии ориентированы на обслуживание широкого класса алгоритмов, инвариантны к области применения, и, как правило, обладают легкой встраиваемостью в приложения и унифицированностью интерфейса.
  6. По упреждению предстоящих изменений стратегии делят на прогностические и без способности предсказывать будущее изменение состояний (в том числе нагрузки). Очевидно, что архитектуры, обладающие адекватными средствами краткосрочного и долгосрочного прогнозирования развития вычислительного процесса существенно превосходят в плане адаптации обычные системы планирования вычислений. Основной целью при разработке прогностических стратегий является повышение точности прогнозов, поскольку именно от нее зависит получаемый выигрыш по производительности за счет сокращения предсказанных непроизводительных потерь. Излишне сложные и вычислительно емкие алгоритмы расчета прогнозов, хотя и более точные, могут не оправдать ожидания относительно возможного увеличения производительности и, даже наоборот, могут способствовать деградации уже достигнутой производительности вследствие слишком большого нецелевого расхода доступных ресурсов. Неудовлетворительная точность прогнозов также может отрицательно влиять на общую производительность системы.

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

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

Прогностические стратегии балансировки нагрузки

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

(рис. 1)

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

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

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

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

(рис. 2)

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

(формула)

Следовательно, задача прогноза – минимизировать потери M за счет предсказания границ Tреальн(i) и, соответственно, перераспределения вычислительных долей (нагрузки) с учетом рассчитанного предсказания.

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

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

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

При обработке допускается масштабирование значений ряда посредством накопляющей децимации, когда несколько временных интервалов объединяются в один, более длинный, с соответствующим суммированием значений нагрузки. Иногда бывает целесообразно использовать неоднородную дискретизацию с варьирующимся размером интервала, причем закон изменения временных интервалов может носить, вообще говоря, нелинейный характер. Это полезно в тех случаях, когда в определенные периоды требуется более подробная картина изменения нагрузки в отдельных частях системы. Вместо численных значений, показывающих конкретные уровни нагруженности, могут применяться нормированные значения нагрузки [0, …, 1], фактически отражающие коэффициент использования оборудования в течение заданных интервалов времени (отношение текущей загрузки к максимально возможной). Анализ также можно проводить не по непосредственным значениям нагрузки, а по разнице между максимальной и минимальной измеренной нагрузкой за один масштабный период (рис. 3).

(рис. 3)

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

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

Прогнозирование на основе фрактального метода

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

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

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

Заключение

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

Список литературы

  1. Tanenbaum, A. Distributed Systems: Principles and Paradigms / A. Tanenbaum, Maarten van Steen. – Prentice Hall, 2001. – Р. 10.
  2. Coulouris, G. Distributed Systems: Concepts and Design / G. Coulouris, J. Dollimore, T. Kindberg. – 3rd Edition. – Addison-Wesley, 2000. – Р. 33.
  3. Luling, R. A Dynamic Distributed Load Balancing Algorithm with Provable Good Performance / R. Luling, B. Monien // Parallel Algorithms and Architectures (SPAA-1993) : proc. of the 5th ACM Symposium. – Velen, Germany, 1993. – P. 164–173.
  4. Decker, T. Towards Developing Universal Dynamic Mapping Algorithms / T. Decker, R. Diekmann, R. Luling, B. Monien // Parallel and Distributed Processing (SPDP-1995) : proceedings of the 7th IEEE Symposium. – SanAntonio, USA, 1995. – P. 456–459.
  5. Diekmann, R. Load Balancing Strategies for Distributed Memory Machines / R. Diekmann, B. Monien, R. Preis // Multi-Scale Phenomena and their Simulation / Karsch, Monien, Satz (ed.). – World Scientific, 1997. – P. 255–266.
  6. Schnor, B. Load Management for Load Balancing on Heterogeneous Platforms / B. Schnor, S. Petri, H. Langendorfer // Parallel Processing : рroceedings of the Second International Euro-Par Conference. – Vol. II. Springer Lecture Notes in Computer Science 1124. ENS. – Lyon, France, 1996. – Р. 615–620.
  7. Nguen Thai, D. Real-Time Scheduling in Distributed Systems / D. Nguen Thai // International Conference on Parallel Computing in Electrical Engineering : IEEE Computer Society Press. – Warsaw, Poland, 2002. – P. 165–170.
  8. Курилов, Л. С. Фрактальный принцип описания процессов динамики нагрузки в гетерогенной распределенной сетевой среде / Л. С. Курилов, А. Г. Финогеев // Информационные технологии в науке, образовании, телекоммуникации и бизнесе : тезисы докл. 33 Междунар. конф. (Украина, Крым, Ялта – Гурзуф, 20–30 мая, 2006). – Ялта, 2006. – С. 40–42. – (Приложение к журналу «Открытое образование»).