Abstract: For many applications, a microservices architecture promises better performance and flexibility compared to a conventional monolithic architecture. In spite of the advantages of a microservices architecture, deploying microservices poses various challenges for service developers and providers alike. One of these challenges is the efficient placement of microservices on the cluster nodes. Improper allocation of microservices can quickly waste resource capacities and cause low system throughput. In the last few years, new technologies in orchestration frameworks, such as the possibility of multiple schedulers for pods in Kubernetes, have improved scheduling solutions of microservices but using these technologies needs to involve both the service developer and the service provider in the behavior analysis of workloads. Using memory and CPU requests specified in the service manifest, we propose a general microservices scheduling mechanism that can operate efficiently in private clusters or enterprise clouds. We model the scheduling problem as a complex variant of the knapsack problem and solve it using a multi-objective optimization approach. Our experiments show that the proposed mechanism is highly scalable and simultaneously increases utilization of both memory and CPU, which in turn leads to better throughput when compared to the state-of-the-art.
https://home.wp.itec.aau.at/wp-content/uploads/sites/2/2018/03/2018-ITEC-3493_quadrat_1024x1024.jpg 1400 1400 Roland Mathá https://home.wp.itec.aau.at/wp-content/uploads/sites/2/2022/11/ITEC-Webheader-06-1030x94.png Roland Mathá2021-01-06 23:30:492021-01-06 22:18:29Paper accepted in IEEE UCC