Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support
Yusuf Haruna,
Abdulmalik Ahmad Lawan,
Kamaluddeen Ibrahim Yarima,
Muhammad Mahmoud Ahmad,
Mustapha Abdulkadir Sani
Issue:
Volume 10, Issue 2, December 2022
Pages:
15-30
Received:
8 April 2022
Accepted:
14 May 2022
Published:
17 October 2022
DOI:
10.11648/j.net.20221002.11
Downloads:
Views:
Abstract: The superior performance of lightweight virtualization with containers over traditional virtualization enables the implementation of scalable systems and multi-tier/distributed networks. Containers supports the creation of dedicated network overlays, spanning over several virtual machines (VMs) or physical hosts to interconnect application fragments. Hence, there is a need to understand the comparative performance of various interconnection solutions in terms of needed resources (CPU, RAM, and networking). In this work, we use a variety of applications to benchmark the performance of different container interconnection solutions. Accordingly, we experimented with four applications namely Memcached, Nginx, PostgreSQL, and iperf3. Each of these applications was installed inside a container in one VM and their corresponding benchmarks (test client) in a separate container in another VM in order to benchmark the performance of the applications. The VMs were interconnected using four modes namely: host, NAT, Docker default overlay (VXLAN) and weave. The experimental results revealed superior performance in host mode, followed by NAT and the overlay networks (VXLAN and weave) which have the least performance due to packet encapsulation. In each case, sar was used to monitor the CPU utilization. We were able to reduce the overhead of the two overlay networks using RPS (Receive Packet Steering) technique because they brought solutions to some of the problems faced when connecting containers using host and NAT modes in the cloud.
Abstract: The superior performance of lightweight virtualization with containers over traditional virtualization enables the implementation of scalable systems and multi-tier/distributed networks. Containers supports the creation of dedicated network overlays, spanning over several virtual machines (VMs) or physical hosts to interconnect application fragment...
Show More