利用DDP技术提升Tungsten Fabric vRouter性能
发表于:2025-01-27 作者:千家信息网编辑
千家信息网最后更新 2025年01月27日,在刚刚结束的"2020虚拟开发人员和测试论坛"上,来自瞻博网络的工程师Kiran KN和同事,介绍了在Tungsten Fabric数据平面上完成的一组性能改进(由Intel DDP技术提供支持),以
千家信息网最后更新 2025年01月27日利用DDP技术提升Tungsten Fabric vRouter性能作为DPDK应用的vRouter
在深入到DDP技术之前,首先介绍一下vRouter,它是什么,以及在整个Tungsten Fabric框架中的位置。
在用DPDK改善性能之前,此用例将涉及DPDK应用和vRouter。vRouter的职责是数据平面,用于数据包转发和由vRouter代理在计算节点上编程的数据包转发,但实际上,整个配置是通过控制器上的XMPP提供的。我们使用XMPP通过vRouter agent与控制器通信,并且有一个专门的接口来对vRouter数据平面进行编程以转发软件包。 在DPDK中,vRouter是一个高性能、多核和多线程的应用程序,这里想强调一下,它是专用于多核的DPDK应用,我们需要寻找多核的正确用法。 我们可以从示例中看到,网卡具有与vRouter相同数量的队列,已为数据包或链接分配了核心。 首先,数据包需要由网卡平均地分配到所有路由器转发核心。为此,使用了带有5元组哈希的算法,在所有内核之间正确分配流量。而且,适当的负载平衡是基于数据包的,并且要实现该数据包需要具有5元组,多个源的目标端口IP地址。如果该协议正确,则该协议可以确定所有内核之间的流量平均分配,并且我们可以利用它分配给vRouter DPDK的所有内核的性能。尽管此流量包分布在各个处理内核上,但可以通过TX接口队列,将它们适当地放置到虚拟机中。 如果此流量在各个内核之间没有得到适当的平衡,则vRouter将在没有内核的情况下进行重新平衡,但是对于内核来说,通过内核重新哈希化它们的代价很高,这意味着它们会消耗CPU周期并带来额外的延迟。 这就是我们面临的问题,但在今天得到了很大程度的解决,我们可以期待网卡能够完成此任务,并适当地平衡vRouter核心之间的流量。
也就是说,具有MPLSoGRE的计算类型没有足够的熵(entropy)。由于熵的存在,我们的报头中没有足够的信息,或无法正确平衡数据包的负载。 具体来说,数据包应该具有完整的端口信息,包含完整的5个要素,即源IP、目标IP、源端口、目标端口和协议。但是在MPLSoGRE只有源IP、目标IP和协议三元组信息。因此,网卡无法适当地平衡数据包的负载,由于该CPU内核,一对计算节点之间的所有数据包都落在瓶颈中的同一区域,这将导致网卡队列成为整个计算的瓶颈,并且性能受到影响。 例如,假设一对计算节点之间有数千个流(flows)。理想情况下,我们希望将流平衡分布在所有的内核上,以便可以由不同的CPU将其拾取,以进行数据包处理。但是对于MPLSoGRE,已知端口的信息没有足够的熵,来自特定计算节点的所有数据包都会发生,即使有很多流量,网卡也不会将它们分发到所有队列。因此,这里不再像我们所知道的那样,实际上数据包不会像这样分散在多个内核中,它只会分配给一个内核。
因此,尽管有很多CPU内核,但由于所有数据包必须经过C1,C1本质上成为了瓶颈。数据包无法直接流经C2、C3、C4,是因为它们没有在硬件上加载,所有其它内核必须从C1获取数据包,显然C1将会过载。
我们为Tungsten Fabric数据平面引入了一项新功能,该功能消除了MPLSoGRE数据包的瓶颈,使得性能与CPU内核数成正比。这意味着没有单个CPU内核会成为瓶颈,并且网卡硬件将数据包平均分配给所有CPU内核。 我们的解决方案由Intel DDP(dynamic device personalization)技术提供支持,使用以太网700系列的产品来提供。英特尔转向可编程管线模型后,确保它们引入了诸如固件可升级之类的功能,DDP允许在运行时动态重新配置网卡中的数据包处理管道,而无需重启服务器。软件可以将自定义配置文件应用到网卡,我们可以将这些配置文件视为附件,可以由最终用户自己构建。这些配置文件可以通过软件刷新到网卡上,以便它们可以开始在线识别和分类新的数据包类型,并将这些数据包分配到不同的Rx队列。
这是MPLSoGRE实施的情况,首先是这是一个没有DDP提取功能的MPLSoGRE数据包,它没有获得在当前数据包中听到的内部实际存在的启动信息,因此它没有足够的信息来正确分配数据包。在第二个图例中启用了DDP,配置文件便可以开始识别内部数据包标头,以及内部IP标头和内部UDP标头,因此它可以开始使用该信息来计算哈希。 如何使DDP成为最终用户需要为其数据包类型创建配置文件的方式? 可以通过使用Intel的配置文件编辑器(profile editor)工具来创建,Intel在其上发布了一些标准配置文件,可以直接从Intel网站下载。配置文件编辑器可用于创建新条目,或者修改分析器的现有条目,这是第1步。第2步,为MPLSoGRE数据包创建一个新的配置文件,该配置文件在不同的层上定义数据包头的结构。第3步,是编译并创建一个二进制程序包,可以应用于网卡。第4步,我们可以使用DPDK API在每个工具接口将这些配置文件加载到网卡。接下来第5步,网卡就能够识别MPLSoGRE数据包。
接下来,我们需要测试并确认,DDP可以提供帮助带来性能提升。 首先,我们的测试框架广泛用于开发和测试vRouter。我们使用代理方式以拥有快速概念验证的能力,并收集信息。测试vRouter性能的所有方法,包括封装和计算节点之间的封装,并且总是会包含overlay网络,就像在图例中的所看到的那样,我们通过第三个对象(rapid jump VM),该对象只有控制流量(不通过其它任何流量),向VM发送指令并收集信息。为了实现测试目标,我们采用丢包率只有0.001%的二进制搜索,使用标准的测试框架和规范。 在vRouter中,我们可以找到脚本,显示每个内核CPU数据包处理的统计信息,以证明网卡正确地集中了所有内核之间的流量。这些统计信息来自VM0接口,这意味着连接与物理网卡之间的接口。 在左侧,你可以看到内核1没有在处理软件包,这实际上意味着该内核未接收到任何由vRouter处理的软件包。此内核只是忙于轮询程序包,并在vRouter上的其它可用内核之间分配程序包。这意味着vRouter将成为瓶颈,因为首先需要将所有进入vRouter的流量从网卡队列中拉出,然后将其进行重新分配(跨其它核心)以转发到VM。 而在右侧,你可以看到使用DDP的网卡已经正确分配了流量,Rx队列中所有内核之间的流量几乎相等。证明网卡完成了自己工作,并平均分配了流量。 可以看到,是否使用DDP,在性能结果中统计数据上的差别。在不大于3个内核的情况下,使用DDP并没有得到任何好处--因为对于轮询内核和跨内核重新分配流量,目前网卡处理这样的队列还是足够快的。 但是一旦增加内核数量,然后提高整体性能,那么网卡就成为了瓶颈--在没有DDP的情况下性能不会提高,即使增加了内核数也是如此,因为总有一个内核在拉动流量,并且你可以看到,在没有DDP的部分中6.5mpps左右是一个内核从网卡队列中轮询的最大值。
随着内核的数量增加,每个内核都从网卡接收了相同数量的流量。一旦内核数量超过6个,则收益将变得更高。正如我们所看到的,具有6个内核的增益大约为73%,这确实是个很酷的数字。不仅可以提高性能,使用DDP还可以得到更好的降低延迟。这是因为我们不需要平衡内核之间的流量,也不需要计算每个数据包的哈希值。在vRouter上,这将由网卡完成,收益的增加平均为40%,最多为80%,这已经是非常棒的数字了 。
综上,对于拥有多个内核的用例,我们可以借助DDP技术获得很大的收益。另外,对于5G用例而言,DDP能够减少延迟这一点非常重要。在所有我们希望使用MPLSoGRE情况下,借助vRouter,我们已经准备好在多核中进行5G应用部署。 【本文相关资料pdf文档下载】
在刚刚结束的"2020虚拟开发人员和测试论坛"上,来自瞻博网络的工程师Kiran KN和同事,介绍了在Tungsten Fabric数据平面上完成的一组性能改进(由Intel DDP技术提供支持),以下为论坛技术分享的精华:
实际上,vRouter可以部署在常规X86服务器上,也可以在OpenStack或K8s的计算节点当中。vRouter是主要的数据平面组件,有两种部署的模式,分别是vRouter:kernel module,以及vRouter:DPDK模式。
引入DDP消除瓶颈
对性能提升的测试及确认
https://tungstenfabric.org.cn/assets/uploads/files/tf-vrouter-performance-improvements.pdf
【 视频链接 】
https://v.qq.com/x/page/j3108a4m1va.html
内核
数据
网卡
流量
分配
配置
性能
之间
信息
文件
队列
瓶颈
测试
处理
应用
情况
节点
技术
适当
实际
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电信脱管服务器有固定内网ip吗
青岛戴尔服务器代理哪家服务好
公众网络安全感调查
linux 数据库文件
电脑的数据库链接有用吗
品牌网络技术培训
java电影存入数据库
将数据库的船名调入船讯网
elk采集数据库应用
服务器租赁业务属于哪项营业范围
常用关系数据库管理系统有
猫和老鼠服务器被关
广州昶宏网络技术有限公司
本地电脑配网站服务器
数据库日志一堆n个A
国内服务器访问海外服务器
著名国外全文数据库
我的世界中国离线服务器
速达数据库账号密码错误
u8初始化数据库的方法
cognos数据库密码修改
武进教育网络安全平台网址
软件开发tc是什么意思
数据库的分页方式
郑州网络安全周电影节
青少年与网络安全主题班会案例
毕业报告网络安全技术研究
网络安全别不知不觉当了间谍
哪家香港云服务器更靠谱一点
软件开发瀑布各个阶段