УДК 004.032.26
DOI: 10.25206/1813-8225-2018-162-244-246
Е. О. ВИКУЛОВ
Омский государственный технический университет, г. Омск
ИССЛЕДОВАНИЕ РАСПРЕДЕЛЕНИЯ ДАННЫХ ВЫСОКОНАГРУЖЕННЫХ ВЕБ-ПРИЛОЖЕНИЙ С ПРИМЕНЕНИЕМ НЕЙРОСЕТЕВЫХ ТЕХНОЛОГИЙ
В статье предложен подход к оптимизации распределения данных при проектировании высоконагруженных веб-приложений. Разработана модель, описывающая состояния серверных станций на текущий момент времени, пригодная для осуществления последующей оптимизации распределения данных. Проведен эксперимент по распределению тестовой выборки данных с применением нейросетевых технологий, в частности, с использованием сетей Ко-хонена; приведены результаты распределения данных по серверным станциям. На основании результатов эксперимента сделаны выводы о возможности применения сетей Кохонена при распределении данных высоконагруженных веб-приложений.
Ключевые слова: распределение данных, высоконагруженные веб-приложения, сервер-балансир нейросетевые технологии, сеть Кохонена, кластеризация.
Введение. В настоящее время одной из актуальных проблем в сфере информационных технологий является передача больших объемов данных по сетям ЭВМ [1]. Для увеличения скорости доставки данных пользователю используют следующие технологии: сети доставки и дистрибуции данных, системы балансировки (распределения) данных [1, 2].
Сети доставки и дистрибуции данных CDN (от англ. Content Delivery Network) [2] состоят из географически распределенных многофункциональных платформ, взаимодействие которых позволяет максимально эффективно обрабатывать данные и удовлетворять запросы пользователей при получении данных. Системы балансировки данных — это решения, распределяющие данные с использованием сервера-балансира, который получает заявку на загрузку данных и производит выбор подходящего для хранения данных сервера [3]. Следует отметить, что приведенные технологии не учитывают состояние аппаратного обеспечения серверных станций, его загруженность и скорость работы [4], что сказывается на скорости доставки данных пользователю.
В работе рассмотрен метод обработки и анализа данных о состоянии серверных станций позволяющий увеличить скорость доставки данных, посредствам применения нейросетевых технологий. Нейронные сети традиционно используются при выполнении процедур кластеризации, классификации, прогнозирования [5]. Искусственная нейронная сеть представляет собой математическую модель, построенную по принципу организации и функционирования биологических нейронных сетей — сетей нервных клеток живого организма [5].
В данной работе в качестве основного инструмента моделирования использована нейронная сеть Кохонена [6]. Нейронные сети Кохонена являются
одной из разновидностей нейронных сетей, однако принципиально отличаются от остальных нейронных сетей, так как используют неконтролируемое обучение. При таком обучении обучающее множество состоит лишь из значений входных переменных, в процессе обучения нет сравнивания выходов нейронов с эталонными значениями. Такая сеть учится понимать структуру данных. Основной принцип работы сетей — введение в правило обучения нейрона информации относительно его расположения [7].
Постановка задачи оптимизации распределения данных. Для решения задачи оптимизации выбора серверной станции необходимо определить параметры, которые позволят провести оптимальное распределение данных по серверным станциям. В качестве таких параметров принимаются следующие: расстояние от клиента до серверной станции, загруженность жесткого диска, время работы без отказов. На основании этих данных разрабатываемая система должна делать вывод о том, на какую из серверных станций передать загружаемые данные.
Сформируем массив параметров серверных станций. Полученные параметры представим в виде многомерной матрицы (1) [8].
X :
X11 1
X 21
X„
i
X11
I
X21
Xn
i
X12
1
X22
I
Xn2
1
X12 1
X22
1
Xn2
Xlm
Xlm
X 2 j 1
Xj
Xn
X2
Xij
q
X11
q
X21
Xn
q
X12 q
X22
Xqn2
q
Xq2j q
Xqj
Xlm
Xn
. (1)
где верхний индекс l = 1, q — но ме р з а явки на загрузку фаНаа, q — количество заявок. Нижние индексы i, j характа]чизуют соатояние серверов, i = 1, г — номер сервевной стан-ии, п — количество серв=рных станций, равное количеству кластеров, j — нвмер параиетра Фунициоиировэния, m — количества пая<^м^,^ров. Параметрами сиатемы являются: х] — загруженность жесткого диска. иой серверной станции, x'a — расстояние от клиента до i-ой сервертой станции, д'13 — гревг рчбоаа1 без отказов i-ой серверной станциа.
Кажды о из п=нор мир уем от 0 qo i. Для того чтобы облегчить п°оцчдуру кластеризации, предетааим вектор вхыднbit даниын иГ в чиде суммы нормироаанных парамч^ое Иункяиониро-
т
вания иг = ]Г хд .
Таким обр азам, вягдными донными для нещ о н-ной сети будут явлиться:
— векто,) входыакх зqaчений, переданqыыйсyсте-ме при получении по вой заяв ки на р аспр еделенич данных, иГ ]
— количество садверных еттнцит п.
Рассмотрим алгоритм кластеризаций данных
при помыпщ ннйрогной сети. Этот алгоритм принимает на входе а-мнрный вейтор входти значений иГ, предстаалаю щих с обой парамнтры се р -верных станций. Знач ения этих п араметр а в будем трактовать как веничины импулнеов, поступнющих на входнейрона ч нр ех н внндных синап со а. По ступающие в нейрон импульсы склтдытаются со своими весовыми коэффициентами (весами w0, w , ..., wn). Есливес положательный, то аоотвнтствнющий синапс возбуждающий, если отрицательный — то тормозящир. Есм сумм£!рныйимпульс превышает заданный порог активации w0, то нейрон возбуждается и выдадт нд выхоне 1, иначевыдаётся 0. Таким образом,нейрон вычасляет булеву функцию вида
e(s) = cpf si wi -
w 0
Здесь ф — ступенч stwh -ауво кц ия Хэвисайда [8], которую можно описать как:
Л =
0, тска £s!w,-w0 < о;
i=1 а
1, тска ^ s( Wi - wo > о,
где a — началыюу рассто-ние между сосе,лдими нейронами [9].
В тедрии нейронных сетей функцию ф, преобразующую значение суммарного импульса в выходное значе н=е нейро на, принято называть функцией активации [9]. Рассмотрим алгоритм последовательного обучения нейронной сети Кохонена. Обучение состоит из посладовательности коррекций векторов, прeдставляыщиу с-бчй найроны. На каждом шаге обучения выбииaeтcя не—он, который наиболее похож на вектор входов. Iйод похожестью вданной задаче понимается расотояние между век-то]=ам и.
Послл =ого, как найден наиболее похожий нейрон, п,оизвидится карректировка весов нещ)ииети в соотввтствии с выр^жениеы:
wdt и Г) = wi (t) ь -(f) Ыф( (Г - wi (f)J.
гды "Л — сыоргсть обучения, hci — функция расстояния от i-го нейрона до текущего центра кластера, и'г (t) — вектор входных значений. При этом вектор, описыв ающий центр кластера, и вектора, описывающие его соседей, перемещаются в направлении входного вектора.
Решение задачи оптимизации распределения данеых на основе методов кластеризации. На на-ыальыом этапе существования системы распреде-рения еннных все серверные станции имеют оди-н-кевые показатели загруженности и безотказной ]эаботы, поэтому распределять данные в этом слу-тае уместно, оценивая лишь показатель расстояния йо серверной станции.
П осле загрузки определенного количества данных в систему показатели серверных станций начнут отличаться друг от друга. Промоделируем такую ситуацию при помощи программной среды MATLAB [10]. Рассмотрим тестовую выборку, состоящую из 150 случаев загрузки данных. Разделим тестовую выборку на 3 группы:
1-я группа: серверная станция слабо загружена, имеет среднее время безотказной работы и находится на среднем расстоянии от пользователя (кластер G1);
2-я группа: серверная станция имеет большую загрузку, низкое время безотказной работы и находится на большом расстоянии от пользователя (кластер G2);
3-я группа: серверная станция имеет средний уровень загрузки, высокое время безотказной работы и находится на близком расстоянии от серверной станции (кластер G3).
На рис. 1 представлен результат кластеризации тестовой выборки по каждому из критериев. Здесь обозначены различные степени принадлежности
Рис. 1. кластеризация тестовой выборки
i =1
i= 1
Таблица 1
Результаты кластеризации
№ эксперимента Обобщенные показатели функционирования серверов Результат распределения по кластерам
Sí s2 S3 Нейронная сеть Экспертная оценка
1 1,2 0,8 2,6 G2 G 2
2 2,1 0,9 1,1 G2 G 2
3 0,7 0,8 1,9 G2 G2
4 1,1 0,9 1 G3
5 1,2 1,2 1,1 G1 G3
6 2,6 2,8 2,7 G3 G3
7 2,6 2,8 1,3 G3 G3
8 0,8 2,6 2,2 G1
9 1,2 2,2 2 G1 G1
10 1,1 1 1 Gi G!
каждой заявки к одному из кластеров. Так же отражены центры каждого из кластеров.
Используем полученную после кластеризации тестовой выборки нейронную сеть для распределения новых заявок на загрузку данных. Предположим, что в определенный момент времени в систему поступает десять заявок на загрузку данных и необходимо принять решение об их распределении. Для принятия решения проведем кластерный анализ отправленных заявок. Полученные результаты представим в виде таблицы (табл. 1). Также в таблице представлена экспертная оценка. Для двух наборов данных (4 и 5 из табл. 1) результат выбора серверной станции с помощью кластеризации отличается от экспертной оценки. Это говорит о том, что для рассматриваемых наборов данных границы между кластерами достаточно малы и оба кластера С1 и С3 подходят для выбора.
Решение, принятое с помощью нейронной сети, в данном случае имеет преимущество перед решением, основанным на экспертной оценке, так как базируется на результатах анализа тестовой выборки. Кроме того, преимущество использования нейронной сети особенно видно при обработке больших объемов данных, где не обойтись без автоматизированной оценки.
Заключение. Рассмотрен подход к обработке информации при проектировании высоконагружен-ных систем распределения данных. Разработана модель, позволяющая описывать состояния серверных станций на текущий момент времени с помощью наборов характерных параметров. Предложена структура представления параметров текущего состояния системы, пригодная для осуществления оптимизации выбора серверной станции. Проведен эксперимент кластеризации данных для распреде-
ления по серверам при помощи нейронной сети Кохонена.
Анализ показал, что результаты, полученные с помощью предлагаемого алгоритма кластеризации (при помощи нейронной сети Кохонена), отличаются от основанных на экспертной оценке (не учитывающей информации о состоянии серверов). Это свидетельствует об эффективности разработанного алгоритма кластеризации, позволяющего принять решение на основе данных о текущих параметрах системы. Следует подчеркнуть, что даже на небольших объемах тестовой выборки интеллектуальные автоматизированные системы позволяют получать более точные результаты. При увеличении объемов обрабатываемых данных в реальных условиях работы приложения использование предлагаемого метода позволит повысить точность результатов.
Библиографический список
1. What is Load Balancing? How Load Balancing Work // NGINX. URL: https://www.nginx.com/resources/glossary/load-balancing/ (дата обращения: 12.09.2018).
2. Load Balancing Techniques Algorithms // KEMP Applications Delivery. URL: https://kemptechnologies.com/load-balancer/load-balancing-algorithms-techniques/ (дата обращения: 12.09.2018).
3. Server Load Balancing // Akamai. URL: https://www. akamai.com /us/en/resources/server-load-balancing.jsp (дата обращения: 23.09.2018).
4. Basic Load Balancing // IBM Cloud. URL: https://console. bluemix.net/docs/infrastructure/loadbalancer-service/basic-load-balancing.html (дата обращения: 23.09.2018).
5. Хайкин С. Нейронные сети. Полный курс. Изд. 2-е, испр. М.: Вильямс, 2017. 1103 c. ISBN 978-5-8459-2069-0.
6. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика / пер. с англ. Ю. А. Зуева, В. А. Точенова. М.: Мир, 1992. 184 с. ISBN 5-06-004094-1.
7. Каллан Р. Основные концепции нейронных сетей: пер. с англ. А. Г. Сивака. М.: Вильямс, 2001. 287 с. ISBN 5-8459-0210-X.
8. Vikulov E. O., Denisov O. V., Denisova L. A. Data distribution system: preparation of server stations data // IOP Conf. Series: Journal of Physics. Conf. Ser. 2018. Vol. 1050. 012097. DOI: 10.1088/1742-6596/1050/1/012097.
9. Круглов В. В., Борисов В. В. Искусственные нейронные сети. Теория и практика. М.: Горячая линия — Телеком, 2001. 382 с. ISBN 5-93517-031-0.
10. Штовба С. Д. Проектирование нечетких систем средствами MATLAB. М.: Телеком, 2007. 288 с. ISBN 5-93517-359-Х.
ВИКУЛОВ Егор Олегович, аспирант кафедры «Автоматизированные системы обработки информации и управления». БРНЧ-код: 1835-5804 ЛиШогГО (РИНЦ): 905246 Адрес для переписки: [email protected]
Для цитирования
Викулов Е. О. Исследование распределения данных высо-конагруженных веб-приложений с применением нейросете-вых технологий // Омский научный вестник. 2018. № 6 (162). С. 244-246. БОН 10.25206/1813-8225-2018-162-244-246.
Статья поступила в редакцию 28.10.2018 г. © Е. О. Викулов