- VMM(虚拟化层,通常的角色为hyper-v 、esxi、qemu等等)
- RSS (Receive Side Scaling) : 接收端扩展, 也叫多队列接收,是一种能够在多处理器系统下使接收报文在多个CPU之间高效分发的网卡驱动技术 。基于RSS技术程序可以通过硬件在多个CPU之间来分发数据流,并且可以通过对RETA的修改来实现动态的负载均衡
如上图左所示,网络流量不是中断到多个逻辑核而是中断到其中一个逻辑核进行处理,这样就造成CPU使用不平均以及降低了CPU处理网络流量的效率 。
而现在大部分的网卡都已经支持接收端缩放(Receive SideScaling,以下简称为RSS),物理机网卡如果支持多个硬件接收队列,则会将接收的数据分发到网卡的多个队列里,在具备多核的物理服务器上,通过网卡的RSS技术将多个队列中断不同的CPU逻辑核来提高数据接收效率,如图右所示。RSS技术的目的在于为队列找到最佳的CPU逻辑核来平衡网络的CPU开销
- VMQ : (静)动态队列 ,常指的虚拟化宿主机层
windows开启多队列参数
- 将最新驱动上传到windows 虚拟机 , 打开设备驱动器更新virtio 驱动网卡 ,更新后新的驱动版本如图
- 宿主机CVK 上,domain xml 增加多队列参数
virsh edit domain , 找到虚拟机网卡配置项 <driver queues=’8’/> ,一般小于或者等于核
<interface type='vhostuser'>
<mac address='fa:16:3f:09:66:47'/>
<source type='unix' path='/var/lib/libvirt/qemu/vhostusersock/tap-10-010oB5G2.sock' mode='server'/>
<target dev='tap-10-010oB5G2'/>
<model type='virtio'/>
<driver queues='8'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x0e' function='0x0'/>
</interface>
- 重启虚拟机
验证网卡对队列有没有生效 ,
- windows 下管理员权限执行get-netAdapterRss,查看队列情况,NumberOfReceiveQueues、MaxProcessors需要与CPU核数一致
2. 宿主机cvk上,执行ovs-appctl dpif-netdev/pmd-rxq-show |grep tap-10-010oB5G2 检查pmd队列是不是8