Метод доповнювальних навантажень для розподілу задач в хмарних системах

Вантажиться...
Ескіз

Дата

2025

Науковий керівник

Назва журналу

Номер ISSN

Назва тому

Видавець

КПІ ім. Ігоря Сікорського

Анотація

Дмитренко О.А. Метод доповнювальних навантажень для розподілу задач в хмарних системах. — Кваліфікаційна наукова праця на правах рукопису. Дисертація на здобуття наукового ступеня доктора філософії за спеціальністю 172 — Телекомунікації та радіотехніка. — Навчально-науковий інститут телекомунікаційних систем КПІ ім. Ігоря Сікорського, Київ, 2025. Завдання оптимізації використання ресурсів хмарних систем має високий пріоритет, оскільки ця технологія стала широко розповсюдженою та легкодоступною. Поширеною практикою є створення ефективних сервісів, які легко адаптуються до різних типів продуктів, наприклад, безсерверні технології, платні підлаштовані під потреби бізнесу бази даних та програмне забезпечення, оптимізоване для хмари. Тестування продуктивності хмарних застосунків стало значно простішим із появою засобів розгортання, т.я. Docker та засобів оркестрації, т.я. Kubernetes, що додатково збільшило попит на хмарні ресурси. Оскільки значна кількість ресурсів витрачається на розробку та обслуговування хмарної інфраструктури, важливо розуміти, як ці ресурси можна оптимізувати. Для організації роботи застосунків на хмарі використовується планувальник. В його функції входить аналіз вимог до роботи контейнерів з обчислювальними задачами та пошук кластера та вузла розміщення для них. Також виконується збір метрик роботи контейнера. В ході аналізу наявних підходів до розподілення навантаження задач виявлено певні їх недоліки. Для оцінки потреб роботи контейнеризованої задачі використовуються наступні параметри: бажані та максимальні значення requests та limits по RAM та CPU (можна додавати додаткові показники). Ці значення є основоположними при створенні подів наKubernetes чи їх аналогів на хмарах. Якщо ці значення задані, то у задачі більший пріоритет та менша ймовірність бути вилученою з вузла в разі його перевантаження. Водночас задача може бути вилучена, якщо потребує більше ресурсів, ніж вказано у граничному значенні. Інша проблема, що виникає при роботі ПЗ, є вивільнення RAM. Якщо обчислювальна задача нею заволоділа, то при зменшенні необхідності в оперативній пам’яті її вивільнення може не відбуватись без особливих налаштувань програми. Ідея роботи — трансформувати роль бажаних та максимальних значень ресурсів що виділяються на роботу пода з вирішального чинника на координаційний параметр, прибираючи права критичного впливу на вилучення справних задач з вузла. Це можливо замінивши підхід до виділення вузлового ресурсу. Проаналізувавши історичні дані та в разі їх однорідності, можна оцінити потреби задач в кожен окреслений період часу. Відповідно до потреб однієї задачі, буде знайдено доповнення її «прогалин» у навантаженні, та заповнене в результаті комбінації цієї задачі з іншими. Робота присвячена обґрунтуванню цієї ідеї за допомогою розробки математичної моделі з використанням нечіткої теорії ґраток, та доведенню її життєздатності через розробку методу та алгоритму пошуку доповнювальних навантажень та проведенню експериментальних та аналітичних розрахунків її якості. З метою забезпечити стале повне використання виділеного ресурсу була побудована математична модель. Вона базується на принципі доповнюваності (комплементарності) та теорії нечітких ґраток (об’єднання теорії ґраток та нечіткої логіки). Параметрами моделі є RAM, CPU, мережевий ресурс, а також вона враховує дисковий простір. Під комплементарністю мається на увазі що поди в межах доповнювальних груп сумарно формують повне навантаження на доступні вузли, розподілене відповідно до часових періодів. Задача оптимізації, яку ставить матмодель є максимізувати ефективність використання ресурсів, мінімізуючи їх простій. Як обмеження, розглядається прив'язаністьконтейнера до вузла або іншої частини ПЗ та подільність обчислювальної задачі на менші. Вперше запропоновано метод доповнювальних навантажень для формування груп сталої навантаженості. Алгоритм методу спрямований на оптимізацію використаних ресурсів під час роботи багатокомпонентної системи, зокрема, при масштабуванні її вузлів для забезпечення покриття навантаження всіх користувацьких запитів. Суть методу доповнювальних навантажень. Під час пошуку комплементарних навантажень обчислювальних задач алгоритм виконує кластеризацію, в результаті чого екземпляри мікросервісів групуються за схожістю робочих шаблонів у класи еквівалентності. В межах кожної групи екземпляри сортуються за амплітудою використання ресурсів. Далі групи, що визначені як доповнювальні, перетинаються з метою знайти пари комплементарних мікросервісів. Екземпляри з протилежними шаблонами навантаження, але схожими амплітудами, комбінуються для ефективнішого використання ресурсів. Також можуть розглядатися пари з низькою амплітудою для заповнення «пробілів». Далі відбувається пошук екземплярів мікропослуг, що відповідають критеріям доповнення. Коли доповнення в межах першого підхожого кластера, чи наступних, не знаходиться, виконується збереження статистики комбінацій з усіма екземплярами, і пошук триває до знаходження доповнень або вичерпання доповнювальних груп. Процес повторюється до знаходження всіх можливих пар без повторних включень; залишкові екземпляри мікропослуг є очікуваними. Для мікросервісів, що не знайшли доповнень, застосовується додатковий аналіз екстремумів з використанням середнього та стандартного відхилення, щоб підвищити ймовірність знайти доповнення. Кластеризація і пошук продовжуються до останньої успішної спроби. Якщо залишається невелика кількість мікросервісів без пари, вони комбінуються в більшій кількості, ніж по два для досягнення мети.При реалізації алгоритму на основі методу застосовувалось Z-масштабування для нормалізації та виділення шаблону роботи мікропослуги, KMeans кластеризація для групування за схожим шаблоном роботи нормалізованих рядів. Додатково для візуалізації використовувались алгоритми FastDTW для накладання графіків шаблонів, та PCA — для зображення двовимірного простору для часових рядів замість n-вимірного. При пошуку доповнень використовувались сортування, бінарний пошук та жадібний алгоритм. Поділ на основі середнього значення та стандартного відхилення застосовувався для написання алгоритму пошуку екстремумів та розширених екстремумів для виділення їх в окремі контейнери. Групування малозатратних мікропослуг здійснювалось за допомогою розв'язання задачі про множинний рюкзак. Доповнювальний розподіл навантажень сприятиме суттєвому зменшенню необхідності розв'язання проблеми перегрупування навантаження в режимі реального часу, коштом розміщення на серверах заздалегідь сформованих груп навантажень, що утворюють доповнені ґратки. У роботі розглядаються ключові показники комп'ютерних систем, які можна виміряти та на які можна впливати. Ці характеристики включають пропускну здатність каналів передачі, оцінку продуктивності на основі затримки, обсяг оперативної та постійної пам'яті, обчислювальну потужність та кількість ядер. Запропоноване удосконалення підходу до автомасштабування у хмарній системі, спрямоване на зниження частоти необхідності масштабування шляхом ефективного планування навантаження на вузли на етапі розподілу заSдач, яке апріорі не вимагатиме масштабування. У традиційних підходах до автомасштабування хмарних ресурсів, масштабування відбувається у відповідь на зміну поточного навантаження, що призводить до частих операцій створення та видалення екземплярів обчислювальних вузлів, споживаючи додаткові ресурси для управління цими процесами. Якщо ж навантаження не змінюватиметься, то інеобхідності в масштабуванні не буде. Все ж, воно відбуватиметься в екстремальних випадках, коли ПЗ переживатиме незвичайні навантаження та відбуватиметься не для одної задачі, а для всієї групи. У дисертаційній роботі запропоновано новий підхід до планування навантаження в хмарних системах, що забезпечує оптимальне формування та розподіл пакетів задач у багатосерверному середовищі. Основою запропонованого підходу є моніторинг метрик використання ресурсів та застосування методу доповнювальних навантажень. Такий підхід оптимізує використання ресурсів хмарної системи шляхом ефективного розподілу навантаження доповнених мікропослуг між різними серверними групами. Оптимізація полягає в максимізації використання серверних ресурсів шляхом заповнення його вільного часу іншими мікросервісами й, таким чином, зменшення простою серверів. Це, своєю чергою, сприятиме покращенню загальної продуктивності РС та зменшенню витрат на обслуговування хмарних інфраструктур. Наведений підхід застосовується як до мікросервісів, так і до монолітів та безсерверні технологій, з описаними мінімальними змінами. Апробація підходу виконувалась методом імітаційного моделювання, проведенням наукового експерименту та із застосуванням методу інтелектуального аналізу даних. Для виконання апробації було розроблено алгоритм та програму для визначення комплементарних екземплярів мікросервісів, які могли б ефективно використовувати серверні ресурси. Запропонований алгоритм може бути корисним для постачальників хмарних послуг та організацій, які використовують хмарні середовища для розгортання своїх застосунків. Апробація показала, що залежно від обраного ключового критерію: CPU, RAM чи мережевий ресурс, можна зменшити кількість технічного забезпечення на 8%, 10% та 17% відповідно, що сумарно становить понад 9% з врахуванням частки присутності кожного критерію. До технічних покращень також відноситься підвищення енергоефективності послуг хостингу на 10–15% та подовження строку служби на 8–12% на вузлахповністю з доповнювальним навантаженням. Причиною цього є сталість навантаження та відсутність стрибків електроенергії. Також, запропонований підхід сприяє зменшенню кількості перепланувань розміщення обчислювальних задач на 25–35%, що становить 9–15% від задач вузлів-планувальників. Таких вузлів на кожному кластері залежно від розміру від 3 до 7. Це дозволяє зменшити технічні вимоги до вузлів, або ж підвищити на них навантаження шляхом додавання нових вузлів у кластер. У зв’язку з тим, що кількість доповнювальних груп складатиме 20–30%, відповідно спостерігатиметься зменшення потреб в автомасштабуванні до 20%. На вузлах, де частково чи повністю будуть розміщені доповнювальні групи, можна зменшити кількість запасного ресурсу headroom відповідно до пропорції присутності доповнювальних груп на обчислювальних вузлах. Пропорція буде ефективною щодо кількості запасного ресурсу, якщо доповнювальні групи складатимуть 20–24% залежно від ключового ресурсу, а отже запасний ресурс можна зменшити на максимально 20%. В разі виділення вузлів, повністю заповнених групами доповнювальних навантажень, можна забезпечити збільшення пропускної можливості багатосерверної системи в години пік, яке становитиме 5–15% на 10–15% відсотках серверів. Основні ідеї методу доповнювальних навантажень впроваджені у курсі «Big Data», що викладається аспірантам НН ІТС на кафедрі ІТТ.

Опис

Ключові слова

хмарна інфраструктура, горизонтальне масштабування, Kubernetes, оптимізація витрат, розподіл завдань, телекомунікаційні сервіси, конфігурація ресурсів, мікросервісна архітектура, оркестрація контейнерів, часові ряди, енергоефективність, комп’ютерні системи, доповнювальні навантаження, багатосерверні системи, класифікація трафіку, мікропослуги, безсерверні технології, cloud infrastructure, horizontal scaling, cost optimization, traffic classification, task distribution, telecommunications services, resource allocation, microservice architecture, container orchestration, time series, energy efficiency, computer systems, complementary workloads, multi-server systems, serverless technologies

Бібліографічний опис

Дмитренко, О. А. Метод доповнювальних навантажень для розподілу задач в хмарних системах : дис. … д-ра філософії : 172 Телекомунікації та радіотехніка / Дмитренко Олександра Анатоліївна. – Київ, 2025. – 272 с.

ORCID

DOI