When Less is More: Core-Restricted Container Provisioning for Serverless Computing

Cloud applications are exposed to workloads whose intensity can change unpredictably over time. Hence, the ability to quickly scale the amount of computing resources provisioned to applications is essential to minimize costs while providing reliable services. In this context, containers are deemed to be a promising technology to enable fast elasticity in resource allocation schemes. In this paper, we propose and experimentally test an efficient container-based cloud computing provisioning system. First, we address the container deployment problem and discuss how to manage container provisioning and scaling. Second, we devise a resource management mechanism leveraging on both admission control and auto-scaling techniques. We propose to drive auto-scaling decisions through a Q-Learning algorithm, which is agnostic to the specific computing environment, and proceeds based only on the load of the physical processors assigned to a container. We evaluate our solution in two experimental setups, and show that it yields significant advantages when compared to popular container managers such as Kubernetes.

[1]  W. Marsden I and J , 2012 .

[2]  David Bernstein,et al.  Containers and Cloud: From LXC to Docker to Kubernetes , 2014, IEEE Cloud Computing.

[3]  Oh-Young Kwon,et al.  Performance Comparison Analysis of Linux Container and Virtual Machine for Building Cloud , 2014 .

[4]  Orathai Sangpetch,et al.  Thoth: Automatic Resource Management with Machine Learning for Container-based Cloud Platform , 2017, CLOSER.

[5]  Reza Rooholamini,et al.  An Empirical Study of Hyper-Threading in High-Performance Computing Clusters , 2002 .

[6]  Christoph Meinel,et al.  Elastic Virtual Machine for Fine-Grained Cloud Resource Provisioning , 2011 .

[7]  Philippe Merle,et al.  Autonomic Vertical Elasticity of Docker Containers with ELASTICDOCKER , 2017, 2017 IEEE 10th International Conference on Cloud Computing (CLOUD).

[8]  Minglu Li,et al.  An Auto-Scaling Framework for Containerized Elastic Applications , 2017, BigCom.

[9]  Haitao Zhang,et al.  Container Based Video Surveillance Cloud Service with Fine-Grained Resource Provisioning , 2016, 2016 IEEE 9th International Conference on Cloud Computing (CLOUD).

[10]  Chandra Prakash,et al.  Deterministic Container Resource Management in Derivative Clouds , 2018, 2018 IEEE International Conference on Cloud Engineering (IC2E).

[11]  Christoph Hochreiner,et al.  Elastic Provisioning of Virtual Machines for Container Deployment , 2017, ICPE Companion.

[12]  Brendan Burns,et al.  Kubernetes: Up and Running: Dive into the Future of Infrastructure , 2017 .

[13]  Ramakrishnan Rajamony,et al.  An updated performance comparison of virtual machines and Linux containers , 2015, 2015 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS).

[14]  Yiping Ding,et al.  Performance Implications of Hyper-Threading , 2003, Int. CMG Conference.

[15]  Philip S. Yu,et al.  Dynamic Load Balancing on Web-Server Systems , 1999, IEEE Internet Comput..

[16]  Vincenzo Mancuso,et al.  SQLR: Short-Term Memory Q-Learning for Elastic Provisioning , 2021, IEEE Transactions on Network and Service Management.

[17]  Chuanqi Kan,et al.  DoCloud: An elastic cloud platform for Web applications based on Docker , 2016, 2016 18th International Conference on Advanced Communication Technology (ICACT).

[18]  Philippe Merle,et al.  Coordinating Vertical Elasticity of both Containers and Virtual Machines , 2018, CLOSER.

[19]  Petr Tuma,et al.  Analyzing the Impact of CPU Pinning and Partial CPU Loads on Performance and Energy Efficiency , 2015, 2015 15th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing.