СИСТЕМНЫЙ АНАЛИЗ, УПРАВЛЕНИЕ И ОБРАБОТКА ИНФОРМАЦИИ
УДК 004.032.26
DOI: 10.24412/2071-6168-2024-3-3-4
РАСПРЕДЕЛЕНИЕ ДАННЫХ ПО СЕРВЕРАМ НА ОСНОВЕ НЕЧЕТКОГО ЛОГИЧЕСКОГО ВЫВОДА
Е.О. Викулов, Л.А. Денисова
В статье рассмотрены вопросы распределения данных в серверном комплексе с учетом состояния серверов на основе нечеткого логического вывода. Разработана имитационная модель, позволяющая определить количество запросов, обслуженных каждым из серверов, а также временные и стоимостные затраты на обработку данных. Проведенные исследования подтвердили, что применение предлагаемого подхода позволяет выполнить выбор сервера на основе данных о состоянии серверного комплекса и пользователе, что уменьшает количество хранимых и передаваемых данных, без уменьшения скорости при загрузке и скачивании данных.
Ключевые слова: распределение данных, высоконагруженные веб-приложение, сервер-балансир, имитационное моделирование, нечеткая логика, анализ данных.
Введение. В настоящее время высоконагруженные клиент-серверные приложения становятся все более востребованы. Увеличение количества данных передаваемых и обрабатываемых такими приложениями требует использования высокопроизводительных серверных комплексов способных обеспечить параллельную обработку большого количества запросов пользователей. Для того чтобы обеспечить возрастающие потребности передачи и обработки данных клиент-серверных приложений создаются новые центры обработки данных и программные продукты, позволяющие распределять данные по узлам серверного комплекса [1-4].
В работе представлен подход к выбору сервера для распределения данных, учитывающий доступную информацию о состоянии серверного комплекса. Выбор сервера предложено осуществлять на основе анализа параметров состояния серверов с применением нечеткого логического вывода [5-8]. Для того чтобы исследовать возможности предлагаемой системы распределения данных между серверами необходимо разработать имитационную модель серверного комплекса.
Задача распределения данных в серверном комплексе. Требуется распределить поступающие запросы (заявки) пользователей на загрузку данных таким образом, чтобы по возможности уменьшить стоимостные и временные затраты на обработку данных. Так как необходимо минимизировать затраты на обработку запросов примем следующий критерий выбора сервера:
Ч п ч п
"а11р(01„\B'i) = "а11 (tli + cli) ^min, (1)
i=i i=i _ i=i i=i _
где al1 - признак отправки /-го запроса (I = 1,q, q - количество запросов), на i-ый сервер (i = 1,n, n - количество серверов) комплекса (а11 = 1, если запрос отправлен; а11 = 0 - если не отправлен); F(Db, Bch) - функция, зависящая от параметров состояния серверов и характеризующая временные и стоимостные затраты; Db - произведение расстояния от клиента до сервера Ds (км) на доступную пропускную способность Bch (Кбит/с) т.е. Db = D s * Bch; Сsdr — стоимость затрат на хранение, доставку и репликацию данных (ден. ед.); tl1 - время (с), затраченное i-ым сервером на выполнение /-го запроса.
Ограничениями задачи являются диапазоны изменения каждого из параметров состояния серверов, записанные в виде:
Dmin ^ п ^ птах. Гт^п Г гт^п
b S Ub S Ub , Lsdr Ь Lsdr Ь Lsdr . (2)
Индексами max, min - обозначены максимальные и минимальные значения каждого из параметров состояния. Рассмотрим серверные комплексы SR = (Server 1-3), таблица 1.
Модель системы распределения данных. Для того, чтобы разработать и исследовать систему балансировки данных с помощью инструментов моделирования пакета MATLAB/Simulink/SimEvents [9, 10], создана имитационная модель. Рассмотрим схему модели серверного комплекса при распределении данных с помощью сервера-балансира, которая приведена на рис. 1.
Модель серверного комплекса делится на 5 составных модулей, которые выполняют основные (генерация заявок, создание очереди, выбор сервера, генерация исходных данных, обработка заявок сервером) функции разрабатываемой системы.
Модуль 1 предназначен для генерации заявок. Элемент Event-Based Random Number генерирует случайное число, которое используется в качестве временного интервала между двумя последовательными событиями, сгенерированными блоком Time-Based Entity Generator.
Модуль 2 выполняет формирование очереди заявок. вызов функции выбора сервера с помощью нечеткого селектора (модуль 3) и переключение между серверами, обрабатывающими заявки (модуль 5). Блок Instantaneous Entity Counting Scope - выводит количество заявок, поступивших за временной интервал. Освободившийся сервер приступает к обслуживанию той заявки, которая ранее других поступила в систему. Элемент Entity Departure Function-Call Generator преобразует событие отправки заявки в вызов функции выбора сервера с помощью нечеткого селектора (модуль 3). Блок Single Server отправляет заявку из очереди на обработку переключателем серверов (Output Switeh), который распределяет ее со входа IN, на сервер i, в зависимости от результата балансировки, поступившего на порт p.
Рис. 1. Схема модели распределения данных в серверном комплексе
В модуле 3 выполняется процедура выбора сервера на основе параметров состояния серверов на момент времени поступления заявки с помощью нечетких правил. Для сравнения с круговым распределением (Round-Robin) блок 3 удаляется, а элемент Output Switch настраивается таким образом, чтобы выбирать сервера по кругу.
Модуль генерации входного параметра Db представлен на рисунке 4. Элементы Processing time 1-3 являются генераторами случайных чисел с равномерным законом распределения. Эти числа записываются в рабочую область Matlab и используются в качестве входного параметра для нечеткого селектора и времени задержки при обработке заявки сервером в модуле 5. На основании этого значения модуль 5, организует задержку при обработке заявки (моделирование задержки прибывания заявки в очереди).
Модуль 5 состоит из трех серверов. Он принимает на обработку заявку распределенную на выбранный в модуле 3 сервер. И обрабатывает ее с задержкой, определяемой в модуле 4. Таким образом чем больше мультипликативный параметр Db, тем дольше будет происходить обработка заявки сервером. На рис. 2 показана подсистема, реализующая модель сервера Serverl. Основным элементом этой модели является канал обслуживания - сервер (Server), который принимает на вход заявку и обрабатывает ее в течение времени обслуживания.
Рис. 2. Подсистема модели сервера Serverl
Для учета времени пребывания заявки в системе использован блок Read Timer, который останавливает таймер, запущенный при генерации заявки (см. рис.1, блок Start Timer) и считывает его показания. Для завершения обслуживания заявки служит блок Entity Sink, на выходе которого формируется сигнал о количестве поглощенных им заявок.
На рис. 3 представлен общий вид подсистемы нечеткого выбора сервера.
Подсистемы Server2 и Server3 имеют идентичную структуру.
4
Имитационные исследования распределения данных. В качестве входной информации для принятия решения о выборе сервера использованы такие его параметры, как удаленность от пользователя, доступная пропускная способность канала передачи и стоимость затрат на хранение, доставку и репликацию данных. Это входные сигналы для принятия решения о выборе серверной станции SR. Введем обозначения для выходного параметра: это R -решение о выборе сервера для загрузки файла. Этот параметр может иметь значения: P - позитивное; Z; - нейтральное; N - негативное. Введем следующие обозначения: расстояние от пользователя до серверной станции, (Ds, км); доступная пропускная способность канала передачи данных Bch, Кбит/с; Db = Ds х Bch - мультипликативный критерий, относит. ед.; Сsdr - стоимость затрат на хранение, доставку и репликацию данных, ден. ед. Обозначим выходной параметр R1 - решение о выборе сервера Server 1 для распределения статических данных, который может иметь значения: P1 - позитивное; Z1; - нейтральное; N1 - негативное. Четкое число R1, задающее заключение каждого правила, принимает значения N1=0; Z=1; Pi=2. Входные сигналы переводятся в значения нечетких переменных в подсистемах фаззификации (от англ. fuzzy - нечеткий) Input MF. На рис. 4 представлены функции принадлежности входных и выходного параметров. Диапазоны изменения входных переменных представляются термами значений: S - малое, M - среднее, L - большое.
Рис. 3. Модель выбора сервера для задачи распределения данных, общий вид системы нечеткого выбора сервера
Малое Среднее Большое
1
I
0.5 О
0.3 0.4 0.5 0.В 0.7 Мультипликативный параметр, D
1 Малая Средня я Большая
\ \ с
0 У У ь__
0.1
0.2 0.3 0.4 0.5 О.Ё 0.7 0.8 Стоимость затрат на хранение и доставку, С
0.9
СЕ
а. 0.5
Отрицательное Нейтрально е Положительное
О 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2 Решение о пригодное™ сервера1 для выбора, Р. Рис. 4. Функции принадлежности входных и выходного параметров
В качестве функций принадлежности для внутренних лингвистических термов M (англ. mean value -среднее значение) входных переменных селектора принята гауссова функция принадлежности (gaussmf). Для задания крайних лингвистических термов S (англ. small value) используются Z-образные функции принадлежности (zmf), зависящие от двух параметров. Функции принадлежности для термов входных переменных выбраны так как имеют ана-
литическое представление в виде простых математических формул с малым количеством параметров, что упрощает числовые расчеты и сокращает временные затраты при моделировании. Операция дефаззификации (обратного преобразования нечетких переменных в четкие) осуществляет четкий вывод нахождением взвешенного среднего для
т т
получения решения о пригодности первого сервера для выбора К = 2 )К / 2 ), где Я - четкое значе-
7=1 7=1
ние выходной переменной; Кп - значение выходной переменной для г-го терма с единичным значением степени принадлежности; ^ (К1) - степень принадлежности к этому терму; т - число термов.
Исходные данные модели (параметры Бь, Сэаг) нормированные от 0 до 1 представлены в таблице 1.
Таблица 1
Граничные значения данных о состоянии серверов_
Сервер Показатели состояния сервера
Мультипликативный критерий, Db Стоимость затрат на обработку данных, Csdr
r\min uh птах ub rmin b.4dr гтах bsdr
Server 1 0,10 0,30 0,10 0,70
Server 2 0,10 0,40 0,42 0,56
Server 3 0,50 0,90 0,30 0,60
База нечетких продукционных правил для выбора сервера Server 1 (такая же, как и для серверов Server 2, Server 3), которая реализуется в подсистеме Fuzzy Server Selection Server 1, представлена в таблице 2.
Таблица 2
База ^ нечетких правил выбора сервера для задачи распределения данных_
Показатель Db Показатель Csdr
S M L
S P P N
M P Z N
L Z N N
В процессе моделирования исследовались случайные процессы поступления заявок в системе, определялись такие случайные величины, как интервалы между моментами поступления заявок пользователей в сети, и оценивались показатели состояния серверов. Поток заявок на загрузку файлов в систему имеет экспоненциальный закон
распределения, при котором плотность вероятности длительности пауз между генерациями заявок p(t) = Xe Х, где
X - интенсивность потока (средняя длительность паузы между генерациями заявок tig = Х 1). Длительность паузы
между поступлением заявок tig изменялась в диапазоне от 1 с до 3 с. В качестве основного параметра, влияющего на время обработки заявки сервером, принимался мультипликативный параметр Db, который изменялся в принятых диапазонах по равномерному закону. С использованием данных, полученных от реальных серверных станций, проведено имитационное моделирование системы распределения нагрузки на основе нечеткого логического вывода и (для сравнения) балансировки с помощью метода кругового распределения нагрузки Round Robin. Получены стоимостные (рис. 5) и временные (рис. 6) характеристики работы системы для каждого из методов. За одну итерацию моделирования методы обрабатывают разное количество заявок, поэтому рассчитаны средние значения временных и стоимостных характеристик, полученных для различной длительности паузы между поступлениями заявок. Система с нечетким методом распределения показывает лучшие результаты по сравнению с круговым распределением нагрузки.
0.48 0.46 0.44 £0.42
о 0.4 |
0.38 0.36 0.34 0.32
1 1.2 1.4 1,6 1.8 2 2.2 2.4 2.6 2.8 3
Длительность паузы между поступлением заявок ^
Рис. 5. Средняя стоимость обработки заявок серверами
6
Средняя стоимость обработки заявки уменьшается на 10 - 17% по сравнению с круговым методом распределения (рис. 5).
-1- — Fuzzy Selector - -Round rübin
14 ч ч
- ч ч ■ч
Ч ч ч
ч ч ч
Длительность паузы мсящу поступлением заявок I
Рис. 6. Среднее время обработки заявок серверами
Одновременно с уменьшением стоимости обработки заявок снизилось и время, затраченное на обработку заявок. Получено, что среднее время обработки заявок уменьшилось на величину от 5 до 20% (рис. 6). Отметим, что при длительности паузы между поступлением заявок tig от 1 с до 1,6 с. Изменения стоимости перестает происходить, так как система не успевает обработать большего количества заявок. Рассмотрим распределение заявок по серверам для tig =1,6, рис. 7. В случае использования метода кругового распределения нагрузки Round Robin заявки распределены по серверам равномерно, но при этом одинаково загружаются как высоко нагруженные серверы с высокой стоимостью, так и серверы с низкой нагрузкой и низкой стоимостью. Тогда как нечеткий метод распределяет больше запросов на менее загруженные и более близкие к пользователю сервера с низкой и средней стоимостью, обеспечивая более высокую скорость обработки запросов пользователя.
is0-5
С ^
и о
\ж Fuzzy Selector!
I
¡>s
о !.
llllllll.il lllllllll
Llil
10 20 30 40 50 60 номер заявки {Server 1)
10 20 30 40 50 60 номер заявки {Server 2)
10 20 30 40 50 60 номер заявки {Server 3)
О
5 •-,
О
6 о
I с
3
¿0,5
О :■
1с
■ Round robin|
1 ill ill И
10 20 30 40 50 номер заявки (Server 1)
10 20 30 40 50 номер заявки (Server 2)
ю го эо 4о so во номер заявки (Server 3)
Рис. 7. Распределение заявок по серверам с помощью: нечеткого селектора (слева), кругового циклу (справа)
Таким образом, распределение данных с помощью нечеткого селектора улучшает временные и стоимостные характеристики обслуживания заявок серверным комплексом, тем самым минимизируя целевую функцию (1).
Заключение. В результате проведенных исследований предложен подход к распределению данных в серверном комплексе с использованием нечетких технологий. В качестве исходных данных для принятия решения о выборе сервера предложено использовать параметры состояния серверного комплекса, такие как географическое расстояние до пользователя и доступная пропускная способность канала передачи данных, а также стоимость затрат на хранение, доставку и репликацию данных.
Выполненные численные эксперименты по распределению данных по серверам показали преимущество подхода к выбору сервера с учетом состояния серверного комплекса на основе нечеткого логического вывода, которое выражается в уменьшении стоимости обработки запросов и сокращению времени обслуживания пользователей.
Отметим, что разработанная имитационная модель позволяет исследовать работу сервера-балансира при распределении нагрузки между серверами, учитывая случайный характер моментов поступления заявок на обработку, а также переменную длительность задержек при поступлении задач. Предлагаемая модель представляет возможность испытывать программное обеспечение сервера-балансира для серверных станций в условиях, приближенных к реальным.
Список источников
1. Викулов Е.О., Леонов Е.А., Денисова Л.А. Автоматизированное распределение больших объемов данных высоконагруженных систем Динамика систем, механизмов и машин. 2014. № 3. С. 146-149.
2. Викулов Е.О., Распределение больших объемов данных // Известия Тульского государственного университета, технические науки. Тула, 2023. Вып. 12, С. 457-461.
3. Server load balancing | Akamai [Электронный ресурс] URL: https://www.akamai.com/uk/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. Штовба С.Д. Проектирование нечетких систем средствами MATLAB. М.: Горячая линия -Телеком, 2007. 288 с.
6. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. М.: Мир, 1992.
7. Каллан Р. Основные концепции нейронных сетей - The Essence of Neural Networks First Edition. М.: Ви-льямс, 2001. 288 с.
8. Vikulov E.O., Denisov O.V., Denisova L.A. Data distribution system preparation of server stations data // Journal of Physics: Conference Series Сер. "Mechanical Science and Technology Update, MSTU 2018" 2018. С. 012097.
9. Круглов В.В., Борисов В.В. Искусственные нейронные сети. Теория и практика. М.: Горячая линия -Телеком, 2001. С. 382.
10. MATLAB Makers of Matlab and Simulink. [Электронный ресурс] URL: http://www.mathworks.com (дата обращения: 12.12.2023).
Викулов Егор Олегович, старший преподаватель, vikuloveo@gmail. com, Россия, Омск, Омский государственный технический университет,
Денисова Людмила Альбертовна, д-р техн. наук, профессор, [email protected], Россия, Омск, Омский государственный технический университет
RESEARCH OF HIGH-LOAD WEB APPLICATIONS DATA DISTRIBUTION USING INTELLECTUAL TECHNOLOGIES.
E.O. Vikulov, L.A. Denisova
The article discusses the issues of data distribution in a server complex, taking into account the state of the servers based on fuzzy logical inference. A simulation model has been developed to determine the number of requests served by each server, as well as the time and cost of data processing. The studies have confirmed that the use of the proposed approach allows you to select a server based on data about the state of the server complex and the user, which reduces the amount of stored and transmitted data, without reducing the speed when loading and downloading data.
Keywords: data distribution, high-load web applications, balancer server, simulation modeling, fuzzy logic, data
analysis.
Vikulov Egor Olegovich, senior lecturer, vikuloveo@gmail. com Russia, Omsk, Omsk State Technical University,
Denisova Lyudmila Albertovna, doctor of technical, professor, denisova@asoiu. com, Russia, Omsk, Omsk State Technical University
УДК 004.67; 004.912
DOI: 10.24412/2071-6168-2024-3-8-9
МЕТОДЫ ПРЕОБРАЗОВАНИЯ ДАННЫХ ДЛЯ АНАЛИТИКИ
Е.В. Нурматова
Результаты работы алгоритмов машинного обучения сильно зависят от качества подготовки данных, определяемого спецификой решаемой задачи. В данной работе рассматривается поэтапное описание решения проблем качества данных, предназначенных для аналитики. Каждый этап процесса преобразования данных, включающий обработку дубликатов, противоречий, аномальных и отсутствующих значений, сглаживание выбросов, поддерживается соответствующим программным решением с применением специализированных библиотек Python. Для более полного понимания зависимостей между признаками, анализа выбросов, распределения частоты категориальных признаков показаны примеры возможных визуализаций. В итоге получается создать более устойчивые, интерпретируемые данные, ценность которых определяется не столько их объёмами, сколько качеством.
Ключевые слова: предподготовка данных, исследовательский анализ данных, очистка, проблемы качества данных, машинное обучение.
Обеспечение качества данных позволяет уменьшить потенциальные ошибки, обеспечить качество и объективность результатов и управленческих решений. Этими вопросами занимались с момента развития компьютерных наук. Задача систематизации и стандартизации подходов к структурированию и качеству данных постоянно требует решения по мере роста объёмов данных, их разнородности.
8