Contention-aware container placement strategy for docker swarm with machine learning based clustering algorithms

  • PDF / 606,710 Bytes
  • 11 Pages / 595.276 x 790.866 pts Page_size
  • 18 Downloads / 231 Views

DOWNLOAD

REPORT


(0123456789().,-volV)(0123456789(). ,- volV)

Contention-aware container placement strategy for docker swarm with machine learning based clustering algorithms Ron C. Chiang1 Received: 16 March 2019 / Revised: 3 November 2020 / Accepted: 7 November 2020 Ó Springer Science+Business Media, LLC, part of Springer Nature 2020

Abstract Containerization technology utilizes operating system level virtualization to package applications to run with required libraries and are isolated from other processes on the same host. Lightweight and quick deployment make containers popular in many data centers. Running distributed applications in data centers usually involves multiple clusters of machines. Docker Swarm is a container orchestration tool for managing a cluster of Docker containers and their hosts. However, Docker Swarm’s scheduler does not consider resource utilization when placing containers in a cluster. This paper first investigated performance interference in container clusters. Our experimental study showed that distributed applications’ performance can be degraded when co-located with other containers which aggressively consume resources. A new scheduler is proposed to improve performance while keeping high resource utilization. The experimental results demonstrated that the proposed prototype with machine learning based clustering algorithms could effectively improve distributed applications’ performance by up to 14.5% with an average at around 12%. This work also provides theoretical bounds for the container placement problem. Keywords Cloud computing  Container  Virtualization  Serverless Computing  Microservices

1 Introduction Container technology, or OS-level virtualization, promises low-overhead and fast deployment when compared to hardware virtualization. Each container instance ‘‘contains’’ a group of processes and isolated them from other containers or processes in the system. Specifically, containers rely on tools like namespace and cgroups to encapsulate numerous applications in different containers on the same host. A container management platform allocates CPUs, memory, I/O, and network to each container and provides file system isolation. Containerization is a critical technology to enable ‘‘microservice.’’ The lowoverhead of containers makes microservices can be quickly created, deployed, and destroyed in data centers. This Part of this work was presented at DAAC 2018, in conjunction with SC 2018, November 11–16, 2018, Dallas, TX, USA. & Ron C. Chiang [email protected] 1

Graduate Prorgams of Software, School of Engineering, University of St. Thomas, 2115 Summit Avenue, St. Paul, MN 55105, USA

prominent feature helps to practice many important software engineering concepts, such as DevOps and CI/CD (continuous integration and continuous development). Docker [26], a container management platform, has gained extensive popularity and made the container-based virtualization famous in data centers and the cloud. Docker is not the first one using the OS virtualization technique. Linux containers (L