Научная статья на тему 'СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ БАЛАНСИРОВКИ НАГРУЗКИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ'

СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ БАЛАНСИРОВКИ НАГРУЗКИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
235
36
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНАЛИЗ / БАЛАНСИРОВКА НАГРУЗКИ / АЛГОРИТМЫ / ROUND ROBIN / CENTRAL MANAGEMENT ALGORITHM / RADMOZIED ALRGORITHM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Шуляк А.В.

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ БАЛАНСИРОВКИ НАГРУЗКИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ»

2. Вредные вещества в промышленности. Справочник для химиков, инженеров и врачей. Изд. 7-е, пер. и доп. В трех томах. Том 1. Органические вещества. Под ред. засл. деят. науки проф. Н.В. Лазарева и докт. мед. наук Э.Н. Левиной. Л., «Химия», 1976. 592 с.

3. Вредные вещества в промышленности. Справочник для химиков, инженеров и врачей. Изд. 7-е, пер. и доп. В трех томах. Том 2. Органические вещества. Под ред. засл. деят. науки проф. Н.В. Лазарева и докт. мед. наук Э. Н. Левиной. Л. «Химия», 1976. 624 с.

4. Газопроявления в скважинах и борьба с ними / А.И. Булатов, В.И. Рябченко, И.А. Сибирко М.: Недра, 1969. 278 с.

5. Галимов М.А., Рябченко В.И. Технология применения порошкообразных материалов для буровых растворов // Обзорная информ. Сер. Строительство нефтяных и газовых скважин на суше и на море. М.: ВНИИОЭНГ, 1990. 48 с.

6. Глинка H.JL Общая химия: Учебное пособие для вузов. 24-е изд., исправленное. / Под ред. В.А. Рабиновича. Д.: Химия, 1985. 704 с.

7. Рахимов О.Д., Муродов М.О., Рузиев Х.Ж. Таълим сифати ва инновацион технологиялар. Тошкент, «Фан ва технологиялар» нашриёти, 2016. 208 б.

8. Rakhimov O.D., Rakhimova D.O. Educational quality in the era of globalization. // Проблемы науки, 2021. № 1(60). С. 36-39. DOL: 10.24411/2413-2101-2021-10101.

9. Rakhimov O.D., Berdiyev Sh.J., RakhmatovM.L., Nikboev A.T. Foresight In The Higher Education Sector of Uzbekistan: Problems and Ways of Development. // Psychology and Education Journal, 2021. 58 (3). 957-968. DOL: 10.17762/pae.v58i3.3029

10. Rakhimov O.D., Ashurova L. Types of modern lectures in higher education, technology of their design and organization.//Проблемы современной науки и образования, 2020. № 12(157), часть 1. С. 41-46. DOL: 10.24411/2304-2338-2020-11203

11. Холбаев Б.М., Юсупов И.Н., Шомуродов Б.Х. Водохозяйственное районирование территории аридной зоны (бассейна р. Кашкадарья) // Вестник науки и образования, 2019. №10. С. 53-56.

12.Холбаев Б.М., Хазраткулов Э.Ш. Можно ли использовать коллекторно-дренажную воду на орошение // Наука и образование сегодня, 2019. №10. С. 9-12.

13.Холбаев Б.М., Рахимов О.Д., Исматова Н.И., Турсунова Н.Ш. Мониторинг показателей эколого-мелиоративного состояния на урожай сельскохозяйственных культур в аридной зоне // Наука, техника и образование, 2019. № 4. С. 112-115.

14.Холбаев Б.М., Суннатов З.У., Султонов Ш.А., Ахмедов Х.Р. Оценка и изучение геоморфологического строения нижней части Кашкадарьинской области // Научнвй журнал, 2019. № 6. С. 14-16.

СРАВНИТЕЛЬНЫЙ АНАЛИЗ АЛГОРИТМОВ БАЛАНСИРОВКИ НАГРУЗКИ В СРЕДЕ ОБЛАЧНЫХ ВЫЧИСЛЕНИЙ

Шуляк А.В.

Шуляк Александр Валерьевич - ведущий инженер по стабильности и производительности

платформы, Divido Financial Services, г. Лондон, Соединённое Королевство Великобритании и Северной Ирландии

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

Ключевые слова: анализ, балансировка нагрузки, алгоритмы, round robin, Central Management A lgorithm, Radmozied A lrgorithm.

Введение:

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

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

Базовые термины

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

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

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

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

Рассматриваемые статические алгоритмы балансировки нагрузки: Round Robin, Central Management Algorithm, Randomized algorithm и Threshold Algorithm.

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

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

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

Threshold Algorithm (алгоритм пороговых значений) - в данном алгоритме нагрузка распределяется исходя из локальных значений загрузки оконечных узлов без постоянной коммуникации с балансировщиком. Балансировщик нагрузки хранит предполагаемую загрузку целевой системы и ведёт распределение в соответствии с ней. Есть три возможных состояния цели: минимальная загрузка, средняя загрузка и

перегрузка системы. Переход из состояния в состояние определяется пороговыми значениями min и max для каждого из состояний.

Состояние минимальной нагрузки: cLoad < min

Состояние средней загрузки: min < cLoad < max

Состояние перегрузки системы: cLoad > max

cLoad - текущая загрузка.

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

Динамическая балансировка нагрузки

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

Динамические алгоритмы делятся на следующие группы:

Алгоритм центральной очереди

Алгоритм центральной очереди работает по принципу динамического распределения. Он хранит новые действия и невыполненные запросы в виде циклической очереди FIFO (first-in-first-out) на главном хосте (балансировщике). Каждый новый запрос, поступающий в диспетчер очередей, добавляется в очередь. Затем, когда диспетчер очередей получает запрос на действие, он удаляет первое действие из очереди и отправляет его инициатору запроса. Если в очереди нет задач для выполнения, запрос от вычислительного узла буферизуется до тех пор, пока не станет доступна новая задача. Если новая задача поступает в диспетчер очереди, когда в очереди есть невыполненные задачи, первый такой запрос удаляется из очереди, и ему назначается новая задача. Когда загрузка процессора вычислительного узла падает ниже порогового значения, локальный диспетчер нагрузки отправляет запрос о новом действии в центральный диспетчер нагрузки. Центральный диспетчер нагрузки сразу отвечает на запрос, если в очереди запросов процесса обнаружено готовое действие, или ставит запрос в очередь до тех пор, пока не поступит новое действие.

Алгоритм локальной очереди

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

Балансировка на основе инициативы отправителя

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

Балансировка на основе инициативы получателя

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

Симметричный и периодически меняющийся

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

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

• Точность прогнозирования (Forecasting Accuracy) Прогнозирование — это степень соответствия расчетных результатов работы алгоритма их фактическому значению. Статические алгоритмы обеспечивают большую точность, чем динамические алгоритмы, так как отсутствует влияние внешних параметров.

• Утилизация ресурсов (Resource Utilization) Использование ресурсов, затрачиваемых на сам процесс балансировки нагрузки, включая утилизацию ресурсов для пересылки данных с/на оконечные цели. Если алгоритм способен использовать ресурсы, их можно более эффективно перемещать на недогруженные процессоры.

• Предотвращение перегрузки (Overload Rejection) Если балансировка нагрузки невозможна, требуются ли дополнительные меры по предотвращению перегрузки.

• Отказоустойчивость (Fault Tolerant) Этот параметр показывает устойчивость алгоритма к возникновению разнообразных ошибок. Данный параметр указывает на возможность алгоритма продолжить работу без снижения производительности в случае сбоя. Если производительность алгоритма снижается, это снижение должно быть пропорционально серьезности сбоя.

• Пропускная способность (Throughput) Пропускная способность — это объем данных, пропускаемых балансировщиком нагрузки использующий данный алгоритм.

• Время обработки нового запроса (Turnaround Time) Время обработки - это время от поступления нового запроса до его перенаправления к цели.

• Время в очереди (waiting time) Время ожидания - это время которое проходит от поступления нового запроса до начала его обработки алгоритмом балансировки.

Сравнение производительности алгоритмов с центральной диспетчеризацией

Алгоритм случайного планирования

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

RECIEVETARGETID = RANDOM(N) * REQUEST_TO(TARGETID).

Алгоритм циклического планирования

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

В таком случае, при наличии трёх целей A/B/C, запросы по очереди уйдут на сервер A, сервер B и сервер C, и далее по кругу - сервер A и так далее. Данный алгоритм рассматривает все цели как равные, вне зависимости от количества новых запросов и загрузки целей.

RECIEVETARGETID

= (PREVSERVERID + 1) * MOD(N) * REQUEST TO (TARGET ID) Взвешенный круговой алгоритм

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

RECIEVETARGETID

= (PREVSERVERID + 1) * TARGER WEIGHT (TAR GET ID ) * REQUEST TO(TARGETID) Алгоритм планирования для цели с наименьшим количеством соединений Алгоритм планирования наименьшего количества соединений направляет сетевые соединения на сервер с наименьшим количеством установленных соединений. Это один из алгоритмов динамического планирования, ему требуется динамически подсчитывать активные соединения для каждого сервера. RECEIVE_TARGET_ID=0 FOR ITERATOR=1 TO N_TARGETS

IF (SERVER(ITERATOR). CONNECTIONS <

SERVER(TARGET_ID). CONNECTIONS) RECEIVE_TARGET_ID = I ITERATOR ++

REQUEST_TO(RECEIVE_TARGET_ID)

Алгоритм планирования для цели с наименьшей загрузкой

Алгоритм распределения на основе наименее загруженного сервера (цели) в чем-то похож на алгоритм планирования с наименьшим количеством соединений. Это схожий динамический алгоритм, который требует расчета нагрузки на каждый сервер (цель) во время распределения новых запросов. Поскольку алгоритм распределяет запросы на основе фактической нагрузки на сервер, он должен обеспечивать оптимальную балансировку нагрузки. RECEIVE_TARGET_ID=0 FOR ITERATOR=1 TO N_TARGETS

IF (SERVER(ITERATOR).LOAD < SERVER(TARGET_ID) .LOAD)

RECEIVE_TARGET_ID=ITERATOR

REQUEST_TO(RECEIVE_TARGET_ID)

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

Параметр Round-robin Random Local Queue Central Queue Central Manage ment и

Предотвраще ние перегрузки Нет Нет Да Да Нет Нет

Отказоустойч ивость Нет Нет Да Да Да Нет

Точность прогнозирова ния Высокая Высокая Низкая Низкая Высокая Высокая

Стабильность Высокая Высокая Низкая Низкая Высокая Высокая

Утилизация ресурсов Низкое Низкое Высокое Низкое Низкое Низкое

Пропускная способность Низкая Низкая Высокая Высокая Низкая Низкая

Время обработки нового запроса Низкое Низкое Высокое Высокое Низкое Низкое

Время в очереди Большее Большее Меньшее Меньшее Большее Большее

Обработка запроса Нет Нет Да Да Нет Нет

Тип Статическ ий Статичес кий Динамичес кий Динамиче ский Статичес кий Статичес кий

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

1. Kothari Mangal, Da-Wei Gu, Postlethwaite Ian. An intelligent suboptimal path planning algorithm using Rapidly-exploring Random Trees // 2009. European Control Conference (ECC).

2. Furqan Alam, Thayananthan Vijey, Katib Iyad. Analysis of round-robin load-balancing algorithm with adaptive and predictive approaches // 2016. UKACC 11th International Conference on Control (CONTROL).

3. Kumawat Bhawesh, Kumawat Rekha. A Comparative Study of Load Balancing Algorithms in Cloud Computing Environment using Cloud Analyst // IJESC, 2017. V. 7. I3.

4. Balwinder Kaur, Rachhpal Singh. A Comparison and Analysis of Load Balancing Algorithms in Cloud Computing // Advances in Computational Sciences and Technology, 2016. V. 9. N 1.

i Надоели баннеры? Вы всегда можете отключить рекламу.