2017全球未来网络发展峰会

创新合作共赢    引领未来发展

当前位置:嘉宾致词> > 分论坛二

《NFV高性能软件数据平面》

编辑: 共浏览:674次

非常感谢大家,也非常感谢大家到现场来参加峰会,也非常感谢大家邀请我来作为今天的嘉宾。我今天我想谈的就是未来这个软件网络。如果进行高性能处理数据包,高性能处理数据包需要有更好的网络平台,为什么我们不能用(英文),因为我们现在都知道,我们都知道比如说如何去进行编程,我们可以有这样一个防火墙,我们有不同这样一个系统,所有这样一个编程软件其实都是在那里,但是我们现在其实需要的就是来满足我们这样一个一般性的需求,同时之外还有满足所有的需求的软件,同时我们还需要提供一个(英文),同时我们也需要去在这样一个GPU或者FPG上面进行运行,我们是需要我们下一代的网络能够满足所有的这些要求。

为什么NFV进行数据包性能不是非常好,速度非常慢,为什么数据慢有很多这样的普遍目的,同一时间进行操作,这就降低了NFV处理速度,我们希望在用户空间进行复制操作,这就是其中的需求,如何进行复制,首先我们可以用高速输入、输出框架,可以用DPDK,同时我们操作起来非常简单,这就是我们来短接(英文)堆站,用零复制和输入输出批量处理或者用中间的干涉处理等等。其实我们如果说能够把我们这个数据包能够传输过程中,其实是非常简单的一个过程中,但是我们不仅仅只希望达到这样一个目的,那我们希望能够借这样的框架,能够将我这样一个原始的数据包能够更快的去传给我们的用户空间。

所以我们可以有很多选择,其中一个选择就是使用不同的这样一个系统,包括我们这样一个模式化的路由器就可以达到功能,这样的路由器非常灵活使用起来简单,有不同的部件组成这样一个配置。我们需要做的其实就是进行一个点击的操作,就是在我们这个框架下进行复制操作,同时也可以进行硬件的下载,也有其他的相关功能,都是非常有趣的。(英文)点击非常简单,可以通过数据包通过我处理进向能够传送到我们相关的用户端或者是我们用户空间。现在我们通过Click可以提高,我们有更多的对接方式,这样可以使我们输出输入框架接入到更多的平台,通过对Click的提升,我们得多复制的速度会更快,其实有一些技术其实是其他人发明的,我们看到非常好的创新或者技术,我们都会很快投入到使用中来,如果说也有一些新的这样一个想法等等,我们都会尽力融入平台。

同时还有执行的模式,最开始的这样一个执行模式,只是简单通过我们这样一个点击这样一个(英文),其实有两部分,一个是(英文),这个(英文)其实是从我们最开始这样一个输出,然后到输入这样一个连接,那么整个有一个站队的元素,一直到最后一个站队的元素,所以是输入元素到输出元素再到一个输入元素,其实他的整体量并不是很大,尤其是输入容量并不是很大。其实我们系统能够识别我们是什么时候需要进行这样一个复制,在识别之后就开始进行click的操作。我想说的一点就是在执行模式这块,我们通过(英文)和布的路径其实可以很大程度上节省我们的成本,为什么很大程度节省成本,并没有需要缓冲处理,能够直接把我们这样一个信息从我们这个输入端直接送到输出端,同时也有不同的线程通过路由转化器来进行处理。这就其实能够很好降低click的成本。其实还有一点就是我们的序列,我们有不同多层的序列,包括我们的输入输出,在之前我们可能有不同的路径,通过这个路径我们可以来进行这样一个数据传输,现在我们可以给每一个这样的(英文)一个(英文)和(英文)的指令。

通过我们的研究,我们发现多序列因为效率能够提高,在某一方面能够极大降低我们这样一个成本的。同时也能很好的提高的性能。我们可以总结一下(英文),这样一个(英文)这个成本会更高。如果说我们有更多的序列的话效率会更高,我们要限制这个队列数量。另外一个关键就是在现在体系中,或者是现在这一种商品系统,这个非常重要这一点,来拥有叫做多线成,所以我们要在鼠标当中解释多线程始量,这个关系到线程管理,关键是点击图表,多少进入多少出去,系统会自动识别数据包,什么时候去改变其线程,会做线程核心改变,所以你要做的是做一些区别,当然这件事对于编程人员很容易,不需要不断了解这个问题。

同时我们对于多线程发生有些元素,可能有比较大的数据结构,比方说像这个(英文)当然我们需要分享,不同的线程进行分享,另外每一个线程有其自己的这样一种异变的数据,提到异变数据,基础设计的时候,我们系统做的自动决定哪一个结构要被分享,所有线程当中,哪一个可以进行复制。所以这些必须要透明化对于编程人员来说。接下来进和出的框架,高速的进出框架,我们必须要有把数据包推到用户的空间,通过把这样一种核心传递出去,但是你一旦在那边问题就是这个点击自身,你会用自己的数据包,所以我们要必须避免这样一种情况,只是为了去复制这个数据包的内容,那么在用户的空间当中,当然这可能是不可以被接受我们所做的,在世界其他地方绝大部分所做的,那就是合成,我们这样一点击,然后产生会出现,点击的时候会使用这样一种数据包,在内部和外部的框架。所以很明显,在避免复制的情况,同时能够改进我们的表现,而且很大程度改进我们的表现,同时能够让我们充分做一些,充分利用释放这个数据包,一个系统然后我们可以在一个核心当中释放很多数据包。

一旦我们把集成到一个执行当中,我们可以看到我们有很多糟糕的表现,这个表现当然不是我们想要的,我们看到曲线可能会非常地高,可能像左边一样,尽可能像左边一样的高,所以我们看到一个失败,在这些改进上面,我们没有能够做出改进,通过引进这样一种综合性的东西,反而效率和性能会出现滑坡趋势,另外一个关注这个点击,往往一次采取一个数据包,无论是出还是进,每一次点击只有一个数据包,我们要做的点击元素,一帮数据包或者很多数据包传递出去,这样可以降低我们的成本,同时还能够传递整个路径,对于这点来讲我们就用了一系列,一个列表数据包。

在真实情境当中,整个数据包,这批数据包是分列,有一部分数据包走另外一个不同的方向,所以是一个隔离、分裂的,那么当然一个可能会把这个数据包进行分裂,这样会更加容易一些。实际上我们会发现这样一种描述符,已经表示支持,所以我们可以直接使用他,因为这个点击数据包描述符,我们可以完全来进行循环整批,因为有了这一点,因为整个数据流联网,对于整批数据包进行循环使用。我们知道但是不了解数据包能够使用,所以我们引进一个元素,能够再次包裹,取决于不同的模块,比如说绝大部分模块可能不值得开发的成本的。我们引进这样一种分批,同时我们还谈到一些优化,比方说循环利用,同时我们也看到还有包括事先抓取,对于事先抓取和汇聚改善,我们可以循环利用,同时实现抓取能力,我们把这些简单的进步放在一起的话,我们进行两个实验来模拟,我们把这些情境做了一些比较,我们(英文)核心作为一个基准,实际上底部是快速的,给我们更好的表现。所以这是一个更加迅速的要比较好的选择,对于这个路径的这样一个情景,我们得到相同的改进,我们相信这样一种快速点击执行,这是我们所说的,我们目前所发现快速的点击模式,能够不断的去循环和再生。

还有两分钟时间。这样一个问题你可能有很多点击性的场景,所以我们需要做的就是支持引入多线程的方式,所以我们要走向多线程的路线,我们要特别提到的是那就是新的元素,实际上一个在队列当中只有一个阅读者,所有的话都在一个透明情景当中,实际上能够引入你的这样一个(英文),这样你就可以让这个线程变的更加安全,那么接下来你有另外一个部分,可能没有意识的线程,那(英文)放在当中来联系两边的线程,这样可以做下面的元素,让线程变的更加安全,从而改变目标,成为一步一步让方式成为多线程的努力。总的来说他是一个开放的平台,大家可以通过这样一个连接来下载(英文),我们可以通过这样一个新的技术来进行实施,其实有不同相关的功能,我们看到有输入输出的批量处理,同时也还有全程(英文)执行模式,等等是有很多相关功能,这就是我今天的介绍。

 

提问:非常感谢您精彩的演讲,您刚才提到NFV高性能优化,灵活性是一个非常重要的因素,我们可以通过多层一个虚拟的网络环境,来实现这样一个灵活性,也可以通过不同的路由系统来实现一个灵活性。其实通过这些我们可以更快的更好的来提高网络性能,您的这个观点是什么呢?

 

Laurent  Mathy:其实我们多层序列或者是我们多层的数据或者是平台也好,其实我们都是为了达到我们这样一个网络灵活性的目的而服务,我们之前的一个模式以及我们系统,其实只是内容处理我们一般的这样一个功能和目的,现在我们就要加强我们这样一个网络性能,来实现我们这样一个定义化的这样一个网络构架,这样的话在处理相关数据的时候,就能够表现出更好的这样一个安排或者是对整个数据一个形成进行安排。大家可以想一想,有一些客户尤其是硬件用户,对相关的处理,如果同一个机器处理不是太满意,这个时候能说请给我一个(英文),其实我们现在一个单独的这样一个数据包,其实就能够满足定制客户的需求。

 

提问:我的问题是你如何解决现实上的问题,比如说(英文)

 

Laurent  Mathy:指的是路径和(英文)之间的一个平衡,其实我的一个学生在(英文)一家公司学习,能够处理千量级的数据,他是把所有数据都是在(英文)处理器上进行操作的。其实我觉得这个(英文)数量是由(英文)数量决定的,因为可以从不同的(英文)重组或者重新排列,其实一个(英文)对应一个(英文),一个(英文)对应一个(英文),这就是不同的内容交互,我不知道我的回答是不是回答你的问题。