Packet processing on Linux can be slow due to its complex network stack. To solve this problem, there are two main solutions: eXpress Data Path (XDP) and Data Plane Development Kit (DPDK). XDP and the AF XDP socket offer full interoperability with the legacy system and is being adopted by major internet players like Open vSwitch or Facebook. While the performance evaluation of AF XDP against the legacy protocol stack in the kernel or against DPDK has been studied in the literature, the impact of the multiple socket parameters and the system configuration on its latency has been left aside. To address this, we conduct an experimental study to understand the XDP/AF XDP ecosystem and detect microseconds delays to better architect future latency-sensitive applications. Since the performance of AF XDP depends on multiple parameters found in different layers, finding the configuration minimizing its latency is a challenging task. We rely on a classification algorithm to group the performance results, allowing us to easily identify parameters with the biggest impact on performance at different loads. Last, but not least, we show that some configurations can significantly decrease the benefits of AF XDP, leading to undesirable behaviors, while other configurations are able to reduce such round trip delays to an impressive value of 6.5 $\mu$s in the best case, including the tracing overhead. In summary, AF XDP is a promising solution, and careful selection of both application and socket parameters can significantly improve performance.
翻译:Linux上的数据包处理因其复杂的网络栈而可能缓慢。为解决此问题,主要有两种解决方案:快速数据路径(XDP)和数据平面开发套件(DPDK)。XDP与AF_XDP套接字提供与传统系统的完全互操作性,并被Open vSwitch或Facebook等主要互联网玩家采用。尽管文献中已研究了AF_XDP相对于内核传统协议栈或DPDK的性能评估,但多个套接字参数和系统配置对其延迟的影响却被忽略。为解决此问题,我们开展了一项实验性研究,以理解XDP/AF_XDP生态系统并检测微秒级延迟,从而更好地架构未来延迟敏感型应用。由于AF_XDP的性能依赖于不同层中的多个参数,找到最小化其延迟的配置是一项具有挑战性的任务。我们依靠分类算法对性能结果进行分组,从而轻松识别不同负载下对性能影响最大的参数。最后同样重要的是,我们表明某些配置会显著降低AF_XDP的优势,导致不良行为,而其他配置能将往返延迟降至令人印象深刻的6.5微秒(包括追踪开销),达到最佳情况。总之,AF_XDP是一种有前景的解决方案,精心选择应用和套接字参数可显著提高性能。