Processor group determination for the effective processor capacity usage
The optimization of resource utilization in cloud systems is a critical endeavor given the widespread adoption of cloud technology and its user-friendly nature. Cloud system developers are continuously innovating to deliver fast application performance, leveraging advancements such as serverless arc...
Gespeichert in:
| Datum: | 2024 |
|---|---|
| Hauptverfasser: | , |
| Format: | Artikel |
| Sprache: | Ukrainian |
| Veröffentlicht: |
PROBLEMS IN PROGRAMMING
2024
|
| Schlagworte: | |
| Online Zugang: | https://pp.isofts.kiev.ua/index.php/ojs1/article/view/639 |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Назва журналу: | Problems in programming |
| Завантажити файл: | |
Institution
Problems in programming| id |
pp_isofts_kiev_ua-article-639 |
|---|---|
| record_format |
ojs |
| resource_txt_mv |
ppisoftskievua/7e/939627c64b4e1d017e1be5adab61147e.pdf |
| spelling |
pp_isofts_kiev_ua-article-6392025-02-15T13:09:34Z Processor group determination for the effective processor capacity usage Визначення мікропроцесорних груп для ефективного використання процесорних потужностей Dmytrenko, О.A. Skulysh, M.A. cloud systems; microservices architecture; processor efficiency; energy efficiency optimization; technology cost reduction UDC 004.75 хмарні системи; мікросервісна архітектура; ефективність процесора; оптимізація енергоспоживання; зниження вартості технологі УДК 004.75 The optimization of resource utilization in cloud systems is a critical endeavor given the widespread adoption of cloud technology and its user-friendly nature. Cloud system developers are continuously innovating to deliver fast application performance, leveraging advancements such as serverless architectures and proprietary databases. The introduction of Docker and Kubernetes has further facilitated performance testing in the cloud, resulting in a significant uptick in cloud usage. Considering the substantial investments made in cloud technology, it is imperative to explore strategies for optimizing resource allocation and utilization This article delves into the essential metrics of computer performance that can be both measured and influenced. These metrics include channel capacity, latency assessment, memory types (operational and non-volatile), processing power, and core count. Understanding and effectively managing these metrics are crucial for maximizing the efficiency of cloud systems. The proposed algorithm outlined in the article aims to identify complementary instances of microservices that can efficiently share server resources. Initially, microservices are categorized into instances with similar capacity levels, forming equivalence classes based on their resource usage patterns. Within these classes, instances are further sorted based on their resource utilization amplitudes. The goal is to pair instances with significant differences in resource utilization with others exhibiting similar amplitudes to optimize resource allocation. Additionally, instances with lower resource utilization may also be combined to maximize resource efficiency. The algorithm iteratively searches for compatible microservice combinations within these equivalence classes until suitable matches are found. Throughout the process, statistics of attempted combinations are maintained to inform future optimization strategies.Prombles in programming 2024; 2-3: 215-222 Задача оптимізації використання ресурсів хмарних систем надзвичайно актуальна, оскільки ця технологія стала дуже поширеною та легко доступною. Розробники хмарних систем постійно вдосконалюють їх, створюючи нові та ефективні сервіси для швидкого розгортання застосунків. Серед таких сервісів можна виділити серверні технології, власні бази даних та інші інструменти. Тестування продуктивності додатків у хмарі стало значно простішим завдяки появі Docker та Kubernetes, що привело до ще більшого попиту на хмарні ресурси. Оскільки на розробку та підтримку інфраструктури хмар витрачається величезна кількість ресурсів, важливо розуміти, яким чином ці ресурси можна оптимізувати. Стаття розглядає ключові характеристики комп'ютерних систем, які можна виміряти та впливати на них. Ці характеристики включають пропускну здатність каналів передачі, оцінку ефективності роботи за затримками, обсяг оперативної та постійної пам'яті, потужність обробки та кількість ядер. Пропонується алгоритм ідентифікації доповнювальних екземплярів мікросервісів, які могли б ефективно використовувати ресурси сервера. Спочатку екземпляри мікросервісів класифікуються за їхньою потужністю, розглядаючи малі екземпляри як одиницю потужності. Шляхом аналізу екземпляри мікросервісів групуються у класи еквівалентності за схожістю. Екземпляри потім сортуються за амплітудою використання ресурсу. Ідеально, якщо екземпляри зі значними відмінностями у навантаженні об'єднуються з іншими схожими за амплітудою, але протилежними за фазою, щоб максимізувати використання ресурсів. Комбінації можуть бути доречними також з екземплярами з низькою амплітудою. В межах протилежних класів, що відрізняються фазами активності екземплярів мікропроцесорів, алгоритм шукає перший екземпляр мікросервісу, який відповідає умовам. Для цього зберігається статистика комбінацій з усіма екземплярами до знаходження першої успішної комбінації. В протилежному випадку відбувається пошук найменш невдалої комбінації.Prombles in programming 2024; 2-3: 215-222 PROBLEMS IN PROGRAMMING ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ ПРОБЛЕМИ ПРОГРАМУВАННЯ 2024-12-17 Article Article application/pdf https://pp.isofts.kiev.ua/index.php/ojs1/article/view/639 10.15407/pp2024.02-03.215 PROBLEMS IN PROGRAMMING; No 2-3 (2024); 215-222 ПРОБЛЕМЫ ПРОГРАММИРОВАНИЯ; No 2-3 (2024); 215-222 ПРОБЛЕМИ ПРОГРАМУВАННЯ; No 2-3 (2024); 215-222 1727-4907 10.15407/pp2024.02-03 uk https://pp.isofts.kiev.ua/index.php/ojs1/article/view/639/691 Copyright (c) 2024 PROBLEMS IN PROGRAMMING |
| institution |
Problems in programming |
| baseUrl_str |
https://pp.isofts.kiev.ua/index.php/ojs1/oai |
| datestamp_date |
2025-02-15T13:09:34Z |
| collection |
OJS |
| language |
Ukrainian |
| topic |
cloud systems microservices architecture processor efficiency energy efficiency optimization technology cost reduction UDC 004.75 |
| spellingShingle |
cloud systems microservices architecture processor efficiency energy efficiency optimization technology cost reduction UDC 004.75 Dmytrenko, О.A. Skulysh, M.A. Processor group determination for the effective processor capacity usage |
| topic_facet |
cloud systems microservices architecture processor efficiency energy efficiency optimization technology cost reduction UDC 004.75 хмарні системи мікросервісна архітектура ефективність процесора оптимізація енергоспоживання зниження вартості технологі УДК 004.75 |
| format |
Article |
| author |
Dmytrenko, О.A. Skulysh, M.A. |
| author_facet |
Dmytrenko, О.A. Skulysh, M.A. |
| author_sort |
Dmytrenko, О.A. |
| title |
Processor group determination for the effective processor capacity usage |
| title_short |
Processor group determination for the effective processor capacity usage |
| title_full |
Processor group determination for the effective processor capacity usage |
| title_fullStr |
Processor group determination for the effective processor capacity usage |
| title_full_unstemmed |
Processor group determination for the effective processor capacity usage |
| title_sort |
processor group determination for the effective processor capacity usage |
| title_alt |
Визначення мікропроцесорних груп для ефективного використання процесорних потужностей |
| description |
The optimization of resource utilization in cloud systems is a critical endeavor given the widespread adoption of cloud technology and its user-friendly nature. Cloud system developers are continuously innovating to deliver fast application performance, leveraging advancements such as serverless architectures and proprietary databases. The introduction of Docker and Kubernetes has further facilitated performance testing in the cloud, resulting in a significant uptick in cloud usage. Considering the substantial investments made in cloud technology, it is imperative to explore strategies for optimizing resource allocation and utilization This article delves into the essential metrics of computer performance that can be both measured and influenced. These metrics include channel capacity, latency assessment, memory types (operational and non-volatile), processing power, and core count. Understanding and effectively managing these metrics are crucial for maximizing the efficiency of cloud systems. The proposed algorithm outlined in the article aims to identify complementary instances of microservices that can efficiently share server resources. Initially, microservices are categorized into instances with similar capacity levels, forming equivalence classes based on their resource usage patterns. Within these classes, instances are further sorted based on their resource utilization amplitudes. The goal is to pair instances with significant differences in resource utilization with others exhibiting similar amplitudes to optimize resource allocation. Additionally, instances with lower resource utilization may also be combined to maximize resource efficiency. The algorithm iteratively searches for compatible microservice combinations within these equivalence classes until suitable matches are found. Throughout the process, statistics of attempted combinations are maintained to inform future optimization strategies.Prombles in programming 2024; 2-3: 215-222 |
| publisher |
PROBLEMS IN PROGRAMMING |
| publishDate |
2024 |
| url |
https://pp.isofts.kiev.ua/index.php/ojs1/article/view/639 |
| work_keys_str_mv |
AT dmytrenkooa processorgroupdeterminationfortheeffectiveprocessorcapacityusage AT skulyshma processorgroupdeterminationfortheeffectiveprocessorcapacityusage AT dmytrenkooa viznačennâmíkroprocesornihgrupdlâefektivnogovikoristannâprocesornihpotužnostej AT skulyshma viznačennâmíkroprocesornihgrupdlâefektivnogovikoristannâprocesornihpotužnostej |
| first_indexed |
2025-07-17T09:52:38Z |
| last_indexed |
2025-07-17T09:52:38Z |
| _version_ |
1850409842006556672 |
| fulltext |
215
Інформаційні системи
УДК 004.75 http://doi.org/10.15407/pp2024.02-03.215
О.А. Дмитренко, М.А. Скулиш
ВИЗНАЧЕННЯ МІКРОПРОЦЕСОРНИХ ГРУП ДЛЯ
ЕФЕКТИВНОГО ВИКОРИСТАННЯ ПРОЦЕСОРНИХ
ПОТУЖНОСТЕЙ
Задача оптимізації використання ресурсів хмарних систем надзвичайно актуальна, оскільки ця техноло-
гія стала дуже поширеною та легко доступною [1]. Розробники хмарних систем постійно вдосконалюють
їх, створюючи нові та ефективні сервіси для швидкого розгортання застосунків. Серед таких сервісів
можна виділити серверні технології, власні бази даних та інші інструменти. Тестування продуктивності
додатків у хмарі стало значно простішим завдяки появі Docker та Kubernetes, що привело до ще більшого
попиту на хмарні ресурси. Оскільки на розробку та підтримку інфраструктури хмар витрачається вели-
чезна кількість ресурсів, важливо розуміти, яким чином ці ресурси можна оптимізувати.
Стаття розглядає ключові характеристики комп'ютерних систем, які можна виміряти та впливати на них.
Ці характеристики включають пропускну здатність каналів передачі, оцінку ефективності роботи за за-
тримками, обсяг оперативної та постійної пам'яті, потужність обробки та кількість ядер.
Пропонується алгоритм ідентифікації доповнювальних екземплярів мікросервісів, які могли б ефективно ви-
користовувати ресурси сервера. Спочатку екземпляри мікросервісів класифікуються за їхньою потужністю,
розглядаючи малі екземпляри як одиницю потужності. Шляхом аналізу екземпляри мікросервісів групуються
у класи еквівалентності за схожістю. Екземпляри потім сортуються за амплітудою використання ресурсу. Іде-
ально, якщо екземпляри зі значними відмінностями у навантаженні об'єднуються з іншими схожими за амп-
літудою, але протилежними за фазою, щоб максимізувати використання ресурсів. Комбінації можуть бути
доречними також з екземплярами з низькою амплітудою. В межах протилежних класів, що відрізняються
фазами активності екземплярів мікропроцесорів, алгоритм шукає перший екземпляр мікросервісу, який від-
повідає умовам. Для цього зберігається статистика комбінацій з усіма екземплярами до знаходження першої
успішної комбінації. В протилежному випадку відбувається пошук найменш невдалої комбінації.
Ключові слова: хмарні системи, мікросервісна архітектура, ефективність процесора, оптимізація енерго-
споживання, зниження вартості технології
О. Dmytrenko, M. Skulysh
PPROCESSOR GROUP DETERMINATION FOR THE
EFFECTIVE PROCESSOR CAPACITY USAGE
The optimization of resource utilization in cloud systems is a critical endeavor given the widespread adoption of
cloud technology and its user-friendly nature [1]. Cloud system developers are continuously innovating to deliver
fast application performance, leveraging advancements such as serverless architectures and proprietary
databases. The introduction of Docker and Kubernetes has further facilitated performance testing in the cloud,
resulting in a significant uptick in cloud usage. Considering the substantial investments made in cloud
technology, it is imperative to explore strategies for optimizing resource allocation and utilization
This article delves into the essential metrics of computer performance that can be both measured and influenced.
These metrics include channel capacity, latency assessment, memory types (operational and non-volatile),
processing power, and core count. Understanding and effectively managing these metrics are crucial for
maximizing the efficiency of cloud systems.
The proposed algorithm outlined in the article aims to identify complementary instances of microservices that
can efficiently share server resources. Initially, microservices are categorized into instances with similar capacity
levels, forming equivalence classes based on their resource usage patterns. Within these classes, instances are
further sorted based on their resource utilization amplitudes. The goal is to pair instances with significant
differences in resource utilization with others exhibiting similar amplitudes to optimize resource allocation.
Additionally, instances with lower resource utilization may also be combined to maximize resource efficiency.
The algorithm iteratively searches for compatible microservice combinations within these equivalence classes
until suitable matches are found. Throughout the process, statistics of attempted combinations are maintained to
inform future optimization strategies.
Key words: cloud systems, microservices architecture, processor efficiency, energy efficiency optimization,
technology cost reduction
© А.О. Дмитренко, М.А. Скулиш, 2024
ISSN 1727-4907. Проблеми програмування. 2024. №2-3
216
Інформаційні системи
Вступ
Використання хмарних систем по-
чало поширюватись на початку 2000-х ро-
ків. Водночас розробляти та тестувати за-
стосунки під хмару було незручно до появи
Docker у 2013 році [1]. Система контейне-
ризації, а до неї ще й система оркестрації
Kubernetes, дали новий поштовх мікросер-
вісній архітектурі, яка і без того набирала
оберти, адже стало можливо імітувати ро-
боту та розростання мікросервісів на хмарі.
Мікросервісна архітектура своєю
чергою виправдана для великих застосун-
ків, які містять окремий функціонал, що не
завжди міцно зв’язаний з іншими підсисте-
мами [2]. Користувачі застосунків можуть
проводити багато часу, роздивляючись сайт
чи обираючи щось, та мало часу використо-
вувати на інші дії. Мікросервіси дають мо-
жливість розділити ці частини, і, в разі си-
льного навантаження, запустити додаткові
інстанси (сервери) тільки з тими частинами
застосунку, які цього потребують.
Така методика вже економить як
гроші власників бізнесу, адже під час запу-
ску додаткового застосунку та розподі-
лення навантаження між ними (load-
balancing) витрачатиметься більше ресур-
сів, аніж для запуску окремого елемента [1].
Для забезпечення стабільної роботи
всіх елементів хмарної системи оновлення
серверів зазвичай робиться, коли їхній га-
рантійний термін збіг. Таким чином най-
краще максимально скористатись серве-
рами, використавши їхній ресурс на повну.
В цій статті описується алгоритм,
що допоміг би хмарній системі не тільки
ефективно розподіляти навантаження між
мікросервісами та оркеструвати запуск чи
загасання додаткових, а ще і на повну вико-
ристовувати серверні та канальні потужно-
сті.
У процесі роботи застосунку на сер-
вері зазвичай сервер завантажений не на
повну. Ступінь завантаження залежить від
призначення застосунку, часу доби та дня
тижня. Навантаження - це прогнозована ха-
рактеристика. Отже, можна використати ці
знання та сформувати серверні групи або ж
об’ємні сервери та пропускні канали для
розміщення декількох мікропроцесорів, які
в сумі будуть давати навантаження близьке
до повного.
Метою цієї статті є показати можли-
вість більш ефективно використовувати
енергетичні та обчислювальні ресурси при
використанні хмарних технологій шляхом
застосування запропонованого в статті ал-
горитму пошуку доповнюючих наванта-
жень на серверні групи, так щоб завантаже-
ність всіх елементів системи була максима-
льною, і в той же час збалансованою.
Характеристики для
балансування
Можливість ефективно збалансу-
вати навантаження на серверні групи базу-
ється на статистичних даних про викорис-
тання кожного з видів ресурсу. Нижче на-
водиться список характеристик, які можуть
бути взятими до уваги.
Мережевий ресурс
Навантаження мережі - кількість
трафіку на мережі впливає на стійкість та
надійність зв'язку між мікросервісами. За-
великий обсяг трафіку може призвести до
перевантаження мережевих ресурсів та
зниження швидкості передачі даних. Вод-
ночас низький рівень навантаження мережі
не виправдовуватиме її ресурс.
Основний показник навантаження
мережі - це її пропускна здатність
(bandwidth). Вона характеризується кількі-
стю даних, яку можна передати через канал
за одиницю часу. Зазвичай вимірюється в
бітах на секунду (bps) або його кратному
значенні, такому як кілобіт на секунду
(kbps) або мегабіт на секунду (Mbps). Чим
вища пропускна здатність, тим більше да-
них може бути передано за одиницю часу.
У випадку проблем з передачею да-
них, використовується поняття затримки
(latency). Це час, необхідний для передачі
сигналу від джерела до приймача. Вимірю-
ється в мілісекундах (ms) або мікросекун-
дах (µs). Малий час затримки означає шви-
дку передачу сигналу. Якщо мова йде про
одну мережу, затримки під час передачі ма-
217
Інформаційні системи
лих повідомлень будуть вимірюватись у мі-
кросекундах. З погляду спостерігача, все
відбуватиметься блискавично. Більші за-
тримки в тій самій мережі будуть очікува-
тись у випадку передачі, наприклад, об’єм-
них файлів між мікросервісами.
Щодо допустимих затримок, існу-
ють виміри та розрахунки, в яких межах
вони мають бути, щоб користувач їх не від-
чув. За вимірами компанії Гугл, це затри-
мки до 1.5 секунди, якщо це звичайний веб-
застосунок, та 0.5 секунд, якщо відбува-
ється передача відео [3].
Іншою особливістю передачі даних
є джиттер (jitter), тобто непостійність в за-
тримці передачі даних через канал. Він ви-
мірюється в мілісекундах (ms) або мікросе-
кундах (µs). Джиттер може вказувати на не-
належне керування трафіком або нестабіль-
ність мережі. Він може призводити до мо-
ментальних пікових навантажень, в той час,
як середнє навантаження буде невисоким.
Треба слідкувати, щоб джиттери системи
були зведені до мінімуму, адже це говори-
тиме про якість та надійність системи в ці-
лому.
Незалежно від особливостей пере-
дачі даних, дуже важливою характеристи-
кою є втрата пакетів (packet loss), з якою
можна боротись за допомогою fault
tolerance методів [4]. Вона вимірюється у
відсотках пакетів, які не були доставлені до
призначеного місця через помилки в ме-
режі або перевантаження. Велика втрата
пакетів може призвести до погіршення яко-
сті передачі даних. Через можливу втрату
пакетів доводиться передбачувати меха-
нізм повторного посилання інформації [5],
якщо вона ще лишається актуальною. У до-
бре розробленій системі втрати пакетів не
повинно бути, а повторне відправлення має
відбуватись тільки в разі фізичного розриву
мережі. Допустимим вважається показник
менший за 1% втрачених пакетів [6]. При
передачі, наприклад, аудіо чи відео не буде
суттєво відчутно проблем зі зв’язком в та-
кому випадку.
Всі вищезгадані характеристики бе-
руться до уваги за умови повної доступно-
сті (availability) каналу, тобто готовності
каналу передавати дані [7]. Ця характерис-
тика пропорційна та розподілятиметься між
декількома мікропроцесорами в необхідній
долі залежно від їх середніх очікуваних по-
казників навантаження на мережу.
Процесорна потужність
Завантаження процесорної потужно-
сті - це процес, під час якого процесор об-
робляє всі запити, що надходять. Ефектив-
ність цього процесу залежить від стилю на-
писання коду, використання реактивного
програмування або віртуальних потоків.
Незалежно від цього, кожен запит прийма-
ється та опрацьовується відповідним пото-
ком.
Для оцінки потреби в процесорній
потужності для даного застосунку варто
враховувати показники завантаженості
ядра процесора або сумарний середній по-
казник завантаженості групи ядер за оди-
ницю часу.
Розглядаючи вхідні параметри, важ-
ливо враховувати не лише середню очіку-
вану завантаженість процесора протягом
певного часу, а також мінімальну, бажану
та в деяких випадках максимальну кіль-
кість ядер-потоків сервера. Ці параметри
важливі, оскільки багатопотокові застосу-
нки можуть бути оптимізовані для певної
кількості потоків. Розбіжність кількості по-
токів з вимогами розробленого коду може
призвести до зниження ефективності бага-
топотокової розробки або навіть до виник-
нення негативних наслідків. Наприклад,
якщо комп'ютеру доведеться обробляти дві
задачі одночасно, одним потоком, ефектив-
ність може значно зменшитися через пос-
тійне перемикання між ними.
Пам’ять
Мають значення як оперативна, так і
постійна (дискова). Оперативної пам’яті
має вистачати для потреб обробки запитів,
а жорсткий диск має виконувати скоріше
функцію запасної оперативної пам’яті,
куди відбуватиметься тимчасове виванта-
жування інформації з оперативної в разі пі-
кового навантаження. Основна функція по-
стійної пам’яті - слугувати операційній си-
стемі для розміщення необхідних файлів та
хостити мікросервіси. Самі по собі мікро-
сервіси не мають записувати на дискову
218
Інформаційні системи
пам’ять свої дані, адже вся необхідна інфо-
рмація радше має зберігатись у під’єднаних
базах даних.
Приклад вхідних даних
У Табл.1 міститься приклад характе-
ристик, зібраних з робочої програми на од-
ному мікропроцесорі за одну годину ро-
боти, додатково із загальними характерис-
тиками мікропроцесора, які надаються роз-
робниками ПЗ. Погодинні характеристики
вказані своїм середнім значенням. Такі ха-
рактеристики мають надходити з кожним
мікропроцесором за кожну годину, тобто
24 значення кожної змінної характерис-
тики. Якщо певні дні тижня мають суттєво
інші показники, їх теж слід надати.
Таблиця 1
Зведені характеристики загальні до
мікропроцесора та середнє значення
за конкретну годину
Назва характе-
ристики
Особливості Значення
Мережеве нава-
нтаження
Пропускна здат-
ність - 10 Мбіт/с
(ethernet)
8 Мбіт/с
Процесор 2,5 GHz Quad-
Core Intel Core i7
68%
Ядра Quad-Core 4
Оперативна
пам’ять (RAM)
8 GB 1600 MHz
DDR3
4 Гб
Жорсткий диск
мінімальний
(HD)
Seagate
BarraCuda HDD
60 Гб
Алгоритм роботи системи
пошуку доповнюючих екземпля-
рів мікросервісів
Алгоритм пошуку доповнень має
бути гнучким, адже ідеального доповнення
може не існувати, тому основні керівні мо-
менти - це обрана допустима похибка непо-
вноти. Задача повного перебору була б до-
пустима, якби розраховувати на сотні екзе-
мплярів мікросервісів, при тисячах слід
вводити оптимізації.
Алгоритм пошуку доповнення має
запускатись у разі надходження нових мік-
росервісів для розподілення, включаючи
всі наявні мікросервіси, які неоптимально
запущені. Також зі зміною вхідних таблич-
них показників, має сенс теж переглянути
доцільність групування певних екземпля-
рів. Водночас цей випадок зводиться до пе-
регляду неоптимально налаштованих сер-
верних груп, що можна буде спостерігати
по статистиці кожної групи.
Під статистикою по мікропроцесору
слід розуміти загальне використання ресур-
сів усіх запущених екземплярів. Тобто,
якщо екземплярів 5, і кожен використовує 4
ядра, то сумарно ядер буде 20. Натомість
статистика по серверній групі враховує су-
марну характеристику конкретних запуще-
них екземплярів процесорів і конкретну
статистику кожного екземпляра.
Підготовка даних
Проранжувати мікропроцесори за
основною та додатковими характеристи-
ками від найбільшого до найменшого. Під
час вибору мікропроцесорів для сумі-
щення, початково треба дивитись на ті, в
яких значення максимального наванта-
ження приблизно рівні, водночас графік за-
вантаження зміщений на фазу. Іншими сло-
вами, якщо один завантажений на 500
Флопс вдень і на 100 вночі, а інший - на-
впаки.
Сортування знадобиться для під-
бору схожих навантажень мікропроцесорів.
Також воно дасть можливість зручніше та
швидше, не виконуючи додаткового пере-
бору, зробити початкові корекції з мікроп-
роцесорами перед запуском алгоритму.
Задача підготовки даних полягає у
розподілі великих мікропроцесорів. Слід
розподілити мікропроцесори із занадто ве-
ликим завантаженням та апріорі поділити
їх на 2 або більше частин, щоб обмежити
максимально допустиме використання ре-
сурсів. Вибір кількості частин слід здійс-
нювати, базуючись на максимально допус-
тимому значенні за заданою характеристи-
кою . Якщо наявні частини, які си-
льно виділяються завантаженістю поміж ін-
шими, їх слід відокремити в нові екземп-
219
Інформаційні системи
ляри мікропроцесорів, які будуть запуска-
тися тільки в заданий час.
Зручно мати певну кількість мікроп-
роцесорів, котрі завжди працюватимуть на
максимум, і в разі необхідності запускати
помічників. Це краще, ніж декілька постій-
них мікропроцесорів, що працюють не на
повну потужність.
Таким чином, після поділу містких
мікропроцесорів їхній графік завантаження
стане зовсім іншим. У одних він буде одна-
ковий протягом усього дня, а у інших буде
частковий, тобто завантаженість у певні го-
дини та нулі в інші. Це дозволить не шукати
пару повноцінним мікропроцесорам та гну-
чко підбирати компаньйонів частково зава-
нтаженим. Ідея доповнюючих мікросерві-
сів детально розписана у статті [8].
Нижче наведено математичний ви-
раз (1), який описує необхідність поділу ма-
ксимального навантаження на кіль-
кість частин так, щоб кожна поділена час-
тина була дещо меншою за :
, (1)
де - максимальне навантаження
по заданій характеристиці, - гра-
ничне значення навантаження на кожну ча-
стину, - ціле додатне число, кількість ча-
стин, на які потрібно поділити максимальне
навантаження. Дана формула та наступні
наведені є авторськими та випливають з по-
становки задачі та способу її вирішення.
Пошук закономірностей
Якщо у добовому використанні про-
цесора спостерігаються виражені макси-
муми та мінімуми, можна вивести законо-
мірності його роботи. Знання значень пері-
оду, амплітуди та фази допоможуть у по-
шуку антипода. Таким чином, до табличних
характеристик слід додати помітки для ви-
ділення
- мінімумів,
- максимумів завантаженості,
- значення завантаженості.
Такі помітки можна зробити у рядках на-
впроти відповідного часу.
Також ці характеристики слід за-
нести до окремої таблиці для розрахунку
доповнень, вказавши ідентифікатор екзем-
пляру мікропроцесора. Отримавши дані
про всі екземпляри, можна згрупувати мік-
ропроцесори за схожою поведінкою. Це по-
легшить пошук доповнень.
Ранжування
У межах групи проранжувати осо-
бини за максимумами використання кожної
характеристики, виділяючи основну. Це
знову ж таки пришвидшить підбір пари, по-
збавляючи необхідності повного перебору
в межах групи, адже так можна ефектив-
ніше підбирати екземпляри, щоб допов-
нити навантаження, якого не вистачає.
Нормалізація навантаження
Почати пошук найкращого допов-
нення з сумісної групи за наявності. Там, де
приблизний максимум одного екземпляра,
має бути приблизний мінімум або не макси-
мум іншого.
У процесі суміщення першим
етапом є нормалізація спільного максима-
льного завантаження за ключовим або екс-
тремальним параметром. Таким парамет-
ром є найбільша характеристика з таблиці,
тобто або процесорне використання, або
мережевий ресурс, або оперативна пам’ять.
Під нормалізацією мається на увазі
пошук сумарної найбільшої завантаженості
в кожний момент часу. Це не обов’язково
буде накладення максимального наванта-
ження, оскільки в перетині можуть трапля-
тись мінімальні, тому треба перевірити всі
значення в кожен вимір. Нормалізована ве-
личина, або ж сумарне максимальне заван-
таження, буде взята як повна сумарна зава-
нтаженість, тобто 1 або 100%. Це значення
буде потужністю серверної групи за обра-
ним параметром.
Формула для знаходження часового
інтервалу tmax, за якого сума навантажень
Pi за заданим параметром буде максима-
льною, може бути записана наступним чи-
ном (2):
, (2)
220
Інформаційні системи
де - шуканий часовий інтервал,
який максимізує суму навантажень,
- оператор, який знаходить зна-
чення параметра , за якого вираз до-
сягає максимуму, - навантаження на і-
тому мікропроцесорі, - ціле додатне число
, яке представляє кількість мікропро-
цесорів, які розглядається для однієї серве-
рної групи.
Таким чином, формулу результату
нормалізації можна записати у вигляді (3).
,
(3)
Розрахунок недовикористаного
ресурсу
Отримавши нормалізовані дані, мо-
жна виміряти кількість недовикористаного
ресурсу та залежно від показників ухвалити
рішення про доцільність такої комбінації
мікросервісів. Недовикористаний ресурс U
являє собою суму різниць нормалізованого
максимального значення з сумою
за всі години. Це виражається формулою
(4):
, (4)
де - кількість годин, - нормалізоване
максимальне значення ресурсу, використа-
ного всіма екземплярами потенційної сер-
верної групи, сума - значення спільно ви-
користаного ресурсу усіма екземплярами
.
Умови продовження та
завершення пошуку
доповнення
Зважаючи на значення U, рішення
можуть бути наступні:
а) Доповнення високого рівня,
тобто майже всі ресурси використову-
ються на повну в будь-який час, і групу
сформовано. Критерій повноцінного вико-
ристання можна визначити через формулу
(5), представлену нижче, яка являє середнє
значення суми недовикористаного ресурсу
Ut за весь час T, яке має бути меншим або
рівним .
, (5)
де - кількість годин, - дискретне зна-
чення недовикористаного ресурсу в час ,
- мінімально припустиме значення не-
довикористаного (unused) ресурсу.
б) Доповнення неефективне. В
цьому варіанті повне процесорне викорис-
тання зустрічається в рідкісні часові інтер-
вали, але і можливостей вмістити додаткові
мікросервіси теж мало, тому краще шукати
інше доповнення. - рівень невикорис-
таного (unused) ресурсу, який вважається
завеликим. Вираз (6), який це описує, наве-
дено нижче.
(6)
в) Доповнення незакінчене (7),
тобто є можливість доповнення між зада-
ними мікросервісами тільки, якщо додат-
кові мікросервіси будуть додані, адже недо-
використаний ресурс занадто великий. Тоді
слід знайти мікросервіс з малою потребою
в ресурсах і додати його до групи, повторю-
ючи всі кроки заново.
(7)
Найкращим варіантом вбачається
перший, коли одразу чи після додавання де-
кількох мікросервісів знайдено повне допо-
внення. Водночас слід розуміти, що така
ситуація може статися не з усіма мікропро-
цесорами. Після виконання деякої кількості
переборів A (attempts) з певним мікропро-
цесором, потрібно вибрати найменш неус-
пішну комбінацію, або ж погодитись, що
цей мікропроцесор буде самостійно на сер-
вері. Це теж слід оцінити порівнюючи кіль-
кість недовикористаного ресурсу U. Для
цього програма розподілу буде запам’ято-
вувати це значення на кожній ітерації, зано-
товуючи набір суміщених екземплярів та
значення невикористаного ресурсу, поки не
буде ухвалено рішення.
221
Інформаційні системи
Приклад з візуалізацією
Рис. 1. Приклад суміщення 3х екземплярів
мікропроцесорів в одну групу з відміченим
недовикористаним ресурсом.
На Рис.1 показано 2 ітерації пошуку
доповнюючих екземплярів мікропроцесо-
рів. На першій ітерації зійшлись екземпляр
1 - позначений сірим, та екземпляр 2 - поз-
начений червоним. У місці максимуму пер-
шого, у другого був локальний мінімум,
тому вони могли бути скомбіновані, як за-
значено у пункті “Пошук закономірнос-
тей”. Водночас, спостерігається очевидний
сильний мінімум та завеликий діапазон не-
використаності ресурсу, описаний у фор-
мулі (7). Тому алгоритм продовжив далі по-
шук доповнення.
Маючи максимум в зоні мінімума
сумарної функції двох перших екземплярів,
була спроба під’єднати третій екземпляр ін-
шого мікросервісу, позначеного жовтим.
Після спроби система увійшла в стан (6).
Дане значення буде внесено в реєстр та по-
шук продовжено з надією знайти кращу до-
пасованість, яка б мінімізувала значення U.
Висновки
У висновках статті пропонується ал-
горитм, який дозволить оптимізувати вико-
ристання ресурсів хмарних систем шляхом
ефективного розподілу навантаження між
різними мікросервісами. Цей алгоритм
може бути корисним для постачальників
хмарних послуг та організацій, які викори-
стовують хмарні середовища для розгор-
тання своїх додатків.
Запропонований підхід дозволяє ма-
ксимізувати використання серверних ресу-
рсів, зменшуючи час простою серверів та
оптимізуючи роботу мікросервісів. Це
своєю чергою сприятиме покращенню про-
дуктивності та зниженню витрат на обслу-
говування хмарних інфраструктур.
Враховуючи те, що використання
хмарних ресурсів стає все більш пошире-
ним і важливим для багатьох організацій,
розробка ефективних методів оптимізації
цих ресурсів має велике значення для під-
вищення конкурентоспроможності та за-
безпечення стабільності бізнесу.
Література
1. “A review of in-memory computing for
machine learning: architectures, options,”
Int. J. Web Inf. Syst., Dec. 2023, doi:
10.1108/IJWIS-08-2023-0131.
2. Z. Li, D. Seco, and A. Sánchez Rodríguez,
“Microservice-Oriented Platform for
Internet of Big Data Analytics: A Proof of
Concept,” Sensors, vol. 19, no. 5, p. 1134,
Mar. 2019, doi: 10.3390/s19051134.
3. “What is Latency: The Hitchhiker’s
Guide,” Obkio. Accessed: Mar. 26, 2024.
[Online]. Available:
https://obkio.com/blog/what-is-latency/
4. O. Dmytrenko and M. Skulysh, “Fault
Tolerance Redundancy Methods for IoT
Devices,” Infocommunication Comput.
Technol., vol. 2(04), no. University
“Ukraine,” pp. 59–65, Dec. 2022.
5. O. Dmytrenko and M. Skulysh, “Handling
with a Microservice Failure and Adopting
Retries,” presented at the Pan-Ukrainian
science-practical conference of students,
postgraduates and young scientists
“Theoretical and Applied Problems of
Physics, Mathematics and Informatics,”
Kyiv, Ukraine: ФIЗTEX, Jun. 2022, pp.
194–196. [Online]. Available:
https://drive.google.com/file/d/1MbM9Yq
nSitNNdCp0CZ1yguDHweWth3TK/view
6. “What Is Packet Loss: The Invisible
Enemy of Networks,” Obkio. Accessed:
Mar. 26, 2024. [Online]. Available:
https://obkio.com/blog/what-is-packet-
loss/
7. H. Zhang, W. Yang, H. Ji, X. Li, V. C. M.
Leung, and L. Yang, “Delay Aware
222
Інформаційні системи
Resource Allocation for Device-to-Device
Communication Underlaying Cellular
Networks,” in Wireless Internet, M.
Huang, Y. Zhang, W. Jing, and A.
Mehmood, Eds., Cham: Springer
International Publishing, 2018, pp. 207–
217. doi: 10.1007/978-3-319-72998-5_22.
8. O. Dmytrenko and M. Skulysh, “Method
of Grouping Complementary
Microservices Using Fuzzy Lattice
Theory,” vol. 12, no. 1, pp. 11–18, Mar.
2024, doi: 10.25673/115636.
Одержано: 17.04.2024
Внутрішня рецензія отримана: 25.04.2024
Зовнішня рецензія отримана: 26.04.2024
Про авторів:
1Дмитренко Олександра Анатоліївна ,
асистент, аспірант.
https://orcid.org/0009-0009-4785-422.
1Скулиш Марія Анатоліївна
Кандидат технічних наук,
професор
http://orcid.org/0000-0002-5141-1382.
Місце роботи авторів:
1Національний технічний університет Ук-
раїни “Київський політехнічний інститут
ім. Ігоря Сікорського”
тел. +380 44 204-94-94
E-mail: webmaster@kpi.ua
Сайт: https://kpi.ua/
|