聚合国内IT技术精华文章,分享IT技术精华,帮助IT从业人士成长

xen network PV driver 现状分析

2016-02-24 12:45 浏览: 1630937 次 我要评论(0 条) 字号:

前言

在xen的虚拟化环境中,VM的网络通常都会使用PV driver来进行加速。关于PV driver的通信原理如下图所示。 简单来说,就是在domU和dom0之间实现了一个ring环,然后domU将需要通信的数据存在一个page中并挂在ring上,然后通过grant机制将domU的page授权给dom0访问,然后由dom0从ring中将接收到的数据进行相应处理。 本文不再赘述这一个过程,主要讲解现在主干版本3.17.8中PV driver使用到的一些虚拟网卡优化技术。

tx和rx分离

在处理数据包的时候,经常性的出现tx和rx的使用频率不同。在开始时tx和rx使用同一ring,这样的实现方式在网络高速通信时会造成延迟升高。将tx和rx分开来处理,可以保证网络通信质量。这一实现包括需要分离开的ring,以及分离开得notify机制。

napi技术

随着网络带宽的提升,使用中断方式来对数据进行会使得网卡中断数量不断提升。因此在kernel中加入了中断+轮询(napi)方式来进行处理。 这样可以达到一次中断,处理多次请求的目的。

tx的zerocopy_callback

在网卡的发送路径上,对数据肯能进行多次copy或map。这一过程会相当的耗时。在tx方面可以使用zerocopy技术来避免copy。在skb中标记该skb使用zerocopy特性,并提供回调函数,在skb使用完后,会调用回调函数来进行数据处理。

多队列

现在的环境中,对网络带宽的需求越来越高,在虚拟化场景下,虚拟网卡的数据交换还是依赖于cpu的处理能力。在这个情况下,网卡多队列功能能够充分的发挥多核的优势,使得网卡带宽进一步提升。



网友评论已有0条评论, 我也要评论

发表评论

*

* (保密)

Ctrl+Enter 快捷回复