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

Тип работы:
Реферат
Предмет:
ТЕХНИЧЕСКИЕ НАУКИ


Узнать стоимость

Детальная информация о работе

Выдержка из работы

ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRЮRI. CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ»
УДК 004
№ 1 2016
ПРОБЛЕМЫ УПРАВЛЕНИЯ НАГРУЗКОЙ СЕТЕВЫХ УЗЛОВ Костюков Антон Александрович
аспирант
Пензенский государственный университет, Пенза
Аннотация. Статья посвящена разбору проблем, с которыми предстоит столкнуться при проектировании и реализации распределенной вычислительной сети рассчитанной на высокую нагрузку. Поднимаются вопросы балансировки нагрузки в сетях высокой доступности и высокой нагрузки, управление нагрузкой с точки зрения программно-аппаратной составляющей серверного кластера.
Ключевые слова: Распределённые вычислительные системы, масштабирование, закон Амдала, кластерные системы, отказоустойчивость системы.
LOAD CONTROL NETWORK NODES PROBLEMS Kostiukov Anton Alexandrovich
graduate student Penza State University, Penza
Abstract. The article is devoted to coverage of issues to be faced in the design and implementation of a distributed computing network. Questions of network load balancing in high-availability and high load, load control in terms of hardware and software components of the server cluster.
Key words: distributed computing systems, scaling, Amdahl'-s Law, cluster systems, fault tolerance.
В условиях современных реалий, нагрузки на сервера популярных ресурсов становятся несоизмеримо бо льшими, нежели хотя бы 10 лет назад. Тем паче, если брать в расчет IOT (internet of things/ интернет вещей), который произвел гигантский скачок за последние несколько лет, новые архитектуры приложений, позволившие делать множество фоновых запросов (в том числе и long pool), то ситуация для многих вы-
w Л W
соконагруженных ресурсов становится довольно сложной. С одной стороны необходимо обеспечить своих клиентов (пользователей) достойной стабильностью работы своих ресурсов, с другой, экономить на горизонтальном масштабировании. Выход из этой ситуации лежит в сфере балансировки нагрузки, ведь синергетика кластера не вызывает сомнений в на данный момент. По состоянию на 2016 год, термин высоко-нагруженный сервер отражает совсем не ту нагрузку, что была не так давно (5−7 лет назад), а количество запросов, которое увеличилось в десятки раз. В данной проблематике, лежит и проблема 10К, о которой будет подробно написано ниже, в данной статье. Итак, проблема управления нагрузкой на сервере вычислений, стала сама по себе краеугольным камнем всей современной архитектуры «Клиент-Сервер». Необходимо отметить, что обычно, для увеличения производительности кластера в целом, применяют масштабирование системы.
Проблема 10К (10U). Так называемая проблема десяти тысяч од-
-1
новременных подключений1 возникла в годы, когда количество пользователей на популярных ресурсах стало исчисляться сотнями тысяч в день. Так же открытию данной проблемы способствовало изобретение новых архитектур приложений, поддерживающих long pool подключения, и обменивающихся данными в пределах одного сеанса подключения, что многократно увеличило как число передаваемых данных по сети, так и число одновременных подключений. В последствии проблема 10К
л
1 Термин 10K Problem ввел в обиход в 1999 году Дэн Кегел, инженер одного из FTP-ресурсов того времени.
превратилась в проблему 10и — обработка 10 миллионов одновременных подключений. Это произошло по причине развития распределенных вычислительных сетей, где вычисления производит не один узел, а ферма, к которой подключен пул балансировщиков нагрузки. При данном подходе огромную роль играет алгоритм, по которому производится балансировка [1]. Разработка подобных алгоритмов назначения задач является приоритетным направлением для повышения качества обслуживания подобных, высоконагруженных сервисов [2].
Закон Амдала. Данный закон, применим не только к обычным параллельным вычислениям, но и к распределенным вычислительным системам. Закон Амдала, примененный к РВС, выполняется для всех распределенных вычислительных систем. При обработке некоторого количества запросов, доля, а является сеансово последовательной, то есть должна выполняться поочерёдно. 1- а может быть исполнена параллельно. Тогда ускорение вычислений во всей системе будет рассчитываться из отношения:
, 1 — а (1) у а---
V
Согласно приведенному выше утверждению, постепенно, наращиваемое количество независимых вычислительных узлов неизменно будет выдавать несоизмеримо меньший прирост производительности в сравнении с затраченными средствами.
Масштабирование. Данный термин, есть отношение прироста производительности сети к приросту вычислительных ресурсов:
АР/& amp-С (2)
Обычно выделяют два вида масштабирования: вертикальное и горизонтальное. Вертикальное масштабирование подразумевает наращивание производительности каждого отдельно взятого узла РВС, с целью повышения общей производительности и вычислительной мощности.
Горизонтальное же масштабирование несёт следующий смысл: увеличение количества вычисляющих узлов, то есть качественное дробление системы на легкозаменяемые элементы. Также горизонтальное масштабирование включает в себя оптимизацию программного обеспечения серверных элементов. Повышение производительности алгоритмов является приоритетной задачей как для подхода основанного на вертикальном масштабировании, так и для вертикально построенных систем. На рисунке 1 изображена примерная кривая прогнозируемой производительности распределенной вычислительной системы, которая использует горизонтальное масштабирование как подход для расширения производительности.
Рис. 1. Ограничение прогнозируемой производительности горизонтально масштабируемой системы по закону Амдала
Как можно видеть на рисунке 1, закон Амдала действует для данной системы, а это значит, что сколько бы мы не наращивали количество вычислителей, мы столкнемся с ограничением производительности на определенном этапе масштабирования. Иная ситуация иллюстрирована на рисунке 2. Здесь прогнозируется производительность системы, которая масштабируется вертикально.
Рис. 2. Прогнозируемая производительность системы вертикально масштабируемой системы
Как можно видеть на рисунке 2, с повышением производительности отдельных вычислителей системы, повышается общая производительность всей РВС. Казалось бы — это выигрышная стратегия, по сравнению с горизонтальным масштабированием, так как если мы не прекратим наращивать мощность вычислителей — мощность всей системы будет стремиться к бесконечности. Однако существует проблема, которая делает постоянное вертикальное масштабирование невозможным — это денежные ресурсы компании. Производительное оборудование всегда было и будет дорогостоящим вложением. Цены на более мощные процессоры и более быструю память растут экспоненциально, тем более в условиях мирового кризиса. Поэтому цена за очередной прирост производительности всей РВС может быть непомерно великой, как для развивающихся компаний, так и для больших корпораций (учитывая масштабы закупок).
Сильная и слабая масштабируемость. В терминах распределенных систем, различают сильную и слабую масштабируемость. Сильная масштабируемость приводит отношение времени решения задачи и количества вычислительных узлов при константном объёме задачи. Сла-
бая же масштабируемость приводит в соответствие время решения задачи и количества вычислителей при константном объёме задачи для конкретного узла. Необходимо отметить, что означенная группа факторов имеет довольно обширный потенциал для разработки. Так как пока не наблюдается достойных алгоритмов распределения нагрузки, которые могли бы разрешить задачу слабой и сильной масштабируемости.
Подводя итог описанному в статье, можно утверждать, что для построения каждой РВС первоначально необходимо совершить глубокий анализ требований к системе, и лишь потом осуществлять закупки оборудования и подбор и/или написание специального ПО. Некоторые подходы не стоит использовать как есть, но необходимо их в некоторой степени комбинировать. Например, горизонтальное и вертикальное масштабирование следует применять параллельно друг другу, тогда возможно избежать излишних капиталовложений в устаревающее с каждым годом оборудование. Идеальным подходом к решению задачи управления нагрузкой сетевых узлов, является умное комбинирование специального ПО и приемлемой вычислительной мощности hardware-составляющей.
Список использованных источников
1. Костюков А. А. Алгоритмы и механизмы распределения задач в сетях обработки данных // Технические науки — от теории к практике. Сб. ст. по матер. LIII междунар. науч. -практ. конф. № 12 (48). Новосибирск: Изд. АНС «СибАК», 2015. С. 24−30.
2. Безяев В. С., Макарычев П. П. Алгоритм решения задачи о назначениях целей // Аналитические и численные методы моделирования естественно-научных и социальных проблем. Сб. стат. X Междунар. науч. -техн. конф. / под ред. И. В. Бойкова. Пенза, 2015. С. 51−54.
3. Таненбаум Э. Распределённые системы. Принципы и парадигмы. СПб.: Питер, 2003.
4. Юревич Ю. Г. WSGI, Введение WSGI — стандарт обмена данными между веб-сервером (backend) и веб-приложением (frontend). СПб.: ДМК Питер, 2010 200 с.
5. Brewer E.A. Towards robust distributed systems // Proceedings of the XIX annual ACM symposium on Principles of distributed computing. Portland, OR: ACM, 2000.

ПоказатьСвернуть
Заполнить форму текущей работой