9.4. 配置 RX/TX 队列大小
出于许多原因,您可能会遇到高于每秒 350 万条数据包的数据包丢失,例如:
- 网络中断
- a SMI
- 虚拟功能中的数据包处理延迟
为防止数据包丢失,将队列大小从默认 512 增加到最大 1024。
先决条件
- 要配置 RX,请确保您有 libvirt v2.3 和 QEMU v2.7。
- 要配置 TX,请确保您有 libvirt v3.7 和 QEMU v2.10。
流程
要增加 RX 和 TX 队列大小,请在相关 director 角色的
parameter_defaults:
部分包括以下行:以下是 ComputeOvsDpdk 角色示例:parameter_defaults: ComputeOvsDpdkParameters: -NovaLibvirtRxQueueSize: 1024 -NovaLibvirtTxQueueSize: 1024
parameter_defaults: ComputeOvsDpdkParameters: -NovaLibvirtRxQueueSize: 1024 -NovaLibvirtTxQueueSize: 1024
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
测试
您可以在 nova.conf 文件中观察 RX 队列大小和 TX 队列大小的值:
[libvirt] rx_queue_size=1024 tx_queue_size=1024
[libvirt] rx_queue_size=1024 tx_queue_size=1024
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以在计算主机上由 libvirt 生成的 VM 实例 XML 文件中检查 RX 队列大小和 TX 队列大小。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要验证 RX 队列大小和 TX 队列大小的值,请在 KVM 主机上使用以下命令:
virsh dumpxml <vm name> | grep queue_size
$ virsh dumpxml <vm name> | grep queue_size
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 您可以检查改进的性能,比如 3.8 mpps/core 在 0 帧丢失。