paper

An Updated Performance Comparison of Virtual Machines and Linux Containers

  • Authors:

📜 Abstract

Cloud computing makes extensive use of virtual machines because they permit workloads to be isolated from one another and for the resource usage to be somewhat controlled. In this paper, we explore the performance of traditional virtual machine (VM) deployments, and contrast them with the use of Linux containers. We use KVM as a representative hypervisor and Docker as a container manager. Our results show that containers result in equal or better performance than VMs in almost all cases. Both VMs and containers require tuning to support I/O-intensive applications. We also discuss the implications of our performance results for future cloud architectures.

✨ Summary

  • The paper presents an apples-to-apples performance comparison of native Linux, KVM-based virtual machines, and Docker containers on contemporary server hardware. It evaluates CPU, memory, networking, storage, Redis, and MySQL workloads. The central finding is that containers generally match or exceed tuned KVM performance, with negligible overhead for most CPU- and memory-intensive workloads. (people.computing.clemson.edu)
  • The principal performance costs arise during I/O and operating-system interactions. KVM adds overhead to I/O operations, especially small and latency-sensitive operations, while Docker’s default networking and AUFS storage layers can introduce substantial overhead. Docker volumes and host networking reduce these costs but trade away some convenience or isolation features. (people.computing.clemson.edu)
  • The work became a commonly cited baseline for subsequent VM-versus-container evaluations. Later studies cite it when comparing container networking, disk-intensive workloads, container technologies, and virtualization overhead on newer platforms, including studies of container networking methods, performance isolation, and Docker versus LXD. (scirp.org)
  • The authors also released experiment scripts, which provide a reproducible basis for follow-on benchmarking. The available evidence supports influence on subsequent academic benchmarking, but does not establish that the paper directly determined a specific industry product or deployment decision. (github.com)