| Peer-Reviewed

Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support

Received: 8 April 2022     Accepted: 14 May 2022     Published: 17 October 2022
Views:       Downloads:
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.

Published in Advances in Networks (Volume 10, Issue 2)
DOI 10.11648/j.net.20221002.11
Page(s) 15-30
Creative Commons

This is an Open Access article, distributed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution and reproduction in any medium or format, provided the original work is properly cited.

Copyright

Copyright © The Author(s), 2022. Published by Science Publishing Group

Keywords

Virtualization, Container, Virtual Machine, Network

References
[1] Wikipedia contributors, (2019) “Virtualization.” [Online]. Available: https://en.wikipedia. org/wiki/Virtualization
[2] K. Suo, Y. Zhao, W. Chen, and J. Rao, “An analysis and empirical study of container networks,” in IEEE INFOCOM 2018-IEEE Conference on Computer Communications. IEEE, 2018, pp. 189–197.
[3] “Docker.” (2018) [Online]. Available: https://www.docker.com/
[4] J. Turnbull, “The docker book,” 2016.
[5] P. Killelea, Web Performance Tuning: speeding up the web. ” O’Reilly Media, Inc.”, 2002.
[6] “Sparkyfish.” (2018) [Online]. Available: https://github.com/chrissnell/sparkyfish
[7] “Sockperf.” (2017) [Online]. Available: https://github.com/Mellanox/sockperf
[8] “iperf.” (2018) [Online]. Available: https://iperf.fr/
[9] Wikipedia contributors, (2020) “Network address translation.” [Online]. Available: https://en.wikipedia.org/wiki/Network_address translation.
[10] M. G. Xavier, M. V. Neves, F. D. Rossi, T. C. Ferreto, T. Lange, and C. A. De Rose, “Performance evaluation of container-based virtualization for high performance computing environments,” in 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing. IEEE, 2013, pp. 233–240.
[11] K. Lee, Y. Kim, and C. Yoo, “The impact of container virtualization on network performance of iot devices,” Mobile Information Systems, vol. 2018, 2018.
[12] “Weaveworks.” (2019) [Online]. Available: https://www.weave.works/docs/net/latest/ overview/
[13] “Flannel.” (2018) [Online]. Available: https://github.com/coreos/flannel/
[14] “Calico.” (2018) [Online]. Available: https://github.com/projectcalico/calicoctl
[15] D. Zhuo, K. Zhang, Y. Zhu, H. H. Liu, M. Rockett, A. Krishnamurthy, and T. Anderson, “Slim:{OS} kernel support for a low-overhead container overlay network,” in 16th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 19), 2019, pp. 331–344.
[16] Wikipedia contributors, (2021) “Virtual extensible lan.” [Online]. Available: https://en.wikipedia.org/wiki/Virtual Extensible LAN.
[17] “Memcached.” (2018) [Online]. Available: https://memcached.org/
[18] “memtier benchmark.” (2019) [Online]. Available: https://github.com/RedisLabs/memtier_benchmark
[19] “Nginx.” (2019) [Online]. Available: https://nginx.org/en/
[20] “wrk.” (2019) [Online]. Available: https://github.com/giltene/wrk2
[21] “Postgresql.” (2020) [Online]. Available: https://www.postgresql.org/
[22] “pgbench.” (2020) [Online]. Available: https://www.postgresql.org/docs/9.5/pgbench.html
[23] H.-J. Schonig and Z. Boszormenyi, PostgreSQL Replication. Packt Publishing, 2015.
[24] “sar(1) - linux man page.” (2019) [Online]. Available: https://linux.die.net/man/1/sar
Cite This Article
  • APA Style

    Yusuf Haruna, Abdulmalik Ahmad Lawan, Kamaluddeen Ibrahim Yarima, Muhammad Mahmoud Ahmad, Mustapha Abdulkadir Sani. (2022). Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support. Advances in Networks, 10(2), 15-30. https://doi.org/10.11648/j.net.20221002.11

    Copy | Download

    ACS Style

    Yusuf Haruna; Abdulmalik Ahmad Lawan; Kamaluddeen Ibrahim Yarima; Muhammad Mahmoud Ahmad; Mustapha Abdulkadir Sani. Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support. Adv. Netw. 2022, 10(2), 15-30. doi: 10.11648/j.net.20221002.11

    Copy | Download

    AMA Style

    Yusuf Haruna, Abdulmalik Ahmad Lawan, Kamaluddeen Ibrahim Yarima, Muhammad Mahmoud Ahmad, Mustapha Abdulkadir Sani. Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support. Adv Netw. 2022;10(2):15-30. doi: 10.11648/j.net.20221002.11

    Copy | Download

  • @article{10.11648/j.net.20221002.11,
      author = {Yusuf Haruna and Abdulmalik Ahmad Lawan and Kamaluddeen Ibrahim Yarima and Muhammad Mahmoud Ahmad and Mustapha Abdulkadir Sani},
      title = {Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support},
      journal = {Advances in Networks},
      volume = {10},
      number = {2},
      pages = {15-30},
      doi = {10.11648/j.net.20221002.11},
      url = {https://doi.org/10.11648/j.net.20221002.11},
      eprint = {https://article.sciencepublishinggroup.com/pdf/10.11648.j.net.20221002.11},
      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.},
     year = {2022}
    }
    

    Copy | Download

  • TY  - JOUR
    T1  - Analysis of Docker Networking and Optimizing the Overhead of Docker Overlay Networks Using OS Kernel Support
    AU  - Yusuf Haruna
    AU  - Abdulmalik Ahmad Lawan
    AU  - Kamaluddeen Ibrahim Yarima
    AU  - Muhammad Mahmoud Ahmad
    AU  - Mustapha Abdulkadir Sani
    Y1  - 2022/10/17
    PY  - 2022
    N1  - https://doi.org/10.11648/j.net.20221002.11
    DO  - 10.11648/j.net.20221002.11
    T2  - Advances in Networks
    JF  - Advances in Networks
    JO  - Advances in Networks
    SP  - 15
    EP  - 30
    PB  - Science Publishing Group
    SN  - 2326-9782
    UR  - https://doi.org/10.11648/j.net.20221002.11
    AB  - 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.
    VL  - 10
    IS  - 2
    ER  - 

    Copy | Download

Author Information
  • Department of Computer Science, Kano University of Science and Technology, Wudil, Nigeria

  • Department of Computer Science, Kano University of Science and Technology, Wudil, Nigeria

  • Department of Computer Science, Kano University of Science and Technology, Wudil, Nigeria

  • Department of Computer Science, Kano University of Science and Technology, Wudil, Nigeria

  • Department of Computer Science, Kano University of Science and Technology, Wudil, Nigeria

  • Sections