搜索

11.4. 通过管理 RX-TX 队列大小来防止数据包丢失

download PDF

出于许多原因,您可能会遇到高于每秒 350 万条数据包的数据包丢失,例如:

  • 一个网络中断
  • a SMI
  • 虚拟网络功能中的数据包处理延迟

要防止数据包丢失,请将队列大小从默认的 512 增加到最多 1024。

先决条件

  • 访问 stack 用户的 undercloud 主机和凭据。

流程

  1. stack 用户身份登录 undercloud 主机。
  2. 查找 stackrc undercloud 凭证文件:

    $ source ~/stackrc
  3. 创建自定义环境 YAML 文件并在 parameter_defaults 下添加以下定义来提高 RX 和 TX 队列大小:

    parameter_defaults:
      NovaLibvirtRxQueueSize: 1024
      NovaLibvirtTxQueueSize: 1024
  4. 运行部署命令并包括核心 heat 模板、其他环境文件、包含 RX 和 TX 队列大小更改的环境文件:

    示例

    $ openstack overcloud deploy --templates \
    -e <other_environment_files> \
    -e /home/stack/my_tx-rx_queue_sizes.yaml

验证

  1. 观察 nova.conf 文件中 RX 队列大小和 TX 队列大小的值。

    $ egrep "^[rt]x_queue_size" /var/lib/config-data/puppet-generated/\
    nova_libvirt/etc/nova/nova.conf

    您应该看到以下内容:

    rx_queue_size=1024
    tx_queue_size=1024
  2. 在 Compute 主机上 libvirt 生成的 VM 实例 XML 文件中检查 RX 队列大小和 TX 队列大小的值:

    1. 创建新实例。
    2. 获取 Compute 主机和实例名称:

      $ openstack server show testvm-queue-sizes -c OS-EXT-SRV-ATTR:\
      hypervisor_hostname -c OS-EXT-SRV-ATTR:instance_name

      输出示例

      您应该看到类似如下的输出:

      +-------------------------------------+------------------------------------+
      | Field                               | Value                              |
      +-------------------------------------+------------------------------------+
      | OS-EXT-SRV-ATTR:hypervisor_hostname | overcloud-novacompute-1.sales      |
      | OS-EXT-SRV-ATTR:instance_name       | instance-00000059                  |
      +-------------------------------------+------------------------------------+
    3. 登录 Compute 主机并转储实例定义。

      示例

      $ podman exec nova_libvirt virsh dumpxml instance-00000059

      输出示例

      您应该看到类似如下的输出:

      ...
         <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>
      ...
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.