《深入浅出DPDK》—第1章1.4节探索IA处理器上最艰巨的任务

1.4 探索IA处理器上最艰巨的任务
在通用处理器上处理包的最大挑战是什么?为什么以往通用处理器很少在数据面中扮演重要的角色?如果我们带着这些问题来看数据面上的负载,就会有一个比较直观的理解。这里拿40Gbit/s的速率作为考察包转发能力的样本。如图1-8所示,曲线为不同大小的包的最大理论转发能力。

分别截取64B和1024B数据包长,图1-8所示的线速情况下的报文的指令成本能明显地说明不同报文大小给系统带来的巨大差异。就如我们在包转发率那一节中理解的,对于越小的包,相邻包到达的时间间隔就越小,16.8ns vs 208.8ns。假设CPU的主频率是2GHz,要达到理论最大的转发能力,对于64B和1024B软件分别允许消耗33和417个时钟周期。在存储转发(store-forward)模型下,报文收发以及查表都需要访存。那就对比一下访存的时钟周期,一次LLC命中需要大约40个时钟周期,如果LLC未命中,一次内存的读就需要70ns。换句话说,对于64B大小的包,即使每次都能命中LLC,40个时钟周期依然离33有距离。显然,小包处理时延对于通用CPU系统架构的挑战是巨大的。
那是否说明IA就完全不适合高性能的网络负载呢?答案是否定的。证明这样的结论我们从两个方面入手,一个是IA平台实际能提供的最大能力,另一个是这个能力是否足以应对一定领域的高性能网络负载。
DPDK的出现充分释放了IA平台对包处理的吞吐能力。我们知道,随着吞吐率的上升,中断触发的开销是不能忍受的,DPDK通过一系列软件优化方法(大页利用,cache对齐,线程绑定,NUMA感知,内存通道交叉访问,无锁化数据结构,预取,SIMD指令利用等)利用IA平台硬件特性,提供完整的底层开发支持库。使得单核三层转发可以轻松地突破小包30Mpps,随着CPU封装的核数越来越多,支持的PCIe通道数越来越多,整系统的三层转发吞吐在2路CPU的Xeon E5-2658 v3上可以达到300Mpps。这已经是一个相当可观的转发吞吐能力了。
虽然这个能力不足以覆盖网络中所有端到端的设备场景,但无论在核心网接入侧,还是在数据中心网络中,都已经可以覆盖相当多的场景。
随着数据面可软化的发生,数据面的设计、开发、验证乃至部署会发生一系列的变化。首先,可以采用通用服务器平台,降低专门硬件设计成本;其次,基于C语言的开发,就程序员数量以及整个生态都要比专门硬件开发更丰富;另外,灵活可编程的数据面部署也给网络功能虚拟化(NFV)带来了可能,更会进一步推进软件定义网络(SDN)的全面展开。

时间: 2024-08-01 18:31:14

《深入浅出DPDK》—第1章1.4节探索IA处理器上最艰巨的任务的相关文章

《JUnit实战(第2版)》—第2章2.1节探索JUnit核心

第2章 探索JUnit的核心JUnit实战(第2版)Mistakes are the portals of discovery. 错误是发现之门. -James Joyce 本章重点 使用核心JUnit类理解JUnit的机制理解JUnit的生命周期在第1章中,我们已经明确了我们需要一种可靠的.可复用的方法来测试我们的程序.我们的解决方案就是编写或复用一个框架来驱动测试代码,以测试程序的API.因为我们的程序对现有的类增加了新的类.新的方法,所以我们也需要增加相应的测试代码.经验告诉我们,有时候类

《Metasploit渗透测试手册》—第8章8.2节 探索模块结构

8.2 探索模块结构Metasploit渗透测试手册理解漏洞利用模块的结构是非常重要的,因为这有助于对不同漏洞利用模块的正确分析.由于Metasploit框架是一个开源项目,其开发依赖于来自研究团体的贡献.来自全球的开发者们将各种漏洞利用代码的概念验证代码转换为Metasploit模块,以便为其他用户使用.读者也可以将新发现漏洞的利用代码转换为Metasploit模块,从而为Metasploit开发贡献力量.还有些时候需要利用不在Metasploit框架中的特定漏洞利用代码.掌握漏洞利用代码模块

《高度安全环境下的高级渗透测试》—第1章1.4节探索BackTrack

1.4 探索BackTrack 恭喜,你现在已经拥有了世界上最强大的渗透工具集,并且已经安装好供你使用了.整本书将致力于介绍BackTrack--Linux平台上最优秀的工具集,该工具集无疑将会为你在渗透测试阶段节省大量的时间. 1.4.1 登录 安装的默认登录信息如下所示: bt login:root bt password:toor 1.4.2 修改默认密码 登录后,我们应该尽快修改默认密码.通过终端输入passwd,将密码替换为例子中的1NewPassWordHere这个密码作为你的安全密

《深入浅出DPDK》目录—导读

引 言 动机 2015年4月,第一届DPDK中国峰会在北京成功召开.来自中国移动.中国电信.阿里巴巴.IBM.Intel.华为以及中兴的专家朋友登台演讲,一起分享了以DPDK为中心的技术主题.表1列出了2015 DPDK中国峰会的主题及演讲者. 这次会议吸引了来自各行业.科研单位与高校的200多名开发人员.专家和企业代表参会.会上问答交流非常热烈,会后我们就想,也许是时间写一本介绍DPDK.探讨NFV数据面的技术书籍.现在,很多公司在招聘网络和系统软件人才时,甚至会将DPDK作为一项技能罗列在招

《深入浅出DPDK》—第3章3.1节并行计算

第3章 并 行 计 算 处理器性能提升主要有两个途径,一个是提高IPC(每个时钟周期内可以执行的指令条数),另一个是提高处理器主频率.每一代微架构的调整可以伴随着对IPC的提高,从而提高处理器性能,只是幅度有限.而提高处理器主频率对于性能的提升作用是明显而直接的.但一味地提高频率很快会触及频率墙,因为处理器的功耗正比于主频的三次方. 所以,最终要取得性能提升的进一步突破,还是要回到提高IPC这个因素.经过处理器厂商的不懈努力,我们发现可以通过提高指令执行的并行度来提高IPC.而提高并行度主要有两

《深入浅出DPDK》—第1章1.2节初识DPDK

1.2 初识DPDK 本书介绍DPDK,主要以IA(Intel Architecture)多核处理器为目标平台.在IA上,网络数据包处理远早于DPDK而存在.从商业版的Windows到开源的Linux操作系统,所有跨主机通信几乎都会涉及网络协议栈以及底层网卡驱动对于数据包的处理.然而,低速网络与高速网络处理对系统的要求完全不一样. 1.2.1 IA不适合进行数据包处理吗 以Linux为例,传统网络设备驱动包处理的动作可以概括如下: 数据包到达网卡设备. 网卡设备依据配置进行DMA操作. 网卡发送

《深入浅出DPDK》—第1章1.1节认识DPDK

第一部分 Part 1DPDK基础篇软件正在统治整个世界.--马克·安德森本书的开始部分会重点介绍DPDK诞生的背景.基本概念.核心算法,并结合实例讲解各种基于IA平台的数据面优化技术,包括相关的网卡加速技术.希望可以帮助初次接触DPDK的读者全面了解DPDK,为后面的阅读打下基础. 第1章 认识DPDK什么是DPDK?对于用户来说,它可能是一个性能出色的包数据处理加速软件库:对于开发者来说,它可能是一个实践包处理新想法的创新工场:对于性能调优者来说,它可能又是一个绝佳的成果分享平台.当下火热的

《深入浅出DPDK》—第2章2.9节NUMA系统

2.9 NUMA系统 之前的章节已经简要介绍过NUMA系统,它是一种多处理器环境下设计的计算机内存结构.NUMA系统是从SMP(Symmetric Multiple Processing,对称多处理器)系统演化而来. SMP系统最初是在20世纪90年代由Unisys.Convex Computer(后来的HP).Honeywell.IBM等公司开发的一款商用系统,该系统被广泛应用于Unix类的操作系统,后来又扩展到Windows NT中,该系统有如下特点: 1)所有的硬件资源都是共享的.即每个处

《深入浅出DPDK》—第2章2.5节Cache预取

2.5 Cache预取以上章节讲到了多种和Cache相关的技术,但是事实上,Cache对于绝大多数程序员来说都是透明不可见的.程序员在编写程序时不需要关心是否有Cache的存在,有几级Cache,每级Cache的大小是多少:不需要关心Cache采取何种策略将指令和数据从内存中加载到Cache中:也不需要关心Cache何时将处理完毕的数据写回到内存中.这一切,都是硬件自动完成的.但是,硬件也不是完全智能的,能够完美无缺地处理各种各样的情况,保证程序能够以最优的效率执行.因此,一些体系架构引入了能够