找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 974|回复: 0

[协议] DPDK简介

[复制链接]

3万

主题

7

回帖

9万

积分

管理员

积分
91233
发表于 2021-12-16 10:05:15 | 显示全部楼层 |阅读模式
        软件(虚拟)交换机性能低下的主要原因是它们未经优化或设计用于处理和交换过高速率的数据包,而DPDK(Data Plane Development Kit, 数据平面开发工具包)则专门解决这个问题。在解释DPDK如何改善这种情况之前,需要回顾常规虚拟交换机存在的局限性。由于虚拟交换机对高速数据包的处理缺乏优化,因而导致数据包处理的过程中的很多步骤都要用到CPU,由于CPU需要处理多任务,因而其可用性(特别是超载的情况下)会出现性能瓶颈的问题。此外,虚拟交换机也无法高效实用系统内存,它们首先将数据包复制到内存缓冲区,然后中断客户端CPU并将数据包复制到客户端内存,最后再从vNIC将数据读取给应用程序。单纯的内存读写所产生的内存分配,去分配以及CPU中断等处理操作都会降低虚拟交换机的性能。
  开发DPK的主要目的是为软件处理数据包提供一种优化方式,DPDK是由Intel公司创建的一组库函数和NIC驱动程序。2013年,Intel将DPDK作为开源开发工具包提供给开发者社区,允许开发人员在软件交换机以及利用DPDK提供的微调能力的类似应用程序中使用这些库函数。虽然DPDK对任何希望使用它的软件来说都一视同仁,但是在OVS中的应用较为突出。
  DPDK用自己的库函数替换了Linux内核的内置数据平面,DPDK的轻量级库函数采用了非常有效的内存处理机制,即利用环形缓冲区在物理网卡与使用了DPDK的应用程序(如OVS)之间来回传送数据包,从而提高了系统整体性能。为了减少数据包读取所需的CPU中断数,DPDK采用周期性轮询机制,由系统内核定期轮询新数据包。如果数据包速率降至非常低数值,那么就可以切换到中断模式而不是定期轮询模式。通过有效的缓存管理、优化的最少CPU中断数以及其他增强型功能,证实DPDK能够让OVS实现接近原生性能。但是,DPDK的功能特性较少,没有自己的网络协议栈,主要功能就是完成数据包的处理和转发,DPDK与实现网络功能的应用程序结合(如OVS-DPDK),就能提供丰富的功能特性和良好的转发性能。
                                                                                                    ----《网络虚拟化技术详解 NFV与SDN》

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|番茄论坛

GMT+8, 2024-11-21 16:34 , Processed in 0.083508 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表