NFV中:DPDK与SR-IOV应用场景及性能对比

news2025/7/21 9:58:47

DPDK与SR-IOV两者目前主要用于提高IDC(数据中心)中的网络数据包的加速。但是在NFV(网络功能虚拟化)场景下DPDK与SR-IOV各自的使用场景是怎样的?以及各自的优缺点?

本文主要通过从以下几点来阐述这个问题:

1、什么是DPDK?

2、什么是SR-IOV?

3、DPDK与SR-IOV有何不同?

4、DPDK与SR-IOV各自适合的应用场景是怎样的?

1、什么是DPDK?

DPDK(Data Plane Development Kit)是6Wind、Intel开发的一款高性能的数据平面开发工具包。为了方便理解DPDK我们先了解下Linux内核是如何处理网络数据包的。

图1 左:Linux kernel 右:DPDK

默认情况下,Linux 使用内核来处理网络数据包,随着IDC(数据中心)NIC速率逐步从40G到目前主流的100G,未来将逐步替换为400G。Linux内核已经不再适合处理高速网络。

内核弊端:

1、中断处理:当网络中大量数据包到来时,会频繁产生中断请求,频繁的中断会产生较高的性能开销、并造成上下文的切换产生时延。

2、内存拷贝:网络数据包到来时,网卡通过 DMA 等拷贝到内核缓冲区,内核协议栈再从内核空间拷贝到用户态空间,在 Linux 内核协议栈中,这个耗时操作甚至占到了数据包整个处理流程的 57.1%。

3、局部性失效:目前主流处理器都是多个CPU核心的,这意味着一个数据包的处理可能跨多个 CPU 核心。比如:一个数据包可能中断在 cpu0,内核态处理在 cpu1,用户态处理在 cpu2,这样跨多个核心,容易造成 CPU 缓存失效,造成局部性失效。

DPDK优点:

从前面的分析得知目前网络IO的实现的方式中,内核是导致性能瓶颈的原因所在,要解决性能问题就需要绕过内核,直接在用户态收发包。

1、内核bypass:通过UIO(Userspace I/O)旁路数据包,实现用户态数据包收发,减少上下文切换以及内存拷贝。

2、使用多核编程代替多线程编程:设置 CPU 的亲和性,将线程和 CPU 核进行一比一绑定,减少彼此之间调度切换。

3、使用大页内存代替普通的内存:减少 cache-miss。

4、采用无锁技术:解决资源竞争问题。

2、带有OVS的DPDK

什么是OVS?

OVS(Open vSwitch)是一款高质量的开源虚拟交换机,运行在hypervisor中并为虚拟机提供虚拟网络。

图2 NVF中OVS所处位置

OVS是实施VNF(Virtual Network Function)的一部分,位于hypervisor中,如图2所示流量可以从一个VNF通过OVS传递到另一个VNF中。

OVS 的转发平面是内核的一部分,无论OVS有多好,它都面临着与前面讨论的 Linux 网络协议栈相同的问题。

OVS+DPDK

图3 左:Kernel+OVS 右:DPDK+OVS

(免费订阅,永久学习)学习地址: Dpdk/网络协议栈/vpp/OvS/DDos/NFV/虚拟化/高性能专家-学习视频教程-腾讯课堂

更多DPDK相关学习资料有需要的可以自行报名学习,免费订阅,永久学习,或点击这里加qun免费
领取,关注我持续更新哦! !   

如图3所示:基于 DPDK 的转发路径替换标准的 OVS 内核转发路径,在主机上创建一个用户空间 vSwitch,它完全运行在用户空间中从而提高了 OVS 交换机的性能。

3、SR-IOV

在讲述SR-IOV之前我们先讲述一下PCI直通技术。

什么是PCI直通?

PCI直通:不使用hypervisor也可以向虚拟机提供完整的网卡。虚拟机认为自己与网卡直接相连。如图4所示,有两个NIC卡和两个VNF,每个都独占访问其中一个NIC卡。

图4 网卡直通

PCI直通缺点:由于下面的两个网卡被VNF1和VNF3独占。并且没有第三个专用网卡分配给VNF2使用。

什么是SR-IOV?

SR-IOV(Single Root I/O Virtualization)规范:定义了一种用于虚拟化PCIe设备的机制。这种机制可以将单个PCIe以太网控制器虚拟化为多个PCIe设备。

图5 SR-IOV

通过创建PCIe设备的VF,每个VF可以分配给单个VM/VNF,从而消除由于网卡不够的问题。

4、DPDK vs SR-IOV

数据中心中存在东西向流量与南北向流量。

图6

在同一个服务器内的东西向流量,DPDK性能优于SR-IOV。这很容易理解:如果流量是在服务器内部路由/交换的,而不是到NIC。SR-IOV没有任何优势。相反,SR-IOV会成为一个瓶颈(流量路径会变长,网卡资源会被占用)。

图7

图7为Intel官方给出东西向流量场景下DPDK与SR-IOV的性能测试数据。

在南北流量(也包括从一个服务器到另一个服务器的东西流量)的场景中,SR-IOV性能要优于DPDK。

图8

图9

图9为Intel官方给出的南北向流量场景下DPDK与SR-IOV的性能测试数据。

end

原文链接:https://zhuanlan.zhihu.com/p/428728980 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17112.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

视觉SLAM十四讲(高翔版本),ch4章节部分笔记

目标:理解slam的框架以及它的理论知识。供以后自己查阅。 这一章主要非常重要,也是理解后续优化的基础,它是将旋转矩阵和平移向量,转化为李代数的形式进行优化,因为它有很多好处。好处如下: 意思就是采用…

Linux硬盘垃圾清理心得

最近有台系统盘才10G的服务器咔咔报警,一共才10G的空间,运维还设置了80%的报警阈值,实在难顶。为了清理硬盘里的垃圾,敲了不少命令,怕以后忘了,记录一下。 首先输入df -h查看一下硬盘空间占用情况&#xf…

呼叫中心中间件(mod_cti基于FreeSWITCH)-通话记录(CDR)接口

支持把FreeSWITCH的通话记录写入mysql,sqlserver,oracle等数据库,也可以写入redis的list,或者PUBLISH到redis的channel,方便业务程序实时获取通话记录。 使用说明 如果一个通话是A呼叫B,那么就有2个通话记录,一个叫aleg,一个叫b…

Vue3 - 全局指令(详细教程)

前言 咱们在真实项目开发中,其实有很多指令都是通用的。我们绝对不可能去每个页面都定义一次,这样不仅写起来困难,维护起来更是困难,你想一下,假设稍微变点逻辑,你就需要翻阅好几个文件去改。 其实用法和局…

家用吸尘器的总体结构设计

目 录 摘 要 i Abstract ii 1 引言 1 2 家用吸尘器的历史及发展 2 2.1 家用吸尘器的历史 2 2.2 业界的发展情况 3 3 家用吸尘器的分类 5 3.1 卧式(Canister) 5 3.2 立式(Upright) 5 3.3 手持式 (Handy) 6 3…

ON1 NoNoise AI 2023:AI智能摄影降噪工具

ON1 NoNoise AI 2023中文版是一款强大的AI智能摄影降噪工具!使用 AI 驱动的 NoNoise AI 快速去除噪点并获得照片中最清晰的细节。 更快地获得绝对最佳结果! ON1 NoNoise 比其他领先的图像去噪产品快十倍,结果会让您大吃一惊! 基于…

HI3516DV300 图像输入

HI3516DV300 图像输入 易百纳的一个开发板,以及GC2053的摄像头。 硬件 海思 海思sensor接口如下,用的是差分信号,共4对数据线(或者说4条lane),两对差分时钟。 连接器 海思核心板和扩展板之间通过板件连…

小啊呜产品读书笔记001:《邱岳的产品手记-06》11讲 如何借鉴灵感 12讲 产品案例分析:LabRdr的设计实验

小啊呜产品读书笔记001:《邱岳的产品手记-06》11讲 如何借鉴灵感 & 12讲 产品案例分析:LabRdr的设计实验一、今日阅读计划二、泛读&知识摘录1、11讲 如何借鉴灵感?2、12讲 产品案例分析:LabRdr的设计实验三、头脑风暴叮嘟…

【计算机毕业设计】外卖点餐源码

一、系统截图(需要演示视频可以私聊) 摘 要 民以食为天,外卖点餐系统餐饮业一直是与人们日常生活息息相关的产业。传统的电话外卖点餐或者到店消费已经不能适应市场发展的需求。随着网络的迅速崛起,互联网日益成为提供信息的最佳…

电话机器人详解,电销机器人获客的正确姿势是什么?

电话机器人详解,电销机器人获客的正确姿势是什么? 相信很多没接触过电话机器人的人都会好奇。 首先是预设Q&A问答主流程 通过关键词辅助指导,终端在与客户互动时,会智能地获取相应的关键词库,逐一回答客户的问题…

ISACA证书维持| 内附QA

Q如何维持证书 A证书的维持主要由两部分组成,即维持费以及CPE(继续职业教育)学时。ISACA会在每个日历年的第三季度以电子邮件及印刷版的方式向所有持证人员发送次年费用清单通知。年度维护费支付可在 https://www.isaca.org/renewals 上在线…

完全背包问题的解决方法______闫氏 DP 分析法

完全背包问题的解决方法: 闫氏 DP\ DPDP 分析法: 通过集合划分,我们可以得到第 i\ ii 个物品有两种状态:  1.选 1−T\ 1 - T1−T 个,最优解为前 i−1\ i− 1i−1 个物品的所有选择中,还能选取当前 k\ kk 个第i\ ii 个…

模式识别与机器学习 第一章:绪论

一、基础概念 样本: 所研究对象的单个个体、实例。样本集: 若干样本的集合。类或类别: 在所有样本上定义的一个子集,处于同一类的样本具有相似的性质,即具有相同的模式。特征: 用于表征样本的观测,也称属性。通常是数值表示的某些量化特征&a…

基于帧间差分法的视频目标检测研究-含Matlab代码

⭕⭕ 目 录 ⭕⭕✳️ 一、引言✳️ 二、帧间差分算法原理✳️ 三、视频目标检测系统✳️ 四、参考文献✳️ 五、Matlab代码获取✳️ 一、引言 随着科技的发展、社会的进步、人民生活水平的提高,团体和个人的安防意识都在不断增强,视频监控系统也就得到了…

深入浅出 C++ 11 右值引用

彻底搞清楚:右值引用/移动语义/拷贝省略/通用引用/完美转发 —— 以最短的篇幅,介绍常见误解(什么时候要用 move?什么时候不能 move?为什么 move 失败?)和基础知识(为什么右值引用变…

魔性洗脑神曲掀起模仿热潮,品牌为何热衷“打歌”?

【潮汐商业评论/ 原创】 抖音、快手、B站等社交媒介是品牌推广绕不开的阵地,围绕这些平台,一些品牌在“打歌”路上越走越远——通过几何级增长的播放量,使品牌定制曲迅速蹿红,成为“神曲”。这些定制曲仿佛自带魔力,不…

甘露糖-聚乙二醇-叠氮,mannose-PEG-N3,叠氮-PEG-甘露糖

甘露糖-聚乙二醇-叠氮,mannose-PEG-N3,叠氮-PEG-甘露糖 叠氮化合物是一类含有三个氮相连结构的化合物,一般用RN3表示。叠氮化合物是电子传递系统的抑制剂,能与细胞色素形成配位化合物,阻止细胞色素氧化酶氧化型a3组分…

【附源码】Python计算机毕业设计双笙映画

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…

四则运算Java版

数据结构之栈的应用之四则运算_文丑颜不良啊的博客-CSDN博客 之前有写过一篇关于栈的应用之四则运算的文章,是用 C 写的,涉及到一些指针的操作,同时,那篇文章有一个致命的错误,就是只支持 10 以内的混合运算&#xff…

STM32微控制 -STM32命名规则-STM32寄存器缩写列表-STM32存储器和总线架构

STM32使用说明第一篇【1】STM32微控制器【2】STM32命名规则【3】STM32寄存器缩写列表【4】STM32存储器和总线架构【1】STM32微控制器 STM32是一个微控制器产品系列的总称,目前这个系列中已经包含了多个子系列,分别是: 【1】STM32小容量产品 【…