您的位置:首页 >原创 >

新增ADQ英特尔800系列网卡可将应用程式延迟降低45%

原标题:新增ADQ英特尔800系列网卡可将应用程式延迟降低45%

去年4月初,英特尔发表第二代Xeon Scalable系列处理器,同时,也推出新一代的乙太网路控制器与网路卡,名为Ethernet 800系列(研发代号为Columbiaville),特色是支援100GbE,能将伺服器的网路频宽提升至企业现行部署的10倍,并且增加新的网路处理技术:应用装置伫列(Application Device Queues,ADQ),原有的动态设备个人化(Dynamic Device Personalization,DDP)也予以强化,而所针对的市场需求,主要是云端服务、电信、储存、企业等领域的大量资料搬移作业。

当时该公司仅公布Ethernet 800系列的乙太网路控制器的规格,并预告第三季将投入生产。

可惜的是,直到今年6月,英特尔尚未进一步揭露这系列网路卡的更多详细资讯。关于实际的产品型号命名,我们仅在Xeon产品与资料中心副总裁暨总经理Lisa Spelman的简报,看到他们在ADQ效能测试组态提到网路卡的型号是E810-CQDA2。

不过,我们最近在搜寻相关消息时,发现英特尔在网路卡支援页面列出的支援机型当中,竟出现E810-CQDA2与3款同为E810开头的型号,极有可能是Ethernet 800系列的网路卡。

从去年第一季到现在,英特尔仍陆续在几个活动介绍Ethernet 800系列,例如,4月Data-Centric Innovation大会、Interconnect Day,10月的Networking Field Day,以及Virtual Technology Conference,还有今年五月举行的Partner Connect大会,但大多着重在ADQ与DDP的介绍与成效。

在英特尔最初发表时,他们强调ADQ可协助提升应用程式反应时间的稳定性,能改善应用程式的效能与稳定性,以便符合服务等级协议的要求。

举例来说,若用于记忆体资料库系统Redis,同样是搭配第二代Xeon Scalable处理器与Ethernet 800系列网路卡的伺服器,启动ADQ之后,随着连线数量的增加,整个系统对于应用程式延迟的可预测程度(predictability)会超过50%,延迟的缩减能低于45%的程度,而在吞吐量的表现上,也可提升30%。

而在DDP技术的强化上,也是Ethernet 800系列的特色之一,可以改善网路卡的封包处理效率,再加上本身支援iWARP与RoCE v2,而能善用这两种远端直接记忆体存取机制(RDMA),支撑新服务,对于延迟较为敏感的工作负载也能更快处理。

以目前英特尔公布的资料来看,Ethernet 800系列仅揭露了乙太网路控制器的规格,像是晶片型号E810-CAM2、E810-CAM1、E810-XXVAM2,I/O介面支援PCIe 3.0和4.0,可提供100GbE、50GbE、25GbE、10GbE的网路埠;而在网路最佳化与通讯协定的支援上,Ethernet 800系列乙太网路控制器,除了英特尔发展的ADQ和DDP,以及iWARP、RoCE v2等协定,也支援Intel Ethernet Adaptive Virtual Function(AVF),以及网路时间精确协定(PTP)/IEEE 1588 v1与v2,而在SR-IOV的I/O虚拟化应用上,可支援256个虚拟功能(VF)。其中的AVF和PTP,英特尔在今年推出的XXV710-DA2T,也内建相关支援,以及128个虚拟功能。

新增应用装置伫列,可针对高度优先应用程式提供专属传输便道,以便缩短延迟与提高资料吞吐量

ADQ到底是什么?时任英特尔资料中心事业群副总裁暨连线事业群高效能交织网路部门总经理Mike Zeile,也在他们公司的部落格提出解释。他认为,ADQ是一种关于伫列、优先顺序排列,以及操纵的技术,能够改善应用程式的效能与可预测性。它能将应用程式流量进行过滤与隔离,并放置在特定硬体的专属通道的伫列上,而这些管道能以最佳化的方式连结到应用程式专用的执行绪,这么一来,就能增加应用程式反应时间的可预测性,减少应用程式延迟,并且改善应用程式吞吐量。

他认为,ADQ就像高速公路上的车辆流量导引。举例来说,如果我们想要在尖峰时间到达机场,可能有好几个选项,但能够多快抵达往往需根据路况的好坏而定,因此,可能会迟到而赶不上航班,因此,我们必须考量到花最久时间抵达的情况,确保我们可以赶上航班;不过,如果能有一条专属路径且不受到干扰,我们就可以精準地预测行车时间,就能更快抵达机场,并且节省在机场等待的时间,而这也是ADQ针对网路连线的处理所带来的功能,为高度优先的应用程式流量提供一个专属、快速的通道。

   

不过,上述的说法,还是很抽象,我们在英特尔公布的ADQ效能测试解决方案与技术简介文件当中,看到更进一步的解释。当中提到,它是一种针对系统层级网路输出入效能的开放技术,可以改善应用程式反应的可预测性,因此,资料中心能以有成本效益的方式来维持稳定度。

在实际的作法上,ADQ使用了伫列处理与流量形塑,可针对关键应用程式的乙太网路传输来进行处理。对于应用程式的执行,我们只需同样使用标準作业系统网路堆叠与介面,并搭配英特尔硬体技术,就能改善效能。

就Ethernet 800网路卡而言,本身已内建2048个专用的硬体伫列,可设定为专属的ADQ伫列或用于标準流量的处理。因此,系统管理者针对个别应用程式的需求来指定伫列,并让更多伫列用于高度优先的应用程式,确保它们获得可预期的高效能。

而在应用程式执行绪与装置伫列之间建立专属的管道,ADQ不仅能减少资源争夺,也能大幅减少或避免同步作业,像是锁定或多执行绪共享。此外,ADQ使用轮询(Polling)的方式,以减少中断处理与上下文交换的次数,而能降低网路流量混乱的状况。

至于在使用相同软体硬体的配置之下,为何启用ADQ却能带来显着的传输效能改善?英特尔表示,关键在于它如何在资料中心环境预防网路流量的壅塞,他们认为,ADQ就像在高速公路保留一条条便道给那些前往机场的旅客,我们不必将这些管道与前往其他地方的流量共享,因此,不会导致旅程被尖峰流量耽搁。而且,ADQ能让软体应用程式的保留管道或伫列,直通资料中心的目的硬体设备,而不需与其他应用程式共享或竞争。

整体而言,ADQ的目标是确保高度优先的应用程式,透过动态减少抖动、干扰,来获得可预期的高效能。相对地,若应用程式对于网路效能的表现无法预测,整体性能可能就会受到很大的限制,就像资料应用程式的开发者,如果不知道花多少时间才能接收到所要的资料,可能就会用最糟的状况来设计。

英特尔表示,网路卡若要达到这样的效能等级,过去只能採取的作法,是略过系统核心、基于特定应用程式的专属TCP/IP软体堆叠,以使用者模式来进行网路处理(user-mode Networking)。现在有了ADQ,如今也能做到核心模式的网路(kernel-mode Networking)。而核心模式网路是开放原始码,并且继承了Linux系统核心的强化特色,像是eBPF能搭配容器、netfilter与其他TCP强化。

也因此,若要启用ADQ,除了需要安装Intel的Ethernet 800系列网路卡与驱动程式,也需要搭配较新版本的Linux系统核心(4.19),而英特尔已将关键修补程式的Linux系统核心提交到Linux上游,促成ADQ,Linux社群后来也接受这些修补,于4.19版的系统核心纳入。因此,在标準的Linux作业系统当中,我们可以在iproute2、traffic control(TC)、ethtool、cgroup等工具,设定ADQ。至于其他作业系统对于ADQ的支援,英特尔表示,还在开发当中。

而关于应用程式的支援上,Ethernet 800系列与ADQ锁定的第一批应用程式,主要是Nginx、Memcached、Radis、Aerospike。

英特尔表示,在多数使用案例当中,独立软体开发商只需加入一些程式码(50行以内),就能启用ADQ,不过,若是单一执行绪的应用程式,像是Redis或是Netperf,就不需要修改。目前他们针对Redis、Memcached提供了最佳化设定指南,让系统管理者将ADQ指派给那些难以容忍延迟的应用程式。

而在能够启用ADQ的应用程式类型上,不只是网路通讯的部份,英特尔表示,储存(例如NVMe over TCP)、容器等领域也能适用。

针对动态设备个人化的最佳化处理,提供更多功能,改善封包处理效率

英特尔在Ethernet 700系列网路卡,新增一种称为动态设备个人化(Dynamic Device Personalization,DDP)的技术,可将少量的协定加入韧体的预设组合,到了Ethernet 800系列,让更多协定能够加入DDP轮廓(profile)的封装,进而强化DDP的成效。英特尔表示,Ethernet 800系列的韧体会在驱动程式初始执行的阶段,载入1个改良的DDP轮廓,而这个概况搭配了多个特定工作负载专属的协定,可提供更多使用弹性。

如果我们在一套系统当中同时使用多张Ethernet 800系列网路卡,每一张网路卡的执行管线流程,均可运用不同的DDP轮廓,独立地进行程式化,而不需要重新载入韧体映像。

以预设的DDP轮廓而言,支援常用的协定与伫列组态,像是VXLAN、GENEVE、VXLAN-GRE、NVGRE等网路隧道协定,都是在网路虚拟化层叠(Network Virtualization OverLayers)应用所採行的。至于强化的DDP轮廓,则会提供专属领域的协定与组态选项,会在系统搭配特定装置时载入,以提供额外的功能,而且,这些封装的开发不会受限于产品本身的寿命,可支援新的协定。

Ethernet 800系列网路卡所支援的DDP功能有哪些?英特尔表示,可特别针对网路功能虚拟化(NFV),以及网路边缘的应用,改善工作负载的最佳化处理。

英特尔为何要在网路卡当中加入DDP技术?Mike Zeile也在英特尔的部落格文章提出解释。最主要的理由在于,网路边缘的处理、网路功能虚拟化、资料中心安全加密的需求,使得网路协定的数量显着增加,对于网路卡而言,所需要支援的通讯协定数量也跟着大大增加,才能强化传输效率与效能。

为了因应增加的通讯协定,网路控制器与网路卡都需要变得可程式化,以便在预设的协定支援当中,去进行建构或修改,符合部署时的特定需求。

  

而有了DDP,网路卡就能够做到动态重新设定封包处理的流程,随需因应特定的协定使用状况。举例来说,在应用系统执行期间,我们如果能在网路卡上,增加新的封包处理流程组态剖析能力,即可在伺服器不需重新设定或开机的状况下,让DDP得以更深入地检视封包,进而将这些资料以更快、更低延迟、更大吞吐量的方式,导引到目的地,并且能以更低的CPU使用率来处理这些作业,将资源保留给其他重要的工作。

DDP实际的成效如何?英特尔2017年在实验室进行了宽频远端存取伺服器(BRAS)的汇聚转发测试,来进行验证,他们发现,对于网路上传处理的作业,DDP的效能提升幅度可达到70%。

产品资讯

Intel Ethernet 800系列●原厂:Intel●建议售价:厂商未提供●网路介面卡:E810-CQDA1、E810-CQDA2、E810-XXVDA2、E810-XXVDA4●网路控制器:E810-CAM2、E810-CAM1、E810-XXVAM2●支援网路介面:1GbE/10GbE/25GbE/50GbE/100GbE●支援储存网路协定:iSCSI、SMB Direct、iSER、NVMe over RDMA(iWARP、RoCEv2)、SPDK、NVMe over TCP●进阶功能:Application Device Queues(ADQ)、Dynamic Device Personalization(DDP)

【注:规格与价格由厂商提供,因时有异动,正确资讯请洽厂商】

相关推荐

猜你喜欢

特别关注