3.4.1 数据平面开发套件 DPDK

2010 年,Intel 主导开发了 DPDK(Data Plane Development Kit,数据平面开发套件),基于“内核旁路”理念构建高性能网络应用方案,并逐步发展为一套成熟的技术体系。

最初,DPDK 是 Intel 为推销自家硬件而开发的高性能网络驱动组件,专门针对 Intel 处理器和网卡。随着 DPDK 开源,越来越多厂商开始贡献代码,DPDK 扩展了对更多硬件的支持:不仅支持 Intel 处理器,还兼容 AMD、ARM 等厂商的处理器;网卡支持范围也涵盖了 Intel、Mellanox、ARM 集成网卡等。因此,DPDK 也逐渐具有广泛的适用性。

图 3-6 展示了 DPDK(Fast Path)与传统内核网络(Slow Path)之间的区别。在 Linux 系统中,DPDK 的库和应用程序在用户空间的编译、链接和加载方式与普通程序相同,但它们的数据包传输路径却大相径庭:

  • 传统内核网络(图左侧):网络数据包从网络接口卡(NIC)出发,经驱动程序、内核协议栈处理,最终通过 Socket 接口传递给用户空间的业务层。
  • DPDK 加速网络(图右侧):在该方案中,网络数据包通过用户空间 I/O(UIO)技术,直接绕过内核协议栈,从网卡传输至 DPDK 基础库,再传递至业务逻辑。也就是说,DPDK 绕过了 Linux 内核协议栈的数据包处理过程,在用户空间直接进行收发和处理。


图 3-6 DPDK 与传统内核网络对比

爱奇艺开源的 DPVS 是 DPDK 技术在负载均衡领域的成功应用。图 3-7 展示了 DPVS 与标准 LVS 的性能对比。从每秒转发数据包数量(Packet Per Second,PPS)的指标来看,DPVS 的性能表现比 LVS 高出 300%。


图 3-7 DPVS 与 LVS 的 PPS 性能指标对比(结果越高,性能越好)图片来源open in new window

对于海量用户规模的互联网应用,通常需要部署数千甚至数万台服务器。如果能将单机性能提升十倍甚至百倍,无论从硬件投入还是运营成本角度,都能实现显著的成本节约。这种技术变革带来的潜在效益,毫无疑问非常诱人。

DPDK 是由硬件厂商主导的“内核旁路”技术。在下一节,笔者将介绍由社区开发者主导的另一类“内核旁路”技术。

总字数:653
Last Updated:
Contributors: isno