Operating-system-level virtualization is becoming increasingly important for server applications since it provides containers as a foundation of the emerging microservice architecture, which enables agile application development, deployment, and operation - the essential characteristics in modern cloud-based services. Agility in the microservice architecture heavily depends on fast management operations for containers, such as create, start, and stop. Since containers rely on administrative kernel services provided by the host operating system, the microservice architecture can be considered as a new workload for an operating system as it stresses those services differently from traditional workloads. We studied the scalability of container management operations for Docker, one of the most popular container management systems, from two aspects: core and container scalability, which indicate how much the number of processor cores and number of containers affect container management performance, respectively. We propose a hierarchical analysis approach to identify scalability bottlenecks where we analyze multiple layers of a software stack from the top to bottom layer. Our analysis reveals that core scalability has bottlenecks at a virtualization layer for storage and network devices, and that container scalability has bottlenecks at various components that inquire mount points. While those bottlenecks exist in a daemon process of Docker, the root causes are a couple of interfaces of the underlying kernel. This implies the operating system has room for improvement to more efficiently host emerging microservice applications.
[1]
Erik R. Altman,et al.
Performance analysis of idle programs
,
2010,
OOPSLA.
[2]
Carsten Binnig,et al.
How is the weather tomorrow?: towards a benchmark for the cloud
,
2009,
DBTest '09.
[3]
Yong Yu,et al.
A Synthetical Performance Evaluation of OpenVZ, Xen and KVM
,
2010,
2010 IEEE Asia-Pacific Services Computing Conference.
[4]
Toshio Nakatani,et al.
Performance variations of two open-source cloud platforms
,
2010,
IEEE International Symposium on Workload Characterization (IISWC'10).
[5]
Jerome A. Rolia,et al.
The Method of Layers
,
1995,
IEEE Trans. Software Eng..
[6]
César A. F. De Rose,et al.
Performance Evaluation of Container-Based Virtualization for High Performance Computing Environments
,
2013,
2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing.
[7]
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).
[8]
Brian W. Kernighan,et al.
The Go Programming Language
,
2015
.
[9]
A. Fox,et al.
Cloudstone : Multi-Platform , Multi-Language Benchmark and Measurement Tools for Web 2 . 0
,
2008
.