Adapt Burstable Containers to Variable CPU Resources

Department

Computer Science

Document Type

Article

Publication Date

1-1-2022

Abstract

In the age of cloud-native, container technology is increasingly adopted to deploy cloud applications. Compared with virtual machines, containers are lightweight and flexible in resource management. An important quality-of-service (QoS) class in container management is burstable container, whose resource limits are higher than requests, allowing accessing additional available resources. However, efficiently managing burstable containers is challenging, especially for CPU resources. On the one hand, burstable containers should maintain sufficient concurrency, in the form of threads, to utilize extendable CPU resources. On the other hand, sufficient concurrency leads to suboptimal performance when the CPU allocation is constrained. In this paper, we recommend that the concurrency in burstable containers should always be set to the CPU limit to guarantee extendibility. However, modern operating systems (OSes) fall short of efficiently managing thread oversubscription.First, the CPU scheduler is inefficient for scheduling excessive threads. Second, the existing blocking and non-blocking synchronization are inefficient in synchronizing excessive threads. To this end, we present a user-level adaptive container scheduler and two OS mechanisms, virtual blocking and busy-waiting detection, to avoid inefficiency in managing burstable containers. Experimental results show that our approaches can keep burstable containers efficient while allowing them to take advantage of additional CPUs.

Journal Title

IEEE Transactions on Computers

Journal ISSN

00189340

Digital Object Identifier (DOI)

10.1109/TC.2022.3174480

Share

COinS