云计算平台之网络性能1

来源:互联网 发布:绣春刀2剧情解析知乎 编辑:程序博客网 时间:2024/05/29 17:14

随着虚拟化技术的发展,网络虚拟化技术也随之发生着巨大的变化!

提及网络虚拟化,必然会首先想到网卡。那就先聊聊网卡技术近年主要的技术变革:

第一阶段:单队列时代。什么是单队列?我们知道,网卡的主要功能是传输数据,当网卡收到报文之后,首先在网卡内对报文做一些简单的处理,比如算一下CS,然后给主机发一个中断,告知主机有数据需要接收。主机在硬中断里调用软中断处理报文,然后送往操作系统的协议栈处理。因为这时候的网卡只有一个队列,也就只对应一个硬中断,所以操作系统只有一个核处理报文,带宽一上去,x86的某一个CPU一下就唰唰的占用到100%,没法玩了:是while(1)了~~~。

第二阶段:多队列时代。在MSI-X之前,传统中断没法进行负载均衡,那会我曾经尝试过用poll的方式实现多队列机制:OS侧模拟,网卡进行流分类,然后送到主机对应的队列中,效果还可以,负载可以达到均衡的目的,至少不会出现while(1)了?。后来出现了MSI-X技术,多队列技术就很easy实现了。硬件支持多个硬件队列,每个队列可以对应一个中断,最好是x86有几个核就分几个队列,当然这也需要操作系统的配合。

第三阶段:SR-IOV时代。随着虚拟化技术的发展,多队列虽然比较好的解决了物理机下的网路性能,但是对于VM来说,多队列无法有效展现优势,这时就有了硬件的PCI虚拟化技术SR-IOV,一张卡支持多个PF,每个PF又支持多个VF,每个VF可以直接绑定到一个VM,这样就相当于一个VM直接访问一个物理网卡,节省了软件交换的开销,大大提升了虚拟化下的网络性能。

现在大部分的网卡都支持这几个特性,比如82599、cx4、X710等等。。。
0 0
原创粉丝点击