网卡性能加速(vmq、sr-iov)、intel相关虚拟化技术、在hyper-v上启用vmq 、sr-iov等功能

vmq介绍:https://docs.microsoft.com/zh-cn/windows-hardware/drivers/network/virtual-machine-queue--vmq-
重要参考:https://blog.51cto.com/ichbinleo/1897503 必看
VMM(虚拟化层,通常的角色为hyper-v 、esxi、qemu等)在服务器的物理网卡中为每个虚机分配一个独立的队列,这样虚机出来的流量可以直接经过软件交换机发送到指定队列上,软件交换机无需进行排序和路由操作。
但是,VMM和虚拟交换机仍然需要将网络流量在VMDq和虚机之间进行复制。

PS C:> Get-NetworkAdapterRss -Name “Ethernet 4”

Name: Ethernet 4
InterfaceDescription: Intel Ethernet CNA X540-T2 #2
Enabled: True
NumberOfReceiveQueues: 8
Profile : NUMAStatic
BaseProcessor:[Group:Number] [Group:Number] [Group:Number] [Group:Number]: 0
MaxProcessor:[Group:Number]【[][Group:Number]: :
MaxProcessors : 16
其中几个重要的参数说明如下:
Enabled:启用或者禁用RSS;
BaseProcessor:系统分配给网卡的最小处理器数量;[Group:Number] – 处理器组数量和处理器数量比。
MaxProcessor:分配给网卡的最大处理器数量;[Group:Number] - 处理器组数量和处理器数量比。
MaxProcessors:分配给网卡的处理器总数的最大值。

我们可以通过Set-NetAdapter命令设置参与接收队列数和RSS中断的最大CPU数量,如下示例将网卡Ethernet4的RSS默认接收队列数为16。
PS C:> Set-NetworkAdapterRss -Name “Ethernet 4” -NumberOfReceiveQueues 16
Name: Ethernet 4
InterfaceDescription: Intel Ethernet CNA X540-T2 #2
Enabled: True
NumberOfReceiveQueues: 16
Profile : NUMAStatic
BaseProcessor:[Group:Number] [Group:Number] [Group:Number] [Group:Number]: 0
MaxProcessor:[Group:Number]【[][Group:Number]: :
MaxProcessors : 16
虚机VMQ开启关闭也比较简单,默认情况下,Hyper-V虚机会启用VMQ功能。我们可以依据虚机是否需要VMQ和实际的网卡性能进行开启或者关闭。如果虚机过多而网卡的VMQ队列又不足时,我们还可以适时为启用了VMQ的虚机设置VMQ权重,权重高的虚机网络数据将优先置于VMQ队列,反之亦然,默认的VMQ权重是100,如下示例所示。

PS C:> Set-NetworkAdapterRss -Name “Ethernet 4” -NumberOfReceiveQueues 16
VMQWeight : 100

sr-iov介绍https://docs.microsoft.com/zh-cn/windows-hardware/drivers/network/single-root-i-o-virtualization--sr-iov-
参考:
Server 2012 Hyper-v新功能之六:SR-IOV https://blog.51cto.com/dinghuqiang/941708
虚拟化中的SR-IOV https://blog.51cto.com/maomaostyle/1439651 (win2012 hyper-v实操sr-iov)


这张图解释的很清楚
参考 网卡虚拟化技术:VMDq和SR-IOV https://www.cnblogs.com/tcicy/p/10006437.html

实际案例参考:
①、Windows Server(案例中是博通网卡):启用虚拟机队列 (VMQ) 的 Hyper-V 虚拟机上的网络性能缓慢 https://www.dell.com/support/article/zh-cn/sln132131/windows-server-启用虚拟机队列-vmq-的-hyper-v-虚拟机上的网络性能缓慢?lang=zh
https://docs.microsoft.com/zh-cn/troubleshoot/windows-server/networking/poor-network-performance-hyper-v-host-vm
②、略

附说明:intel虚拟计划技术
Intel在早期为了支持虚拟化环境,在CPU和PCI总线上提供了三层虚拟化技术,它们分别是:
基于处理器的虚拟化技术VT-x
基于PCI总线实现的IO虚拟化技术VT-d
基于网络的虚拟化技术VT-c

posted @ 2020-11-05 19:55  helloweifa  阅读(2025)  评论(0编辑  收藏  举报