dpdk简介

一、DPDK介绍

DPDK全称是Data Plan Development Kit,是Intel开发的一套开源的工具,主要以IA(Intel Architecture)多核处理器平台为平台,实现高性能数据包处理。

处于Linux, 传统的网络驱动对数据包处理流程如下:

1)数据包到达网卡。

2)网卡设备进行DMA操作。

3)网卡发送中断,唤醒处理器。

4)驱动填充读写缓冲区。

5)数据报文到达协议栈,进行深入处理。

6)如果数据包应用在用户态,数据从内核态复制到用户态。

7)如果数据包应用在内核态,数据继续在内核汇处理。

上述流程中,有两个步骤在大流量情况下效率不佳,1)每个数据包产生一次中断,当存在大量数据包时,中断频繁耗时;2)当数据包需要在用户态处理时,数据包需要从内核态复制到用户态,如果有大量数据包需要这样处理,耗时耗资源。



DPDK采用轮询和用户态驱动解决了上述问题,DPDK采用如下技术来实现高性能数据包接收:

1)轮询。采用轮询的方式避免中断方式上下文切换开销。

2)用户态驱动。

3)亲和性与独占。

4)降低访存开销。如:内存大页减低TLB miss;利用内存多通道的交错访问能有效提高内存访问的有效带宽;利用对于内存非对称性的感知可以避免额外的访存延迟;优化cache。

5)软件调优

6)利用IA的新硬件技术。

7)充分挖掘网卡的潜能。

二、DPDK框架

dpdk简介_第1张图片


1)Core Libs:其实现了定时器、无锁环形队列、大页、系统抽象等组件。

2)PMDS:其提供各种网卡或虚拟网卡的用户态驱动,以实现轮询和独占的方式高速处理数据包。

3)Qos:提供网络服务质量相关组件。

你可能感兴趣的:(dpdk)