×

使用多队列功能来扩展具有多个 vCPU 的虚拟机 (VM) 的网络吞吐量和性能。

默认情况下,从域 XML 派生的queueCount值由分配给虚拟机的 vCPU 数量决定。网络性能不会随着 vCPU 数量的增加而扩展。此外,由于 virtio-net 只有一个 Tx 和 Rx 队列,因此客户机无法并行传输或检索包。

当客户机实例中的 vNIC 数量与 vCPU 数量成比例时,启用 virtio-net 多队列不会带来显著改进。

已知限制

  • 如果在主机中启用了 virtio-net 多队列,但在客户机操作系统中未由管理员启用,则仍会消耗 MSI 向量。

  • 每个 virtio-net 队列都会为 vhost 驱动程序消耗 64 KiB 的内核内存。

  • 如果将networkInterfaceMultiqueue设置为 'true',则启动具有超过 16 个 CPU 的虚拟机将导致无连接 (CNV-16107)。

启用多队列功能

为使用 VirtIO 模型配置的接口启用多队列功能。

步骤
  1. 在虚拟机的VirtualMachine清单文件中将networkInterfaceMultiqueue值设置为true以启用多队列功能。

    apiVersion: kubevirt.io/v1
    kind: VM
    spec:
      domain:
        devices:
          networkInterfaceMultiqueue: true
  2. 保存VirtualMachine清单文件以应用更改。