DPDK与EFA

DPDK和EFA都是绕过操作系统内核与网卡直接通讯,ENA是绕过hypervisor

DPDK

DPDK - Data Plane Development Kit由Intel等公司开发,用于快速数据包处理的函数库与驱动集合极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率

DPDK使用了轮询(polling)而不是中断来处理数据包。在收到数据包时,经DPDK重载的网卡驱动不会通过中断通知CPU,而是直接将数据包存入内存,交付应用层软件通过DPDK提供的接口来直接处理,这样节省了大量的CPU中断时间和内存拷贝时间。

上一节我们讲到SR-IOV技术可以绕过hypervisor,而DPDK绕过了操作系统级别的包处理。如果未使用DPDK,则网络包要经过内核:

image-20220912101144158

使用了DPDK后数据包不需要经过内核:

image-20220912101157133

EFA

EFA适用于HPC和机器学习应用,它并不是基于TCP协议,所以只适用于VPC内的机器通讯

image-20220912101736960

EFA是ENA的加强版,除了ENA的基础功能外,还提供绕过OS(OS-bypass)的能力, 应用直接跟网卡通讯,绕过了操作系统