Автоматическая балансировка нагрузки в облачных вычислениях является ключевым элементом обеспечения эффективной работы распределенных вычислительных систем. В статье представлен обзор различных подходов и методов балансировки нагрузки, предложенных отечественными и зарубежными исследователями. Автором рассматриваются статические, динамические и вдохновленные природой методы. Представленный обзор поможет читателям понять суть проблемы балансировки нагрузки в облачных средах, ознакомиться с передовыми методами решения этой задачи, а также узнать о пробелах в данной области исследований.
Ключевые слова: облачные вычисления, планирование задач, балансировка нагрузки.
Облачные вычисления — это парадигма предоставления вычислительных ресурсов, таких как хранилище данных, серверы, сетевые ресурсы, приложения и услуги, через интернет. Она предполагает предоставление пользователям доступа к этим ресурсам по требованию без необходимости владения и управления физическими вычислительными устройствами. Облачные вычисления предоставляют несколько типов услуг, включая: инфраструктуру как услугу (IaaS), платформу как услугу (PaaS), и программное обеспечение как услугу (SaaS). IaaS предоставляет виртуальные вычислительные ресурсы, такие как виртуальные машины и хранилище данных, PaaS предоставляет средства для разработки приложений и их развертывания, в то время как SaaS предоставляет готовые к использованию программные продукты через облако.
Преимущества облачных вычислений включают гибкость (возможность масштабировать вычислительные ресурсы по требованию), экономичность (предприятия могут платить только за те вычислительные ресурсы, которые они используют), повышенную доступность и безопасность данных, а также упрощенное обслуживание оборудования. В целом, облачные вычисления представляют собой мощный инструмент для бизнеса, промышленности и потребителей, позволяющий им улучшить гибкость, масштабируемость и доступность вычислительных ресурсов.
В облачных вычислениях, где большое количество вычислительных ресурсов может быть масштабировано в режиме реального времени важную роль играет балансировка нагрузки . Этот процесс направлен на оптимизацию использования доступных ресурсов и обеспечение равномерного распределения нагрузки между различными серверами и устройствами в целях оптимизации производительности и доступности приложений.
К основным задачам балансировки нагрузки в облачных вычислениях относят:
- Оптимизацию производительности : балансировка нагрузки направлена на обеспечение высокой производительности системы путем равномерного распределения нагрузки между вычислительными узлами. Цель состоит в том, чтобы избежать перегрузок конкретных ресурсов и создать оптимальные условия для обработки запросов от пользователей и приложений.
- Масштабирование ресурсов : балансировка нагрузки также играет важную роль в масштабировании вычислительных ресурсов в облаке. При возрастающей нагрузке система автоматически должна выделять или освобождать вычислительные ресурсы, чтобы обеспечить требуемую производительность. Этот процесс может осуществляться динамически в реальном времени.
- Обеспечение отказоустойчивости и надежности : балансировка нагрузки позволяет повысить доступность системы путем перераспределения нагрузки в случае отказа одного или нескольких вычислительных узлов. Это также включает в себя резервирование и репликацию данных для обеспечения надежности.
- Эффективное использование ресурсов : балансировка нагрузки имеет цель обеспечить эффективное использование вычислительных ресурсов, предоставляя приложениям и пользователям необходимые ресурсы в зависимости от текущей нагрузки. Это помогает сократить издержки на обслуживание и улучшает общую эффективность системы.
Таким образом, балансировка нагрузки в облачных вычислениях играет ключевую роль в обеспечении производительности, доступности и надежности вычислительных ресурсов, а также в оптимизации использования этих ресурсов для удовлетворения требований пользователей и приложений путем обеспечения непрерывной доступности приложений и услуг.
Методы балансировки нагрузки можно классифицировать на статические , динамические и методы, вдохновленные природой .
Статическая балансировка нагрузки основана на заранее определенных правилах и стратегиях распределения нагрузки между вычислительными ресурсами. Статические методы подразумевают предопределенные настройки и конфигурации, которые обычно не меняются в реальном времени, если только нет необходимости в ручном вмешательстве.
Динамическая балансировка нагрузки основывается на изменяющихся условиях и требованиях. Она изменяет распределение нагрузки в реальном времени в зависимости от мониторинга нагрузки, производительности и доступности ресурсов. Динамические методы обычно автоматизированы и могут использовать технологии машинного обучения или алгоритмы обратной связи для адаптации к изменениям в нагрузке и ресурсах.
Методы балансировки нагрузки, вдохновленные природой, часто опираются на аналогии из природных систем и биологических организмов для улучшения эффективности распределения нагрузки.
В облачных вычислениях все категории методов могут использоваться как самостоятельно, так и в комбинации друг с другом в зависимости от потребностей системы. Некоторые сценарии могут требовать статической балансировки для более предсказуемых и стабильных нагрузок, в то время как динамическая балансировка может быть эффективной для поддержания отзывчивости системы в условиях изменчивой и непредсказуемой нагрузки.
Рассмотрим некоторые алгоритмы балансировки нагрузки, предложенные в современной литературе.
Алгоритм циклического перебора Round Robin ( RR )
Балансировка нагрузки на основе алгоритма RR является одним из простых и широко используемых методов для распределения нагрузки между серверами в облачных системах. Этот алгоритм подразумевает циклическое распределение запросов между доступными серверами по круговой схеме. Хотя метод RR прост в реализации, его недостаток состоит в том, что он не учитывает различную производительность или нагрузку серверов, что может привести к неравномерному распределению нагрузки и потере эффективности.
Улучшение RR с использованием подхода генетического алгоритма ( RR GA) представлено в работе [1]. Чтобы решить проблемы RR, этот подход распределяет запросы путем сканирования хеш-карты, которая содержит все виртуальные машины. Если виртуальная машина доступна, задача распределяется, в противном случае лучшая виртуальная машина будет выбрана путем анализа наиболее подходящих задач с использованием GA. Результаты показывают, что алгоритм значительно сокращает время отклика серверов. Однако GA имеет тенденцию усложняться, когда пространство поиска увеличивается.
Исследователи в статье [2] улучшили качество обслуживания в облачных приложениях, приняв во внимание проблему пакетной рабочей нагрузки. Это проблема балансировки нагрузки, которая возникает из-за внезапного увеличения числа пользователей облачных сервисов. Таким образом, предлагается алгоритм адаптивной балансировки нагрузки (Adaptive LB (RR + Random)) для обеспечения равномерного распределения полученных задач по виртуальным машинам при большой (периодической) нагрузке путем переключения между Random (если рабочая нагрузка нормальная) и RR (если рабочая нагрузка низкая) политиками планирования задач.
Взвешенный циклический алгоритм (WRR) [3] — подход, аналогичный традиционному RR, однако этот алгоритм учитывает вес каждого узла. Хотя этот алгоритм отлично подходит для оценки времени ожидания, он не учитывает различную длину задач, которые необходимо выделить для соответствующей виртуальной машины.
Авторы [4] предложили метод, известный как метод MEMA , который учитывает запросы с приоритетом (все запросы делятся на обычные и срочные). Данный метод использует алгоритм взвешенного циклического перебора (WRR), при котором каждая виртуальная машина отправляет свой вес на сервер (который называется балансировщиком нагрузки), чтобы определить количество запросов, которые можно выделить на эту машину. Подход имеет ограничение в виде большего времени выполнения по сравнению с WRR.
Дроссельный алгоритм (ТА)
В TA алгоритме балансировщик нагрузки поддерживает таблицу индексов виртуальных машин, а также их состояния (например, доступна/занята/ожидает). Если виртуальная машина доступна и имеет достаточно места, задача принимается и распределяется для этой виртуальной машины. Если доступная виртуальная машина не найдена, запрос ставится в очередь. Подобно традиционному алгоритму TA, модифицированный алгоритм регулирования ( MTA ) , предложенный в работе [5] поддерживает индексную таблицу всех виртуальных машин вместе с их состояниями, однако авторы экспериментировали в отношении времени отклика и использования виртуальных машин, выбирая виртуальную машину по первому индексу, если она доступна. После выбора первого индекса происходит перемещение виртуальных машин. Это отличается от традиционного TA, где первая виртуальная машина выбирается каждый раз при поступлении запроса.
Исследователи в [6] представили приоритетный подход, основанный на модифицированном алгоритме регулирования ( PMTA ) с улучшенным временем выполнения по сравнению с существующим алгоритмом. Он фокусируется на распределении входящих задач с использованием очереди переключения, чтобы остановить выполнение задач с низким приоритетом и сначала запустить задачи с высоким приоритетом, а также распределить равную рабочую нагрузку между несколькими виртуальными машинами. Хотя этот подход улучшил время отклика и время ожидания по сравнению с существующими алгоритмами TA и RR, он все равно может привести к простаиванию и увеличению времени отклика для заданий с низким приоритетом [7]. На рисунке 1 приведена блок-схема работы дроссельного алгоритма.
Рис. 1. Блок-схема работы дроссельного алгоритма
Алгоритм равномерного распределения текущего исполнения (ESCE)
ESCE — это динамический алгоритм балансировки нагрузки. Он рассматривает размер задания как приоритет, а затем случайным образом распределяет рабочую нагрузку на виртуальную машину с небольшой нагрузкой. ESCE зависит от использования очереди для хранения запросов и распределения нагрузки на виртуальные машины. Распространенной проблемой этого алгоритма нагрузки является то, что он может вызвать накладные расходы при обновлении таблицы индексов. На рисунке 2 представлена блок-схема работы алгоритма равномерного распределения текущего исполнения.
Рис. 2. Блок-схема работы алгоритма равномерного распределения текущего исполнения
Гибридный подход ( Hybrid LB (TA & ESCE) , сочетающий в себе как ESCE, так и TA, предложен авторами в [8] для сокращения времени ответа в облачных вычислениях. Балансировщик хранит список пользовательских запросов и просматривает этот список в поисках доступной виртуальной машины. В отличие от TA, где он возвращает 1, если виртуальные машины заняты, ESCE используется для поиска машины с минимальной нагрузкой и назначения ей задачи. Другой аналогичный подход, предложенный авторами в [9] — Enhanced LB (TA и ESCE) предназначен для дальнейшей оптимизации ресурсов. Вместо того, чтобы сохранять очередь на случай, если виртуальные машины заняты, он стремится использовать функцию создания нового хоста, чтобы сократить время ожидания в очереди. Оба алгоритма хороши для сокращения времени отклика, однако оба не учитывают миграцию виртуальной машины в случае возникновения какой-либо неисправности.
Другой гибридный подход с использованием TA и ESCE (LBHM) предложен в [10] для уменьшения времени ожидания при увеличении количества задач. В отличие от рассмотренных ранее подходов, гибридная модель балансировки нагрузки использует пороговое значение для каждой виртуальной машины, определяемое на основе ее емкости. Однако метод не может хорошо работать в случае отказа узлов.
Аналогичный подход предлагается в работе [11] — Hybrid Approach (TA & ESCE) . Алгоритм предлагает сохранять пороговое значение в качестве приоритета для каждой виртуальной машины для равномерного распределения рабочей нагрузки. Помимо сокращения времени отклика, это также выгодно с точки зрения низкой стоимости.
Балансировка нагрузки на основе алгоритма медоносных пчел Honey Bee ( HB )
Алгоритм балансировки нагрузки HB в облачных вычислениях вдохновлен поведением пчел в природе и использует аналогии из их системы для эффективного распределения нагрузки между узлами в облачной среде. Этот алгоритм основан на идее коллективной интеллектуальной системы, где группа «пчел» (или агентов) работает вместе для оптимизации баланса нагрузки. Принцип включает следующие шаги:
- Инициализация улья (колонии): первоначально формируется «улей» (или группа агентов), который представляет собой популяцию виртуальных «пчел». Эти агенты могут представлять узлы облачной инфраструктуры, способные выполнять вычисления или обрабатывать запросы.
- Выбор исходного узла: начиная с появления нового запроса или задачи, алгоритм HB может выбрать исходный узел или набор узлов для обработки этой задачи. Выбор исходного узла может осуществляться на основе доступности ресурсов, текущей нагрузки и других факторов.
- Распределение задач — алгоритм может использовать механизм коммуникации и совместной работы агентов (пчел) для принятия решения о том, как распределить задачу между узлами. Это может включать обмен информацией о доступности ресурсов, пропускной способности сети, текущей нагрузке и т. д.
- Обратная связь и адаптация — в процессе выполнения задач алгоритм может получать обратную связь от узлов и постепенно адаптировать свои решения, чтобы улучшить балансировку нагрузки и эффективность системы в целом.
Рис. 3. Блок-схема работы алгоритма медоносных пчел
Преимущества алгоритма HB включают способность агентов работать коллективно для адаптации к изменяющейся нагрузке, оптимизация распределения задач в зависимости от ресурсов и пропускной способности, а также устойчивость к отказам. Однако, как и с любым методом балансировки нагрузки, важно учитывать, что реализация этого алгоритма может потребовать дополнительных вычислительных ресурсов и сложностей в управлении коллективной системой.
Алгоритмы на основе HB предложены в работах [12], [13], [14]. Усовершенствование алгоритма HB сделано в [15], в работе предложен алгоритм Honey Bee Behavior Load Balancing (HBB-LB), где также учитывается приоритет задания. Алгоритм предназначен для сокращения времени поиска при распределении задач. После расчета нагрузки каждой виртуальной машины публичное облако разделяется на три сектора — недогруженный, сбалансированный и перегруженный. Затем алгоритм вычисляет разницу между нагрузками, исходя из того, что если она больше нуля, то перемещение ВМ из одного сектора в другой не требуется. Он также рассматривает скорость и стоимость как приоритетные значения для виртуальных машин, однако не предоставляет решение для случая двух схожих приоритетов.
Авторами [16] предлагается гибридный подход алгоритмов HB и RR (HB + RR) . Работа объясняет, как этот эволюционный алгоритм можно использовать для эффективной балансировки нагрузки в контексте поведения пчел. Подход направлен на решение приоритетной проблемы алгоритма HB, однако использование RR по-прежнему будет вызывать проблемы с многозадачностью из-за статического кванта, используемого в этом алгоритме.
Балансировка нагрузки на основе генетического алгоритма
Генетические алгоритмы балансировки нагрузки в облачной среде используют концепции из генетики и эволюции для оптимизации распределения нагрузки между серверами. Основная суть заключается в создании популяции потенциальных решений (как в случае с генами в генетике) и применении операций мутации, скрещивания и отбора для создания и улучшения оптимальных распределений нагрузки.
Генетический алгоритм (GA) предложен в [17]. Алгоритм работает хорошо, поскольку он не фокусируется на одной точке и решает проблему нехватки ресурсов, что приводит к многокритериальной оптимизации. Однако алгоритм GA имеет тенденцию усложняться при увеличении пространства поиска, что делает его трудоемким [18].
В [19] авторы предложили объединить GA с алгоритмом локального поиска гравитационной эмуляции (GLS), создав гибридный подход, известный как GA-GEL . Алгоритм GLS демонстрирует гравитационное притяжение в пространстве, где задействован поиск. Используя рассчитанное значение скорости хромосомы, этот алгоритм инициирует популяцию для GA. Аналогично GA, где для отбора используется пригодность, применяются скрещивание и мутация. Такой подход значительно сократил время ответа, однако авторы не рассматривают какой-либо приоритет запроса.
Балансировка нагрузки на основе алгоритма роя частиц (PSO)
Алгоритм на основе PSO предложен в [20]. Он демонстрирует естественное скопление популяции. Например, при моделировании кормового поведения птиц или «уток, собирающихся в поисках еды». Популяцией здесь называется рой, а частицы — это утки, представляющие особей в рое. Эти частицы будут перемещаться глобально, используя заданную скорость, и, таким образом, могут изменить и обновить ситуацию. Доказано, что этот тип оптимизатора очень полезен в приложениях нейронных сетей. Он похож на генетический алгоритм, однако PSO имеет более простые правила, чем GA, поскольку он не выполняет никаких операций мутации или скрещивания. PSO стремится найти оптимальное решение путем выполнения итераций и использует функцию пригодности для оценки качества решения.
Рис. 4. Блок-схема работы алгоритма роя частиц (PSO)
В [21] предложена оптимизация роя частиц для построения алгоритма решения проблемы балансировки нагрузки в виртуальной среде. Целью данного исследования является ограничение времени выполнения заданий. В [22, 23] оптимизация роя частиц предлагается для уменьшения среднего времени выполнения работ и повышения коэффициента доступности активов.
Балансировка нагрузки на основе алгоритма оптимизации муравьиной колонии ( ACO )
Оптимизация муравьиной колонии (ACO): Мотивация алгоритма оптимизации муравьиной колонии основана на поведении муравьев во время охоты за едой. Муравьи беспорядочно путешествуют в поисках еды, и когда они возвращаются, они выделяют определенное количество химических веществ, известных как феромоны. Такое количество определяет кратчайший путь от гнезда к источнику пищи, по которому могут следовать другие муравьи. Хотя этот подход хорош для оптимизации ресурсов, он приводит к замедлению времени отклика и производительности.
Чтобы обеспечить эффективное планирование и равномерное распределение между серверами, авторы [24] представили гибридный алгоритм, сочетающий ACO с алгоритмом приоритета ABC ( ACO _ ABC ) для более высокой производительности. Приоритет присваивается задачам на основе критерия кратчайшего задания. Подобно поведению муравьев и пчел, между узлами устанавливается кратчайшее расстояние. Предлагаемый алгоритм сокращает время ответа, однако требует дальнейшего совершенствования для сокращения времени обработки в центре обработки данных.
Другой подход, в котором ACO используется для динамической балансировки нагрузки (Dynamic Novel Approach ACO) , предложен в работе [25]. Муравьи (ВМ) генерируются в случае недогрузки или перегрузки в облаке, а затем применяется процедура поиска для поиска лучшего узла-кандидата для балансировки. Алгоритм обеспечивает высокий уровень качества обслуживания в облаке, однако тестирование производительности, гарантирующее это, не проводится.
HACOBEE , предложенный в [26] представляет собой гибридный алгоритм, сочетающий ACO и искусственную пчелиную колонию, где муравьи определяют нагрузку, а пчелиная колония находит наиболее подходящую виртуальную машину для распределения задач. Метод также сначала использует самое короткое задание, чтобы определить приоритет задач на этапе инициализации. Алгоритм хорош для сокращения времени отклика, однако он может не работать в динамической среде.
Балансировка нагрузки со взвешенным активным мониторингом (WAMLB) [27] — этот подход хорошо работает для гетерогенной среды, где вес каждой виртуальной машины рассчитывается с учетом ее пропускной способности, количества процессоров и скорости. Выбирается виртуальная машина с наибольшим весом, идентификатор отправляется в центр обработки данных, а таблица распределения обновляется. Этот подход направлен на сокращение времени отклика в облаке, однако не учитывает загруженность виртуальных машин.
Рис. 5. Блок-схема балансировка нагрузки со взвешенным активным мониторингом
Улучшенный центральный балансировщик нагрузки [28] — этот алгоритм использует систему приоритетов для сокращения потерь ресурсов в облачном центре обработки данных. Метод позволят системе выбрать лучшую виртуальную машину для обслуживания поступающих запросов, что сокращает время ответа и стоимость по сравнению с ACO, однако авторы не делятся информацией о том, как работает выбор приоритета в этом подходе.
Эвристический алгоритм балансировки нагрузки (HBLBA) для модели IaaS представлен в [29]. Он направлен на решение проблемы неправильного распределения задач между виртуальными машинами путем настройки серверов в зависимости от количества задач, размера и совместимости виртуальных машин, чтобы повысить эффективность и найти подходящую виртуальную машину. Этот подход отлично работает для небольшого количества задач, поэтому может быть неэффективным, когда в системе большое количество задач. Также использование дополнительной информации о конфигурации может замедлить процесс.
В работе [30] обсуждается гибридная стратегия балансировки, известная как HSLJF . Предложенная концепция представляет собой смесь Shortest Job First (SJF) и алгоритма Longest Job First (LJF), учитывающую как продолжительность задачи, так и нагрузку на ресурсы. Задачи сортируются в две очереди, одна для коротких задач, другая для длительных, с целью максимизации использования ресурсов. Тем не менее, данный метод не учитывает затраты на выполнение задач на облачных ресурсах.
Сервисный брокер с учетом динамической стоимости нагрузки (DCLASB) [31] — для обеспечения высокого качества обслуживания авторы в этом исследовании предложили динамический алгоритм, который учитывает задержку сети для балансировки нагрузки. Виртуальные машины сортируются по скорости, ВМ выбирается по длине запроса. Выбирается дата-центр с наименьшим временем обработки, сравнивается задержка и рассматривается дата-центр с наименьшими затратами. Алгоритм позволяет добиться эффективной производительности в облаке, однако он не учитывает приоритеты запросов пользователей.
Некоторые работы по многоуровневой балансировке нагрузки
Многоуровневая балансировка нагрузки в облачной среде — это подход, который учитывает несколько уровней абстракции и управления ресурсами для эффективного распределения рабочей нагрузки в облаке. Этот метод балансировки нагрузки используется для оптимизации использования ресурсов и повышения производительности системы в условиях разнообразных и динамических рабочих нагрузок.
На самом высоком уровне многоуровневой архитектуры облачной среды располагается планирование и управление общими ресурсами облака. Этот уровень обычно включает глобальную координацию и выделение ресурсов между различными клиентами и приложениями.
На следующем уровне находится балансировка нагрузки между различными центрами обработки данных и серверами. Здесь осуществляется распределение рабочих задач и обработка запросов на уровне конкретных компонентов облачной инфраструктуры.
Далее, многоуровневая балансировка нагрузки может включать управление и распределение нагрузки на уровне отдельных вычислительных узлов, таких как физические серверы, виртуальные машины или контейнеры.
В исследовании [32] представлен новый динамический и интегрированный алгоритм планирования ресурсов (DAIRS) для балансировки виртуальных машин в облаке. Этот алгоритм учитывает процессор, память и пропускную способность сети в качестве интегрированного ресурса с учетом их весовых коэффициентов. В рамках этого исследования была разработана новая метрика — средний уровень дисбаланса всех хостов для оценки производительности при планировании нескольких ресурсов. DAIRS является одним из ранних алгоритмов, которые исследовали различные типы ресурсов, рассматривая их как интегрированную ценность. Однако главным недостатком DAIRS является игнорирование коммуникационных издержек миграции.
Авторы [33] предложили схему балансировки нагрузки, действующую на трех уровнях: Центр Обработки Данных, хост и обрабатывающие элементы. Балансировка облака контролируется физическим ресурсным объектом, включая центры обработки данных, хосты и PE (процессорные элементы), используя минимальные значения стандартного отклонения. Стандартное отклонение нагрузки может быть увеличено или уменьшено по сравнению с исходным состоянием перед планированием.
Исследователи в [34] предложили балансировку нагрузки в трехуровневой архитектуре облачных вычислений. Третий уровень представляет собой сервисный узел, используемый для выполнения подзадачи, в то время как второй уровень — это диспетчер служб, который обычно разделяет задачу на несколько логически независимых подзадач.
Другой кластерный алгоритм балансировки нагрузки в облачных средах предложен в работе [35] и предназначен для нескольких ведущих и нескольких ведомых архитектур (MMMS) , где сеть делится на кластеры с использованием алгоритма кластеризации таким образом, что каждый узел (ведущий) в сети принадлежит ровно одному кластеру. Новые узлы, входящие в сеть, назначаются существующему кластеру или новому кластеру, если существующий кластер полностью занят, в соответствии с используемой стратегией кластеризации.
Из актуальных отечественных исследований можно выделить работы Хантимирова Р. И. [36,37]. Согласно выводам данного исследователя, производительность ранее реализованных алгоритмов балансировки нагрузки в облачных вычислениях не соответствует требованиям этой среды. В связи с этим планируется внести изменения в алгоритмы экспоненциального плавного прогноза, алгоритм Weighted Least Connection и Макс-Мин алгоритм балансировки нагрузки, с целью повышения их производительности и улучшения общей производительности облака.
Исследователь Петров Д. Л. [38] предложил алгоритм балансировки нагрузки (ВАТ) , сокращающий интервал времени отклика и выполняющий балансировку нагрузки без какой-либо задержки по времени. Алгоритм также может эффективно распределять нагрузку на несколько виртуальных машин.
В работах [39,40,41] исследователь Ходар А. А. предлагает новый генетический алгоритм оптимального распределения новых виртуальных ресурсов, отличающийся реализацией древовидной структуры хромосом с сохранением высоконагруженных узлов, обеспечивающий повышение качества балансировки нагрузки и уменьшение динамического перемещения ресурсов, а также алгоритм оптимального распределения задач на виртуальные машины, отличающийся применением процедуры оптимизации роя частиц и обеспечивающий нахождение оптимального решения не только с точки зрения издержек, но и с точки зрения общего времен выполнения. Автор отмечает, что направления дальнейших исследований могут заключаться в разработке новых подходов к исследованию состояний нагрузок узлов системы с использованием нескольких центров обработки данных.
Спицын А. А. в [42,43,44] предлагает эвристический алгоритм планирования задач в облаке с полиномиальной по времени сложностью, отличающийся декомпозицией больших задач на подзадачи по специальному критерию и обеспечивающий соблюдение регламентных сроков исполнения задач, кроме того автор описывает иерархическую стратегию балансировки нагрузки для облачных многокластерных центров обработки данных, отличающуюся приоритизацией локальной балансировки нагрузки сначала внутри кластера, а затем внутри центра обработки данных и обеспечивающей уменьшение среднего времени отклика и служебных издержек межкластерной коммуникации.
Вывод
На основании рассмотренной литературы можно сделать вывод, что все еще существуют открытые исследовательские вопросы, которые предстоит решить в будущем. В качестве областей улучшения алгоритмов балансировки нагрузки в будущих исследованиях можно выделить: отказоустойчивость — большинство рассмотренных алгоритмов, не учитывают возможные сбои в системе; миграцию задач — процесс все еще требует больших затрат времени; некоторые подходы по-прежнему приводят к увеличению времени ожидания из-за используемых базовых статических алгоритмов, таких как RR.
Также стоит отметить пробелы в исследованиях, посвященных многоуровневой балансировки нагрузки в среде облачных вычислений. Далеко не все исследования учитывают динамическую изменчивость нагрузки, выстраивают согласованность между различными уровнями и рассматривают аспект безопасности.
Литература:
- Kaurav, N.S., Yadav, P., 2019. A genetic algorithm based load balancing approach for resource optimization for cloud computing environment. Int. J. Inf. Comput. Sci. 6 (3), 175–184.
- Issawi, S.F., Al Halees, A., Radi, M., 2015. An efficient adaptive load balancing algorithm for cloud computing under bursty workloads. Eng. Technol. Appl. Sci. Res. 5 (3), 795–800.
- Moly, M.I., Hossain, A., Lecturer, S., Roy, O., 2019. Load balancing approach and algorithm in cloud computing environment. Am. J. Eng. Res. 8 (4), 99–105.
- Manaseer, S., Alzghoul, M., Mohmad, M., 2019. An advanced algorithm for load balancing in cloud computing using MEMA technique. Int. J. Innov. Technol. Explor. Eng. 8 (3), 36–41.
- Nayak, P., Vania, J., 2015. Load Balancing using Modified Throttled Algorithm. IJSRD — Int J. Sci. Res. Dev. 3 (03), 3614–3616.
- Ghosh, S., Banerjee, C., 2016. Priority Based Modified Throttled Algorithm in Cloud Computing. Proc. Int. Conf. Inven. Comput. Technol. ICICT 2016, 2016. https:// doi.org/10.1109/INVENTIVE.2016.7830175.
- Shafiq, D.A, Jhanjhi N. Z., Azween A., 2021. Load balancing techniques in cloud computing environment: A review. Journal of King Saud University — Computer and Information Sciences 34 (2022) 3910–3933
- Sachdeva, R., Kakkar, S., 2017. A Novel Approach in Cloud Computing for Load Balancing Using Composite Algorithms. Int. J. Adv. Res. Comput. Sci. Softw. Eng. 7 (2), 51–56. https://doi.org/10.23956/ijarcsse/v7i2/0119.
- Subalakshmi, S., Malarvizhi, N., 2017. Enhanced hybrid approach for load balancing algorithms in cloud computing. Int. J. Sci. Res. Comput. Sci. Eng. Inf. Technol. 2 (2), 136–142.
- Rathore, J., Keswani, B., Rathore, V.S., 2018. An efficient load balancing algorithm for cloud environment. J. Invent. Comput. Sci. Commun. Technol. 4 (1), 37–41.
- Aliyu, A.N., Souley, P.B., 2019. Performance analysis of a hybrid approach to enhance load balancing in a heterogeneous cloud environment. Int. J. Adv. Sci. Res. Eng. 5 (7), 246–257. https://doi.org/10.31695/ijasre.2019.33430.
- Babu, K. R. R., Joy, A.A., Samuel, P., 2015. Load Balancing of Tasks in Cloud Computing Environment Based on Bee Colony Algorithm, Proc.–- 2015 5th Int. Conf. Adv. Comput. Commun. ICACC 2015, pp. 89–93, doi: 10.1109/ICACC.2015.47.
- Hashem, W., Nashaat, H., Rizk, R., 2017. Honey Bee based load balancing in cloud computing. KSII Trans. Internet Inf. Syst. 11 (12), 5694–5711. https://doi.org/ 10.3837/tiis.2017.12.001.
- Khatavkar, B., Boopathy, P., 2017. Efficient WMaxMin static algorithm for load balancing in cloud computation. Int. Conf. Innov. Power Adv. Comput. Technol. i-PACT2017, 1–6. https://doi.org/10.1109/IPACT.2017.8245166.
- Ehsanimoghadam, P., Effatparvar, M., 2018. Load balancing based on bee colony algorithm with partitioning of public clouds. Int. J. Adv. Comput. Sci. Appl. 9 (4), 450–455. https://doi.org/10.14569/IJACSA.2018.090462.
- Kiritbhai, P.B., Shah, N.Y., 2017. Optimizing Load Balancing Technique for Efficient Load Balancing. Int. J. Innov. Res. Technol. 4 (6), 39–44.
- Sharma, N., Singh, J., Bajaj, R., 2019. Genetic load balancing algorithms in cloud environment, Int. J. Innov. Technol. Explor. Eng., 8(9) Special Issue 4, pp. 98– 103, 2019, doi: 10.35940/ijitee.I1114.0789S419
- Katyal, M., Mishra, A., 2013. A Comparative study of load balancing algorithms in cloud computing environment, Int. J. Distrib. Cloud Comput., 1(2), 2013, doi: 10.17485/ijst/2016/v9i20/85866.
- Parmesivan, Y. A. P., Hasan, S., Muhammed, A., 2018. Performance Evaluation of Load Balancing Algorithm for Virtual Machine in Data Centre in Cloud Computing, Int. J. Eng. Technol., 7(4.31), pp. 386–390.
- Aslam, S., Shah, M.A., 2015. Load Balancing Algorithms in Cloud Computing: A Survey of Modern Techniques,” 2015 Natl. Softw. Eng. Conf. (NSEC 2015), pp. 30–35.
- Liu Z., Wang X. A pso-based algorithm for load balancing in virtual machines of cloud computing environment. Advances in Swarm Intelligence, ser. Lecture Notes in Computer Science, Berlin, Heidelberg, Springer. 2012. Vol. 7331, pp.142–147.
- Zhan S., Huo H. Improved PSO-based task scheduling algorithm in cloud computing. Journal of Information and Computational Science, 2012. 9(13), pp.3821–3829.
- Liu J., Guo Luo X., Zhang X. M. F. Job scheduling algorithm for cloud computing based on particle swarm optimization. Advanced Materials Research, 2013. 662, pp.957–960.
- Kumar, R., Prashar, T., 2015. Performance Analysis of Load Balancing Algorithms in Cloud Computing, Int. J. Comput. Appl. (0975–8887), 120(7), pp. 19–27.
- Selvakumar, A., Gunasekaran, D.G., 2017. A Novel Approach in Load Balancing for Dynamic Cloud Environment Using Aco. Int. J. Pure Appl. Math. 116 (5), 67–72.
- Singh, G.S., Vivek, T., 2016. Implementation of A Hybrid Load Balancing Algorithm for Cloud Computing. Int. J. Adv. Technol. Eng. Sci. 3 (1), 73–81.
- Singh, A.N., Prakash, S., 2018. Wamlb: weighted active monitoring load balancing in cloud computing. Adv. Intell. Syst. Comput. 654 (January), 677–685. https://doi. org/10.1007/978–981–10–6620–7_65.
- Kaur, S., Sharma, T., 2018. Efficient load balancing using improved central load balancing technique, Proc. 2nd Int. Conf. Inven. Syst. Control. ICISC 2018, pp. 1– 5, doi: 10.1109/ICISC.2018.8398857.
- Adhikari, M., Amgoth, T., 2018. Heuristic-based load-balancing algorithm for IaaS cloud. Futur. Gener. Comput. Syst. 81, 156–165. https://doi.org/10.1016/ j.future.2017.10.035.
- Alworafi, M. A., Dhari, A., El-Booz, S. A., Nasr, A. A., Arpitha, A., 103 and Mallappa, S., “An enhanced task scheduling in cloud computing based on hybrid approach,” in Data Analytics and Learning. Springer, 2019, pp. 11–25.
- Rekha, P.M., Dakshayini, M., 2018. Dynamic Cost-Load Aware Service Broker Load Balancing in Virtualization Environment, Int. Conf. Comput. Intell. Data Sci. (ICCIDS 2018), vol. 132, pp. 744–751, 2018, doi: 10.1016/j.procs.2018.05.086.
- Tian, W., Zhao, Y., Zhong, Y., Xu, M., Jing, C.: A dynamic and integrated load-balancing scheduling algorithm for cloud datacenters. In: 2011 IEEE International Conference on Cloud Computing and Intelligence Systems 104 (CCIS), pp. 311–315. IEEE (2011).
- Malhotra, M., Singh, A.: Adaptive framework for load balancing to improve the performance of cloud environment. In: 2015 IEEE International Conference on Computational Intelligence & Communication Technology (CICT), pp. 224–228. IEEE (2015).
- Hao, Y., Liu, G., Lu, J.: Three levels load balancing on cloudsim. Int. J. Grid Distrib. Comput. 7(3), 71–88 (2014).
- Dhurandher, S.K., Obaidat, M.S., Woungang, I., Agarwal, P., Gupta, A., Gupta, P.: A clusterbased load balancing algorithm in cloud computing. In: 2014 IEEE International Conference on Communications (ICC), pp. 2921–2925. IEEE (2014).
- Хантимиров Р. И. Модель распределения ресурсов в процессе функционирования облачной среды / Р. И. Хантимиров, А. А. Микрюков // Открытое образование. 2015. № 5. — С.44–48.
- Хантимиров Р. И. Прогнозирование нагрузки в облачной среде с использованием нейросетей, обучаемых системой искусственного иммунитета / Р. И. Хантимиров, А. А. Микрюков// Нейрокомпьютеры. 2015. № 5. С.1–4.
- Петров Д. Л. Оптимальный алгоритм миграции данных в масштабируемых облачных хранилищах/ Д. Л. Петров // Управление большими системами. 2010. — №. 30. — С.180–197.
- Ходар А. A., Десятирикова Е. Н., Алхаят И. М. Программа для оптимизации балансировки нагрузки с использованием генетического алгоритма. — Свидетельство о государственной регистрации программы для ЭВМ. М.: ФИПС, 2019. № 2019667473 от 17.12.2019.
- Разработка модели для улучшения планирования задач в облачных вычислениях на основе оптимизации роя частиц/ А. A. Ходар, Э. К. Алгазинов, Е. Н. Десятирикова, И. Алхаят // Вестник Воронежского государственного технического университета. — 2019. — Т. 15. № 5. — С.23–29.
- Ходар А. A. Разработка подхода к планированию ресурсов виртуальных машин в облачных вычислениях с использованием генетического алгоритма/ А. A. Ходар, Э. К. Алгазинов, Е. Н. Десятирикова // Вестник РГУПС. — 2019. — № 4. — С.101–109.
- Спицын А. А. Алгоритм настройки параметров расписания облачных вычислений на основе оптимизации роя частиц// Вестник Рязанского государственного радиотехнического университета, № 75, 2021. С. 44–52.
- Спицын А. А. Оптимизированный по стоимости эвристический алгоритм для планирования рабочих процессов в облачной среде сервисов IaaS// Системы управления и информационные технологии, № 1(83), 2021. — С. 30–37.
- Спицын А. А., Мутин Д. И. Оптимизация миграции виртуальных машин в облачных вычислениях с помощью эффективного алгоритма размещения// Матер. 16-й Международной научно-технической конференции «Современные инструментальные системы, информационные технологии и инновации» (МТО-56). — Курск, 2021. С. 251–256.