Parallelizing packet processing in container overlay networks

Parallelizing packet processing in container overlay networks
复制标题

DOI:
10.1145/3447786.3456241
复制
发表时间:
2021-04
期刊:
Proceedings of the Sixteenth European Conference on Computer Systems
影响因子:
--
通讯作者:
Jiaxin Lei;Manish Munikar;Kun Suo;Hui Lu;J. Rao
Jiaxin Lei;Manish Munikar;Kun Suo;Hui Lu;J. Rao
中科院分区:
其他
文献类型:
--
作者:
Jiaxin Lei;Manish Munikar;Kun Suo;Hui Lu;J. Rao

文献摘要

被引文献

相似文献

容器网络在多个主机上提供容器之间提供连接,这对于基于容器的微服务至关重要。尽管覆盖网络在生产系统中被广泛采用,但与物理网络相比,它们在吞吐量和延迟中都会显着降解。本文旨在了解运行容器叠加网络时内核网络的瓶颈。通过分析和代码分析,我们发现由于覆盖网络中的数据包转换而导致的延长数据路径是性能损失的罪魁祸首。此外,Linux网络堆栈中的现有缩放技术无效地使单个网络流的延长数据路径并行。我们提出了Falcon,这是一种快速且平衡的容器网络方法,可以在覆盖网络中扩展数据包处理管道。 Falcon Pipelines软件中断了与多个内核上单个流的不同网络设备相关联的,从而防止执行过多的软件中断过载单个核心。 Falcon通过有效地多路复用和平衡软件中断可用核心之间的不同流量来支持多个网络流。我们在Linux中开发了猎鹰的原型。我们对微基准和现实世界应用的评估证明了猎鹰的有效性,其性能显着提高(Web服务的300%)和减少尾巴潜伏期(数据缓存的53%)。
Container networking, which provides connectivity among containers on multiple hosts, is crucial to building and scaling container-based microservices. While overlay networks are widely adopted in production systems, they cause significant performance degradation in both throughput and latency compared to physical networks. This paper seeks to understand the bottlenecks of in-kernel networking when running container overlay networks. Through profiling and code analysis, we find that a prolonged data path, due to packet transformation in overlay networks, is the culprit of performance loss. Furthermore, existing scaling techniques in the Linux network stack are ineffective for parallelizing the prolonged data path of a single network flow. We propose Falcon, a fast and balanced container networking approach to scale the packet processing pipeline in overlay networks. Falcon pipelines software interrupts associated with different network devices of a single flow on multiple cores, thereby preventing execution serialization of excessive software interrupts from overloading a single core. Falcon further supports multiple network flows by effectively multiplexing and balancing software interrupts of different flows among available cores. We have developed a prototype of Falcon in Linux. Our evaluation with both micro-benchmarks and real-world applications demonstrates the effectiveness of Falcon, with significantly improved performance (by 300% for web serving) and reduced tail latency (by 53% for data caching).