WWW.BOOK.LIB-I.RU
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - Электронные ресурсы
 

«Электронное научное специализированное издание – • № 2 (14) • 2014 • журнал «Проблемы телекоммуникаций» УДК 621.391.31 АНАЛИЗ МЕТОДОВ БАЛАНСИРОВКИ ...»

Электронное научное специализированное издание –

• № 2 (14) • 2014 • http://pt.journal.kh.ua

журнал «Проблемы телекоммуникаций»

УДК 621.391.31

АНАЛИЗ МЕТОДОВ БАЛАНСИРОВКИ НАГРУЗКИ

В КЛАСТЕРЕ SIP-СЕРВЕРОВ

Е.Д. КУЗЬМИНЫХ

Харьковский национальный

университет радиоэлектроники

Abstract

– Voice service over IP is becoming more and more popular nowadays. SIP is the most used signaling protocol in

IP-telephony must ensure the reliability and scalability of services. One of the important components of the SIP network is a SIP proxy server. In order to ensure stable operation of the network in the face of increasing load, proposed an approach that focuses on increasing the performance of the server through server clustering. In this connection there is the issue of load balancing between servers within the cluster. The paper presents an analysis of load balancing algorithms in a cluster of SIP servers such as roundrobin, hash algorithm, RWMA. These algorithms don’t take into account the exchange process of signaling SIP messages. New load balancing method was proposed. The method is based on the calculation of active transactions on each server with the possibility of taking into account the specific weights of these transactions. The results show that the proposed method of load balancing in the number of transactions on the server has a connection time under high load is 10 times less than other approaches, and in the average load - 5-6 times less.



Анотація – У роботі представлено аналіз алгоритмів Аннотация – В работе представлен анализ алгоритмов балансування навантаження в кластері SIP-серверів. балансировки нагрузки в кластере SIP-серверов. УчитыВраховуючи недоліки таких алгоритмів, був розроблений вая недостатки таких алгоритмов, был разработан метод балансування, який враховує особливості обміну метод балансировки, который базируется на подсчете сигнальними повідомленнями по протоколу SIP. Метод активных транзакций на каждом сервере с возможнобазується на підрахунку активних транзакцій на кож- стью учета относительного веса этих транзакций.

ному сервері з можливістю врахування відносної ваги цих транзакцій.

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

–  –  –

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





Алгоритм балансировки нагрузки является наиболее важной частью для кластера SIP-серверов. Современные алгоритмы балансировки нагрузки можно разделить на два типа: статические и динамические (адаптивные) алгоритмы [1, 2]. Статические алгоритмы просты в реализации, например, случайное распределение нагрузки Random, круговая балансировка нагрузки Round Robin, взвешенное распределение нагрузки Weighted Round Robin и т.д. Динамические алгоритмы используют информацию о текущем состоянии системы или узла на основе различных метрик (например, загрузка ЦП, доступная память и т.д.), чтобы определить способ распределения нагрузки.

Рассмотрим некоторые наиболее используемые алгоритмы балансировки нагрузки SIP-серверов.

По значению идентификатора. Множество пользователей разделено между М серверами в кластере в зависимости от первой буквы идентификатора пользователя [3]. Сервер балансировки нагрузки распределяет нагрузку между серверами в зависимости от ID пользователя. Например, на рис. 1 прокси-сервер S1 ответственный за вызовы от пользователей, чьи идентификаторы начинаются с букв A-J, сервер S2 обслуживает вызовы пользователей с ID K-T, а сервер S3 - вызовы пользователей с ID U-Z.

Но этот алгоритм не гарантирует равномерного распределения нагрузки.

–  –  –

Round Robin (RR). Когда приходит новый запрос на установление сессии, SIPбалансировщик выбирает следующую запись IP-адреса для конкретного сервера SIP, которая хранится в системе доменных имен (DNS). Этот алгоритм считается неадап

–  –  –

тивным статическим, так как не требует от сервера балансировки нагрузки хранить и обновлять базу о нагрузке и доступности SIP-серверов в домене. Для веббалансировщика этот механизм встроен в DNS. Если предыдущий вызов был отправлен на сервер М, то следующий вызов будет направлен на (М+1) mod N сервер, где N – это число серверов в кластере. Хотя этот алгоритм обеспечивает более равномерное распределение нагрузки между серверами, чем по значению идентификатора, но является неэффективным, когда все серверы не имеют равную производительность обработки ресурсов.

Хэш-алгоритм. Этот алгоритм распределяет вызовы между серверами на базе значения поля Call-ID, которое содержится в заголовке сообщения SIP для определения сессии, к которой относится сообщение. Новая транзакция INVITE с Call-ID х направляется на сервер (Hash (х) modN), где Hash (х) - хэш-функция и N это количество серверов в кластере.

Хэш-функция вычисляется по формуле Hashx x0 31n1 x1 31n2... xn1, где 0, 1 … 1 –элементы идентификатора в системе ASCII. Так как поле Call-ID является строкой и состоит из букв и цифр, она требует преобразования к числовому виду.

Балансировка нагрузки по хэш-функции является общим подходом к балансировке нагрузки в сетях SIP, OpenSER, Asterisk Balancer, и коммутатор Nortel Networks 2-7 уровней использует этот алгоритм.

По взвешенному скользящему среднему значению времени отклика (RWMA). Еще один способ обеспечить балансировку нагрузки основан на времени отклика сервера. Алгоритм RWMA (Response-time Weighted Moving Average) направляет вызовы на сервер, который имеет самое маленькое значение взвешенного скользящего среднего времени отклика сервера для последних n расчетов времени отклика.

Формула для вычисления RWMA измеряет нагрузку через определенные интервалы времени, последние значения исходной функции более значимы, чем предыдущие, причём функция значимости линейно убывающая. Самый последний отсчет имеет вес n, следующий c конца – n - 1, а самый старый с весом единица. Однако алгоритм может неправильно среагировать на увеличение нагрузки, если самые последние измерения времени отклика весьма аномальны. Сервер балансировки нагрузки определяет время ответа на запрос, основываясь на времени, когда запрос был получен на сервере, и временем, когда сервер балансировки нагрузки получит ответ 200 OK на запрос от сервера.

Проблема балансировки нагрузки для Web-серверов хорошо изучена [4]. SIP протокол похож по синтаксису на протокол HTTP, но имеется ряд очень важных отличий между этими двумя протоколами. Например, SIP является протоколом, поддерживающим обмен сообщениями через транзакции, его сессии состоят из INVITE и не-INVITE транзакций. Сессия создается INVITE транзакцией и разрушается BYE транзакцией. SIP имеет заголовки сообщений, которые связаны как со всей сессией,

–  –  –

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

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

Метка соответствия сессии и запроса Session-aware request assignment (SARA) представляет собой процесс, при котором система помечает запрос и отправляет его на сервер таким образом, что последующие запросы, принадлежащие этой же сессии, будут назначены на этот же сервер. Многие системы балансировки нагрузки HTTP не принимают во внимание состояние сессий при принятии решений распределения нагрузки.

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

Балансировка нагрузки поддерживается оборудованием многих фирмпроизводителей, но относительно выбора метода балансировки нагрузки на узлах сети не существует единой рекомендации. Но SIP-кластер может состоять из хостов с разной функциональностью. Например, такие узлы сети, как SIP прокси-серверы, агенты пользователя B2BUA (back-to-back user agent), шлюзы телефонной сети общего пользования (PSTN), SIP-серверы медиа сервисов и т.п. могут иметь разную функциональность и пропускную способность. Кроме того, время, которое требуется узлу, чтобы обработать SIP запрос, также может отличаться. SIP прокси-сервер, работающий на уровне транзакций, может быть более эффективным при обработке транзакций, чем B2BUA, так как ему не надо поддерживать long-lived состояние диалога в дополнение к состоянию транзакций. Шлюзы PSTN могут иметь ограничения для обработки разных типов данных, такие как лимит для медиа-ресурсов, и поэтому ресурсы для обработки входящих запросов могут быть истощены, хотя шлюз может иметь достаточно вычислительной мощности (т.е. CPU).

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

Первое условие то, что функциональность и пропускная способность всех SIP-серверов в кластере должны быть почти равными. Второе, поскольку круговая схема распределяет нагрузку по (1/N)· на каждый сервер, где N - число серверов, – интенсивность входных запросов (запр/c), это предполагает, что коэффициент загруженности сервера должен быть меньшим единице. То есть интенсивность входного трафика должна быть меньше скорости обслуживания. И, наконец, круговая балансировка нагрузки не имеет механизма обратной связи, когда сервер в кластере может информировать сервер балансировки нагрузки о своем текущем состоянии и загруженности.

Также в ходе проведенного анализа методов балансировки нагрузки в кластере SIP-серверов можно сделать вывод, что ни один из представленных методов не учиты

–  –  –

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

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

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

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

Согласно RFC 3261 в протоколе SIP сессии подразделяются на транзакции INVITE и не-INVITE (транзакция #1 и #2 на рис.2, соответственно). В процедуре установления соединения создание новой сессии инициируется сообщением INVITE, а ее завершение – приходом ответа 200 ОК на запрос BYE, которые принадлежат той же сессии. При балансировке нагрузки по количеству активных сессий получение ответа 200 ОК является индикатором того, что прокси-сервер завершил обработку сессии и его ресурсы освободились.

–  –  –

Рис. 2. Сценарий обмена сигнальными сообщениями по протоколу SIP Недостатком такого способа мониторинга нагрузки на сервер SIP является то, что не всегда число вызовов (сессий) отображает нагрузку на сервере. Между транзакциями во время сессии могут быть долгие неактивные периоды. Кроме этого, некоторые сессии могут включать разное количество транзакций, иметь разную значимость, сложность обработки, а отсюда – потреблять разное количество ресурсов сервера.

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

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

Для того чтобы учесть эти особенности транзакций SIP протокола, было предложено ввести вес для каждой транзакции, который учитывался бы при подсчете числа транзакций на сервере балансировки нагрузки. Анализируя заголовок входящего запроса, сервер присваивает этому запросу вес и увеличивает свое содержимое на значение этого веса. Например, сервер на данный момент обрабатывает INVITE (с относительным весом 1,75) и BYE транзакцию (с относительным весом 1), тогда его

–  –  –

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

Уровень загрузки Еі для і-го SIP-сервера зависит от загрузки ресурсов этого сервера:

<

–  –  –

где – очень маленькое число, например 0,0001; – взвешенные параметры ресурсов, по которым проводится мониторинг загрузки сервера ( = 1, 2..., где – число параметров). Взвешенные параметры ресурсов конфигурируются администратором в зависимости от функциональности сервера, его продуктивности. LPki - загрузка k-го ресурса і-го SIP-сервера. Для предложенного метода для определения загрузки іго сервера по количеству активних транзакций, обслуживаемых на данный момент этим сервером, с учетом относительного веса этих транзакций имеем:

–  –  –

где – относительный вес j-ой транзакции ( = 1, 2.., где n – число транзакций, например, INVITE, BYE, OPTION, REGISTER транзакции для сети SIP).

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

ІІІ. Исследование метода балансировки нагрузки по числу транзакций на сервере В первой части был проведен анализ методов балансировки нагрузки на серверах SIP. Для оценки эффективности ранее известных методов и предложенного нами метода было проведено моделирование в среде CPN Tools. Моделирование проводилось на основе модели, описанной в [7] в форме раскрашенных сетей Петри. В ходе моделирования предположили, что кластер серверов состоит из 8 серверов с одинаковыми вычислительными мощностями и с пропускной способностью в 37 выз/сек. Интенсивность входного трафика изменялась от 1 до 37 выз/сек. В результате метод балансировки, распределяющий нагрузку между серверами по показателю активных транзакций и учитывающий относительный вес этих транзакций, дал

–  –  –

Результаты исследований показывают, что предложенный метод балансировки загрузки по числу транзакций на сервере имеет время установления соединения в условиях высокой нагрузки в 10 раз меньше, чем другие подходы, а в условиях средней нагрузки – в 5-6 раз меньше. Использование этого метода для балансировки нагрузки обеспечивает на 25% лучшую производительность серверов SIP-кластера, чем стандартный метод, основанный на hash-алгоритме, и на 14% лучшую производительность, чем циклический метод распределения по алгоритму Round Robin (RR). Показатель эффективной пропускной способности сервера при пиковой нагрузке в кластере на 20% выше, чем при применении других методов балансировки нагрузки.

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

1. Shivaratri G., Krueger P., Singhal M. Load distributing for locally distributed systems // Computer. – 1992. - № 25(12). – P. 3344.

2. Teng S., Liao J.-X., Zhu X.-M. Dynamic weighted random load balancing algorithm for SIP application server // The Journal of China Universities of Posts and Telecommunications. – 2009. Р. 67–70.

3. Singh K., Schulzrinne H. Failover and load sharing in SIP telephony // In International Symposium on Performance Evaluation of Computer and Telecommunication Systems (SPECTS).

– 2004. – P.91-102.

4. Тао Чжоу. Системы балансировки нагрузки Web-серверов [Электронный ресурс] /

Тао Чжоу // Windows IT Pro. – 2000. - № 03. - Режим доступа:

http://www.osp.ru/win2000/2000/03/174228/.

–  –  –

5. Harchol-Balter M., Crovella M., Murta C.D. On choosing a task assignment policy for a distributed server system // Journal of Parallel and Distributed Computing. – No.59(2). – 1999. P.204–228.

6. Schroeder B., Harchol-Balter M. Evaluation of task assignment policies for supercomputing servers: The case for load unbalancing and fairness // Cluster Computing. – 7(2). –2004. - P.151–161.

7. Кузьминых Е.Д. Оценка параметров SIP-сети с использованием раскрашенных сетей Петри [Электронный ресурс] / Е.Д. Кузьминых // Проблеми телекомунікацій. – 2012. – № 1 (6). – С. 20 – 40. – Режим доступа: http://pt.journal.kh.ua/2012/1/1/121_kuzminykh_sip.pdf.




Похожие работы:

«Center of Scientific Cooperation Interactive plus Четаева Марина Александровна ассистент ФГБОУ ВО "Тольяттинский государственный университет" г. Тольятти, Самарская область УСТОЙЧИВЫЕ СЛОВОСОЧЕТАНИЯ В ТЕКСТАХ ПУБЛИЦИСТИЧЕСКОГО СТИЛЯ Аннотация: автор статьи обращается к теме устойчивых словосочетаний в текстах...»

«Лалетин Ю.П. Выдающийся востоковед Константин Александрович Лебедев Константин Александрович Лебедев родился 20 марта 1920 года в г. Коломна Московской губернии (области) в семье служащего. В 1942 году окончил Московский институт востоковедения (МИВ) и с 1...»

«Алексей Мазур Омрачение Провидения Часть 2 Омрачение Провидения. Часть 2 ВВЕДЕНИЕ Мы продолжаем цикл проповедей, посвященных исследованию промысла Божьего в отношении избранного остатка народа Божьего в Последние времена. Мы ут...»

«" ". ( 1) " ", : 16. ( 1). 5. :, 2008. 80. :. " ". (), 2008 Дорогие друзья! Предлагаем вам использовать данную рабочую тетрадь на уроках геометрии. Она поможет научиться разбираться со многими вопросами, возникающими при изучении геоме...»

«Преподаватель-организатор ОБЖ МАОУ "Школа №156 им. Б.И. Рябцева" Неледова Н.В. Представление инновационного опыта. В настоящее время российское образование должно работать на опережение, готовить человека к жизни в постоянно меняющихся условиях, способствовать развитию человеческог...»

«Инструкция по эксплуатации Многофункциональный инверторный сварочный аппарат MIG-MAG-FLUX / MMA / TIG DC-LIFT MULTIMIG-228 Дата производства: 04/2015 Инструкция по эксплуатации многофункционального инверторного сварочного аппарата MULTIMIG-228 БЫСТРЫЙ ЗАПУСК...»

«ОТЧЕТ ПО ОЦЕНКЕ СИТУАЦИИ РОМА В УКРАИНЕ И ВЛИЯНИИ ТЕКУЩЕГО КРИЗИСА (Неофициальный перевод) Варшава Август 2014 СОДЕРЖАНИЕ РЕЗЮМЕ РЕКОМЕНДАЦИИ I ВВЕДЕНИЕ II ОСНОВНЫЕ НАБЛЮДЕНИЯ О СИТУАЦИИ РОМА 1. Борьба с расизмом и дискр...»

«Александр Павлович Лопухин Толковая Библия. Ветхий Завет. Книга пророка Захарии. О КНИГЕ ПРОРОКА ЗАХАРИИ Сведения о жизни и деятельности пророка Захарии. Имени пророка Захарии были усвояемы различные значения; по мнению большинства новейших исследователей, имя Zekhar...»

«Художник этой книги лауреат Всероссийского конкурса детских читательских симпатий "Золотой ключик" Художник Леонид Владимирский КАК ПОЯВИЛАСЬ ВОЛШЕБНАЯ СТРАНА старое время, так давно, что никто не знает, когда это было, жил могучий волшебник Гуррикап. Жил он в стране, которую много позже назвали Америкой, и никто на свете не мог сравниться с Гуррикапо...»









 
2017 www.book.lib-i.ru - «Бесплатная электронная библиотека - электронные ресурсы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.