Шадский Геннадий Викторович, д-р. техн. наук, профессор, [email protected]. Россия, Тула, Тульский государственный университет
DEVELOPMENT OF A MECHANISM FOR MULTI-USER ONLINE WORK FOR INFORMATION SYSTEM USERS USING
THE EXAMPLE OF A SIMPLE SVG EDITOR
O.D. Grishin, S.S. Grishunov, N.V. Antseva, G.V. Shadsky
The article studies the requirements of modern users for interface information systems. A description is given of the mechanism for multi-providing user experience for users of the information system based on the exchange of the shortest messages between all participants through a central point - server applications - using web sockets. In the proposed mechanism, messages are sent over all open connections, the document id corresponds to the id of the document for which the message was sent; local changes are made by the document modification initiator only after receiving a message from the server. The basis for creating a simple SVG editor is the choice of the type of text types to create, delete, change a shape on the canvas and transfer the user's coordinates for rendering on the canvases of other users, as well as the elementary rules of these texts. A mechanism is provided for maintaining the order of user actions on the client in the stack to provide the ability to cancel completed actions by providing a special Action class that saves the old and new state of the figure and generates forward and reverse messages for each user action. A mechanism for processing messages on the server and locally by clients using the «chain of responsibility» pattern is provided.
Keywords: multi-user, web application, messaging, web sockets, SVG.
Oleg Danilovich Grishin, student, oleg. grishin. 0 7@mail. ru, Russia, Kaluga, Bauman Moscow State Technical University (Kaluga Branch),
Stepan Sergeevich Grishunov, senior lecturer, [email protected], Russia, Kaluga, Bauman Moscow State Technical University (Kaluga Branch),
Antseva Natalia Vitalievna, candidate of technical sciences, docent, [email protected], Russia, Tula, Tula State University,
Gennady Viktorovich Shadsky, doctor of technical sciences, professor, [email protected], Russia, Tula, Tula State University
УДК 004.032.26
DOI: 10.24412/2071-6168-2023-12-457-458
РАСПРЕДЕЛЕНИЕ ВЫЧИСЛИТЕЛЬНОЙ НАГРУЗКИ В СЕРВЕРНОМ КОМПЛЕКСЕ С ПОМОЩЬЮ
ДЕРЕВЬЕВ РЕШЕНИЙ
Е. О. Викулов
В статье рассмотрены вопросы балансировки вычислительной нагрузки в серверном комплексе. Предложено выполнять распределение запросов пользователей с использованием деревьев решений на основе данных о состоянии серверов. Проведены экспериментальные исследования и определены диапазоны изменения параметров состояния серверов, а также правила выбора сервера, позволяющие повысить быстродействие системы распределения нагрузки.
Ключевые слова: распределение вычислительной нагрузки, сервер-балансир, дерево решений, анализ данных.
Введение. На сегодняшний день повышение быстродействия высоконагруженных клиент-серверных приложений является актуальной задачей [1-4]. Обычно распределение запросов пользователей выполняется с использованием сервера-балансира [2], который получает запрос и производит выбор подходящего для его выполнения сервера. Следует отметить, что существующие технологии балансировки нагрузки не учитывают состояние аппаратного обеспечения сервера, его загруженность и скорость работы [3, 4], что сказывается на времени обработки запросов пользователей. В статье предлагается производить распределение вычислительной нагрузки на основе данных о состоянии серверов. При поступлении запроса пользователя сервер-балансир оценивает параметры состояния серверов, обрабатывающих запросы пользователей, и принимает решение о выборе сервера. Для выбора сервера предложено использовать деревья решений, которые принимают на вход параметры состояния и выдают решение о выборе сервера.
Задача выбора сервера ставится следующим образом. Необходимо распределить вычислительную нагрузку в серверном комплексе с учетом таких параметров состояния серверов, как расстояние от пользователя до серверной станции, (Ds, км); загруженность жесткого диска (Uhd, %); загруженность оперативной памяти (Uram, %). Введем функцию F(Ds,Uram,Uhd), зависящую от параметров состояния серверов и характеризующую временные затраты на выполнение запросов пользователей. Необходимо минимизировать затраты на обработку запросов, поэтому примем следующий критерий выбора сервера:
Ч п ч п
£ £ a11 F^^U^U^) = Y^Lali tli " min, (1)
i=i i=i _ i=i i=i _
где al1 - признак отправки l-го запроса (1 = 1,q, q - количество запросов), на i-ый сервер (i = 1,п, n - количество серверов) комплекса (а11 = 1, если запрос отправлен; а11 = 0 - если не отправлен); tl1 - время, затраченное i-ым сервером на выполнение l-го запроса.
Ограничениями задачи являются диапазоны изменения каждого из параметров состояния серверов, записанные в виде:
nmin ^ п nmax- jjmin <-■ jj ^jjmin. jimin ^jj <-■jimin (2)
Ds < Ds < Ds , UramS UramS Uram, Uhd S UhdS Uhd . (2)
Здесь и далее индексами max, min - обозначены максимальные и минимальные значения каждого из параметров состояния. Рассмотрим три сервера в серверном комплексе, совокупность которых обозначим SR = (Server 1, Server 2, Server 3).
Эксперимент по сбору данных о состоянии серверов. Для сбора и обработки данных о состоянии серверов создан экспериментальный комплекс, функциональная структура которого показана на рисунке 1.
Агшаратно/Программные средства обработки н хранения данных
Выделенный виртуальный сервер
Unix-подобная операционная система
ПО для обработки HTTP запросов {веб-сервер)
1
Модули экспериментальных исследований
Сервер балансир
Ланные о
состоянии сервера
Номер с фифа
Модуль сбора и обработки далныл
Кластеризация Классификация с
(С-теапз, К-гоеапз, помощью дерева
Kohorten) решении
11рограммл ыс модули
Модуль орпигаацнн -эксперимента
{алгоритм ТЕСТИрОВаННЯ)
Модуль тснсра|н1и нотных i
Исходные экспериментальные данные
Рис. 1. Функциональная структура комплекса для проведения экспериментальных исследований
Основой экспериментального комплекса являются три географически распределенных выделенных виртуальных сервера, компании Amazon [5] с установленным дистрибутивом операционной системы Ubuntu Linux [6] и веб-сервером Nginx [7]. Для того чтобы отправлять запросы пользователей из различных географических точек, использован прокси-сервер (передающий сервер) [7], перенаправляющий запросы через сервера на территории Российской Федерации. Запрос пользователя передается на сервер-посредник, с которого перенаправляется на сервер, обрабатывающий запрос. Временем выполнения запроса считается время, за которое сервер-посредник получил ответ от сервера, обрабатывавшего запрос пользователя. Запрос направляется на адрес http://serverip/search для каждого из трех серверов, где serverip ip-адрес сервера. При выполнении запроса производится решение тестовой задачи (поиск подстроки в текстовом документе). В качестве искомой подстроки в тестовой задаче использованы 150 ключевых фраз, присутствующих в тексте документа. После выполнения запросов получено 150 записей (обучающих данных с параметрами, Ds, Uram, Uhd нормированных от 0 до 1). Для трех серверов серверного комплекса граничные значения параметров состояния представлены в таблице 1.
Таблица 1
Граничные значения данных о состоянии серверов_
Обозначение сервера Параметры состояния сервера
Загруженность жесткого диска Загруженность оперативной памяти Расстояние от пользователя
jimín uhd j ¡max uh.d íimin irmax uram nmín Qmax
Server 1 0,53 0,58 0,43 0,67 0,22 0,46
Server 2 0,54 0,57 0,52 0,80 0,30 0,80
Server 3 0,51 0,62 0,72 0,93 0,71 0,93
Предлагается выбирать сервер для отправки запроса с помощью деревьев решений. Для того, чтобы определить пригодность полученных данных для дальнейшей классификации деревьями решений (выбора сервера), проведена предобработка данных процедурой кластерного анализа. Применен метод нечеткой кластеризации С-средних [8], который позволяет разбить имеющееся множество элементов мощностью q (количество запросов) на заданное число нечетких множеств n (количество кластеров, равное количеству серверов). Для каждого элемента из рассматриваемого множества рассчитывается степень его принадлежности каждому из кластеров.
Результаты кластеризации, представленные на рисунке 2 показывают, что данные разделены на три однородные группы (со сходными признаками). Следовательно, каждый новый запрос пользователя будет распределен в соответствующий кластер (сервер). Этот результат показывает возможность применения методов классификации при выборе сервера.
Выбор сервера проведен с применением дерева решений [9], которое состоит из «листьев», представляющих результаты выбора, узлов решений, то есть параметров, от которых зависит выбор сервера, и ветвей, отображающих граничные значения параметров ветвления. На рис. 3 представлено полное дерево для всех возможных решений выбора сервера использующее в качестве входных данных параметров состояния серверов Ds, Uram, Uhd. Диапазоны изменения каждого из входных параметров представляются термами значений: S (small - малое), M (medium -среднее), L (large - большое). Первый узел означает ветвление по параметру Ds, наиболее важному для выбора. Затем в зависимости от выбранной ветви происходит выбор по параметрам Uram и Uhd.
Рис. 2. Распределение данных обучающей выборки по кластерам.
На основании исходных данных о состоянии серверов, полученных в результате эксперимента с помощью функции "йМгее" в среде МАГЬАВ [10], было построено дерево решений (рис. 4). Структура полученного дерева объясняется тем, что использовано ограниченное количество данных. В качестве исходных данных рассматривалась задача поиска подстроки в текстовом документе, включающая 150 записей. В качестве обучающих данных использованы параметры, приведенные в таблице 1.
Рис. 4. Дерево решений выбора сервера, основанное на экспериментальных данных.
По полученному дереву решений сформирована база правил выбора сервера и получены граничные значения параметров состояния. База правил содержит 8 продукционных правил:
1: ЕСЛИ Dl >0, 38 И >0,67 И U$am >0,94 ТО Server 1 2: ЕСЛИ Dl >0, 38 И >0,67 И U^am <0,94 И <0, 78 ТО Server 3
459
3: ЕСЛИ Dl > 0, 38 И > 0,67 И U$am < 0,94 И > 0, 78 ТО Server 1 4: ЕСЛИ Dl >0, 38 И < 0,67 И U^am >0, 59 И >0,96 ТО Server 2 5: ЕСЛИ Dl >0, 38 И D* <0,67 И U?am >0, 59 И Ufa <0,96 ТО Server 3 6: ЕСЛИ Dl >0, 38 И Dl <0,67 И >0, 59 ТО Server 1 7: ЕСЛИ Dl < 0, 38 И Ulam< 0, 59 ТО Server 1 8: ЕСЛИ Dl <0, 38 И >0, 59 ТО Server 2 В таблице 2 приведены граничные значения параметров состояния серверов полученные при построении дерева решений (см. рис. 4).
Таблица 2
Граничные значения параметров состояния сервера
Параметры состояния сервера
Обозначение Расстояние от Загруженность Загруженность
терма Пользователя оперативной памяти Жесткого диска
дтшп Qmax jimín игат цтах игат jimín uhd j ¡max uh.d
S 0 0,38 0 0,59 0 0,78
M 0,38 0,67 0,59 0,96 0,78 0,94
L 0,67 1 0,96 1 0,94 1
Эти значения использованы в качестве ветвей в дереве решений. В таблице 3 приведен полный список правил выбора сервера для термов S, М, Ь и параметров Л, игаш, ина (увязать с деревом решений). Серым цветом выделены решения, полученные на основании дерева решений. Как видно из таблицы, полученное на основе данных обучающей выборки дерево решений покрывает только 20 из 27 возможных решений, что является недостатком для дальнейшего использования дерева решений в качестве средства выбора сервера.
Таблица 3
Правила выбора сервера, полученные из дерева решений_
Параметр Uhd Параметр Uram
S M L
При параметре Ds = S
S Server 1 Server 2 Server 2
M Server 1 Server 2 Server 2
L Server 1 Server 2 Server 2
При параметре Ds = M
S Server 1 Server 2 Server 3
M Server 1 Server 2 Server 3
L Server 3 Server 2 Server 3
При параметре Ds = L
S Server 1 Server 1 Server 1
M Server 1 Server 1 Server 3
L Server 1 Server 2 Server 3
Dn US u11 uram u11 0,25 0,31 0,7
D12 us u12 uram II12 uhd = 0,33 0,2 1
D13 us u13 uram ,,13 uhd .0,75 0,8 0,2
Эксперимент по распределению вычислительной нагрузки. Рассмотрим пример выполнения 1-го запроса пользователя.
=>5eri7er 1.
В результате использования правил выбора сервера получено, что наиболее подходящим для вычислений является сервер под номером 1.
Для того чтобы оценить пригодность разработанного метода выбора сервера проведен эксперимент по распределению тестовых выборок размерностью от одного до ста пятидесяти запросов. Запросы были распределены с помощью кругового распределения Round Robin [11] и разработанного метода. Результаты проведенных экспериментов представлены на рис. 5.
• Дерево решений ■ Круговое распределение
79,75328
80 t, c
70 60 50 40 30 20
23,72234
72,55532
42,87896
150
q
Рис. 5. Зависимость времени выполнения запросов от размера тестовой выборки для кругового распределения
и распределения, основанного на дереве решений
Показано, что быстродействие в системе увеличилось. Время выполнения запросов пользователя при распределении нагрузки с помощью дерева решений (характеризуемое значением целевой функции (1)) уменьшилось по сравнению со временем обработки запросов круговым распределение Round-Robin. Наибольший выигрыш по времени получен для выборки из 150-ти запросов (9,7%). Это объясняется тем, что учет параметров состояния серверов (расстояния до сервера и загруженность его аппаратных ресурсов) позволяет серверу-балансиру посылать запросы для обработки на сервер, находящийся на наиболее близком расстоянии от пользователей, а также наименее загруженный в текущий момент времени.
Заключение. В результате проведенных исследований разработан метод распределения вычислительной нагрузки с использованием деревьев решений. В качестве исходных данных для принятия решения о выборе сервера предложено использовать параметры состояния серверного комплекса, такие как географическое расстояние до пользователя и загруженность аппаратных ресурсов. Экспериментально определены диапазоны изменения параметров состояния серверов, а также правила выбора сервера, позволяющие повысить быстродействие системы распределения нагрузки.
В качестве направления дальнейших исследований, направленных на повышение быстродействия балансировки нагрузки, представляется целесообразным использование методов искусственного интеллекта (например, нечетких технологий). При этом время, затрачиваемое на обработку запросов пользователей, уменьшится за счет анализа всех возможных вариантов (что не может быть реализовано с помощью деревьев решений) и выбора наилучших решений.
В случае выбора сервера с помощью нечетких интеллектуальных технологий предполагается определять диапазоны изменения параметров состояния, а также формировать правила выбора серверов с помощью деревьев решений, позволяющих получить наглядное представление (интерпретируемость) данных о состоянии серверного комплекса.
Список источников
1. Викулов Е.О., Леонов Е.А., Денисова Л.А. Автоматизированное распределение больших объемов данных высоконагруженных систем Динамика систем, механизмов и машин. 2014. № 3. С. 146-149.
2. Викулов Е.О., Денисов О.В., Мещеряков В.А., Денисова Л.А. Имитационное моделирование распределения вычислительной нагрузки между серверными станциями с использованием нечеткого логического вывода. Автоматизация в промышленности. 2021. №9. С. 7-14.
3. About application load balancer [Электронный ресурс]. URL: https://techdocs.akamai.com/cloudlets/docs/what-app-load-balancer (дата обращения: 23.09.2023).
4. Vikulov E. O., Denisov O. V. and Denisova L. A. Data distribution system preparation of server stations data Journal of Physics: Conference Series, 2018. С. 012097.
5. Виртуальный частный сервер и веб-хостинг - AWS [Электронный ресурс] URL: https://aws.amazon.com/ru/lightsail (дата обращения: 23.09.2023).
6. Ubuntu: Enterprise Open Source and Linux [Электронный ресурс] URL: https://ubuntu.com (дата обращения: 23.09.2023).
7. NGINX: Advanced Load Balancer, Web Server, & Reverse Proxy [Электронный ресурс] URL: https://www.nginx.com (дата обращения: 23.09.2023).
8. Bezdek J.C. Pattern recognition with fuzzy objective function algorithms. New York: Plenum Press, 1981.
256 p.
9. Hastie T., Tibshirani R., Friedman J. H. The elements of statistical learning: Data mining, inference, and prediction. New York: Springer Verlag, 2001.
10. MATLAB Makers of Matlab and Simulink. [Электронный ресурс] URL: http://www.mathworks.com (дата обращения:12.11.2023).
11. Ghomi E.J., Rahmani A.M., Qader N.N. Load-balancing algorithms in cloud computing: A survey // Journal of Network and Computer Applications. 2017.
Викулов Егор Олегович, старший преподаватель, [email protected], Россия, Омск, Омский государственный технический университет
DISTRIBUTING THE COMPUTING LOAD IN A SERVER COMPLEX USING DECISION TREES
E.O. Vikulov
The article discusses the issues of balancing the computing load in a server complex. It is proposed to distribute user requests using decision trees based on server state data. Experimental studies have been carried out and the ranges of changes in server state parameters have been determined, as well as rules for selecting a server to improve the performance of the load distribution system.
Key words: computing load distribution, balancer server, decision tree, data analysis.
Vikulov Egor Olegovich, senior lecturer, [email protected] Russia, Omsk, Omsk State Technical University