DPDK与云计算虚拟化,不只是吸引!
admin
2020-12-31 15:46:40
0

从DPDK诞生的那一天起,就受到了hyperscale的关注。原因也很简单,因为他们有对于性能的强烈需求,而且有大量的用户态的程序员。从2010年开始出现,6wind可能算是DPDK比较早期的支持者,因为它在北京有一个研发中心[1],可能这也是DPDK在中国发展得很好的一个原因。相对比,另一个同样也是用户态的高性能网络的编程框架OFED就不如它了。

DPDK与云计算虚拟化,不只是吸引!

本节的主要内容还是基于RedHat的Blog:

Data Plane Development Kit

DPDK提供了一种快速包处理方法。“run to completion for package processing”, 就是意味着所有资源要在调用数据路径的处理程序之前就绪,这些专用的资源在专用的CPU上执行。一句话,如果你想在stackoverflow上利用”CPU Usage 100%” 来寻求帮助的话,你会失望的。

DPDK与云计算虚拟化,不只是吸引!

如下图所示,DPDK的框架中有个PMD (Polling Model Driver)负责把数据从网络网卡的接口搬移到用户态,可以看到这样操作的好处两个:Bypass Kernel的I/O操作,从而消除了因为处理中断带来的花销。不使用kernel的网络协议栈,之前Linux的网络协议栈的效率在高带宽网络的时代比较诟病。

DPDK与云计算虚拟化,不只是吸引!

DPDK是由一系列的用户态的库组成,码农们使用用户态的应用程序调用,非常方便。这里面唯一的不便就是原来那些基于Socket编程的教程就不适用了。没关系,互联网云计算为了追求效率,压榨硬件,从头到脚都可以自己搞定。

相关内容