虚拟机多队列 (VMMQ) 概述

虚拟机多队列 (VMMQ) 是一种 NIC 卸载技术,可将 本机 RSS (RSSv1) 扩展到 Hyper-V 虚拟环境。

VMMQ 为 虚拟节点的父分区中的 VPorts (VPorts) 提供可缩放的网络流量处理。 VPort 表示网络适配器的 NIC 交换机上的内部端口,该端口支持 单根 I/O 虚拟化 (SR-IOV) 。 有关 SR-IOV 接口及其组件的概述,请参阅 SR-IOV 体系结构。 以前,RSS 处理不适用于 VPorts。 VMMQ 将本机 RSS 功能扩展到与 NIC (PF) (包括默认 VPort)的物理功能关联的 VPort。

VMMQ 的工作原理是在 NIC 硬件中有效地分配网络流量。 可以将多个硬件队列从 NIC 分配到单个 PF VPort。 NIC 使用 RSS 哈希跨这些队列分配网络流量,并将数据包直接放置在分配的处理器上。 将流量分发卸载到 NIC 可以提高 CPU 性能,因为软件不必完成此任务。

你可能希望启用 VMMQ 功能,通过跨多个处理器分散 CPU 负载来减少主机 CPU 消耗,并为虚拟系统启用更高的吞吐量。 可以向新的或现有的 NDIS 6.60 及更高版本驱动程序添加 VMMQ 支持。 如果适配器支持 VMMQ,驱动程序由供应商提供,OS 为 Windows Server 2019,则默认启用 VMMQ。 如果适配器不支持 VMMQ、驱动程序由系统提供或操作系统Windows Server 2016,则默认禁用 VMMQ 或不可用。 如果 OS 早于 Windows Server 2016则 VMMQ 不可用。

VMMQ 可用于父分区中公开的 VPorts,无论 NIC 是在 SR-IOV 还是 虚拟机队列 (VMQ) 模式下运行。

预期的功能交互

在本节中

VMMQ 发送和接收处理

播发 VMMQ 功能

VMMQ 的标准化 INF 关键字

为 VMMQ 分配 VPort

在 VPort 上启用、禁用和更新 VMMQ