北极星

搜索历史清空

  • 水处理
您的位置:电力电力新闻新产品新技术正文

凌华科技aTCA-6200服务器刀片完美搭配Intel® DPDK技术

2012-08-09 16:15来源:北极星电力软件网作者:Jack Lin关键词:技术整合处理器刀片电力通信收藏点赞

投稿

我要投稿

分析

相比原生Linux(NativeLinux),采用Intel®DPDK技术后能够大幅提升IP转性能的主要原因在于Intel®DPDK采用了如下描述的主要特征。

轮询模式取代中断

通常当数据包进入的时候,NativeLinux会从网络接口控制器(NIC,NetworkInterfaceController)接收到中断,然后调度软中断,对所得的中断进行上下文切换,并唤醒系统调用,如read()和write()。

相比之下,Intel®DPDK采用了优化的轮询模式驱动(PMD,PollModeDriver)代替默认的以太网驱动程序,从而可以不断地接收数据包,避免软件中断,上下文切换和唤醒系统调用,从而大大的节省重要的CPU资源,并且降低了延迟。

HugePage取代传统页

相比NativeLinux的4kB页,采用更大的页尺寸意味着可以节省页的查询时间,并减少转译查找缓存(TLB,TranslationLookasideBuffer)丢失的可能。

Intel®DPDK作为用户空间(User-space)应用运行时,在自己的内存空间中分配HugePage至存储帧缓冲区,环形和其他相关缓冲区,这些缓冲区是由其他应用程序控制,甚至是Linux内核。本白皮书描述的测试中,总计1024@2MB的HugePage被保留用于运行IP转发应用。

零拷贝缓冲区

在传统的数据包处理过程中,原生Linux(NativeLinux)解封包的报头,然后根据SocketID将数据复制到用户空间(UserSpace)缓冲区。一旦用户空间(UserSpace)应用程序完成了数据的处理,一个write()系统调用将被唤醒并把数据送至内核,负责将数据从用户空间(UserSpace)拷贝至内核缓冲区,封装包的报头,最后借助相关的物理端口将数据发出去。显然,原生Linux(NativeLinux)在内核缓冲区和用户空间(UserSpace)缓冲区之间进行拷贝动作,牺牲了很多的时间和资源。

相比之下,Intel®DPDK在自己保留的内存区域接收数据包,这个区域位于用户空间(UserSpace)缓冲区,之后根据配置规则将这些数据包分类到每一个Flow中。在处理完解封包之后,在相同的用户空间(UserSpace)缓冲区中使用正确的报头进行包封装,最后通过相关的物理端口发送这些数据。

Run-to-Completion(RTC,运行到完成)和CoreAffinity

在执行应用之前,Intel®DPDK会进行初始化,分配所有的低级资源,如内存空间,PCI设备,定时器,控制台,这些资源将被保留且仅用于那些基于Intel®DPDK的应用。初始化完成之后,每一个核(或线程,当BIOS设置中启用了Intel®超线程技术时)将被启用来负责每一个执行单元,并根据实际应用的需求,运行相同的或不同的工作负载。

此外,Intel®DPDK还提供了一种方法,即可以设置每个执行单元运行在每一个核心上,以维持更多的CoreAffinity,从而避免缓存丢失。在此白皮书描述的测试中,aTCA-6200处理器刀片的物理端口根据Affinity被绑定在两个不同的CPU线程上。

无锁执行和缓存校准

Intel®DPDK提供的库和API,被优化成无锁,以防止多线程应用程序死锁现象的发生。对于缓冲区、环形和其他数据结构,Intel®DPDK也进行了优化,执行了缓存校准,以达到缓存行(Cache-Line)的效率最大化,同时最大限度减少缓存行(Cache-Line)的冲突。

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。

技术整合查看更多>处理器刀片查看更多>电力通信查看更多>