ПЛАНУВАННЯ НАВАНТАЖЕННЯ КОНТЕЙНЕРІВ ЗА ДОПОМОГОЮ ЛІНІЙНОГО ПРОГРАМУВАННЯ
DOI: 10.31673/2412-4338.2024.022935
Анотація
Зі зростанням популярності технології розгортання контейнерів Docker, планувальник контейнерів стає ключовим компонентом у процесі розгортання додатків. Для ефективного планування контейнерів необхідно враховувати декілька важливих факторів, таких як споживання електроенергії сервером, час отримання образу віртуальної машини із регістру образів, ціна обміну даними між клієнтом та контейнером. При урахуванні даних факторів, можливо створити систему, що буде ефективно розподіляти задачі між контейнерами, з мінімальним навантаженням на сервер та максимально ефективним використанням ресурсів системи. Проблему планування контейнерів було розглянуто як задачу цілочисельного лінійного програмування. Побудована модель є ефективним та гнучким планувальником, що здатний розподіляти навантаження на контейнери, враховуючи вказані фактори. Для оцінки ефективності нового планувальника, проведено порівняння з планувальником Docker Swarm, що користується Binpack методом планування. Даний алгоритм виконує поставлені на нього задачі, проте його ефективність невисока. Основний принцип алгоритму Binpack полягає у використанні мінімально можливої кількості фізичних вузлів системи для розташування контейнерів. Даний алгоритм не враховує інші фактори, такі як ціну отримання образу системи або ціну обміну даними між клієнтом та сервером. У ході експерименту виявилося, що запропонований метод є більш ефективним. Метод лінійного програмування краще розподіляє контейнери та витрачає на це менше часу та ресурсів. Особливо це помітно зі збільшенням кількості клієнтів та серверів, для яких потрібно вирішити задачу планування. Розроблений метод можливо інтегрувати у фреймворки планування контейнерів.
Залишок цієї статті організований наступним чином. У «Вступі» описаний принцип роботи контейнерів, визначена проблема використання контейнерів у великій кількості та проаналізовані інші роботи, що спрямовані на вирішення даної проблеми. У «Теоретичних основах дослідження» розглянута технологія Docker та проблема розгортання великої кількості додатків за допомогою даного інструменту. У «Методиці дослідження» описаиа модель, яка вирішує проблему планування контейнерів. У розділі «Результати дослідження» проведений ряд експериментів та порівняння створеного методу із алгоритмом Binpack. У «Висновках» проаналізовані результати експериментів, зроблені у попередньому розділі та запропоновані подальші шляхи розвитку створеної технології планування контейнерів.
Ключові слова: лінійне програмування, контейнер, динамічна міграція.
Список використаної літератури
1. Zhao W., Wang Z., Luo Y. Dynamic memory balancing for virtual machines. ACM SIGOPS Operating Systems Review. 2009. Vol. 43, no. 3. P. 37–47. (date of access: 07.04.2024).
2. Automated control of multiple virtualized resources / P. Padala et al. the fourth ACM european conference, Nuremberg, Germany, 1–3 April 2009. New York, New York, USA, 2009. (date of access: 07.04.2024).
3. Than M. M., Thein T. Energy-Saving Resource Allocation in Cloud Data Centers. 2020 IEEE Conference on Computer Applications (ICCA), Yangon, Myanmar, 27–28 February 2020. 2020. (date of access: 07.04.2024).
4. Bhardwaj T., Upadhyay H., Sharma S. C. Autonomic Resource Allocation Mechanism for Service-based Cloud Applications. 2019 International Conference on Computing, Communication, and Intelligent Systems (ICCCIS), Greater Noida, India, 18–19 October 2019. 2019. (date of access: 07.04.2024).
5. Khodar A., Al-Afare H. A. F., Alkhayat I. New Scheduling Approach for Virtual Machine Resources in Cloud Computing based on Genetic Algorithm. 2019 International Russian Automation Conference, Sochi, Russia, 8–14 September 2019. 2019. (date of access: 07.04.2024).
6. Rengasamy R., Chidambaram M. A Novel Predictive Resource Allocation Framework for Cloud Computing. 2019 5th International Conference on Advanced Computing & Communication Systems (ICACCS), Coimbatore, India, 15–16 March 2019. 2019. (date of access: 07.04.2024).
7. Chen J. A Cloud Resource Allocation Method Supporting Sudden and Urgent Demands. 2018 Sixth International Conference on Advanced Cloud and Big Data (CBD), Lanzhou, 12–15 August 2018. 2018. (date of access: 07.04.2024).
8. Yin S., Ke P., Tao L. An improved genetic algorithm for task scheduling in cloud computing. 2018 13th IEEE Conference on Industrial Electronics and Applications (ICIEA), Wuhan, 31 May 2018 – 02 June 2018. 2018.
9. Peinl R., Holzschuher F., Pfitzer F. Docker Cluster Management for the Cloud - Survey Results and Own Solution. Journal of Grid Computing. 2016. Vol. 14, no. 2. P. 265–282. URL:
10. Feller E., Rilling L., Morin C. Energy-Aware Ant Colony Based Workload Placement in Clouds. 2011 12th IEEE/ACM International Conference on Grid Computing (GRID), Lyon, France, 21–23 September 2011. 2011. (date of access: 07.04.2024).