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

测试

  • 您可以在 nova.conf 文件中观察 RX 队列大小和 TX 队列大小的值:

    [libvirt]
    rx_queue_size=1024
    tx_queue_size=1024
  • 您可以在计算主机上由 libvirt 生成的 VM 实例 XML 文件中检查 RX 队列大小和 TX 队列大小。

    <devices>
       <interface type='vhostuser'>
         <mac address='56:48:4f:4d:5e:6f'/>
         <source type='unix' path='/tmp/vhost-user1' mode='server'/>
         <model type='virtio'/>
         <driver name='vhost' rx_queue_size='1024'   tx_queue_size='1024' />
         <address type='pci' domain='0x0000' bus='0x00' slot='0x10' function='0x0'/>
       </interface>
    </devices>

    要验证 RX 队列大小和 TX 队列大小的值,请在 KVM 主机上使用以下命令:

    $ virsh dumpxml <vm name> | grep queue_size
  • 您可以检查改进的性能,比如 3.8 mpps/core 在 0 帧丢失。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.