11.5. 配置 NUMA 感知 vSwitch


重要

该功能在此发行版本中作为技术预览提供,因此不享有红帽的全面支持。它只应用于测试,不应部署在生产环境中。有关技术预览功能的更多信息,请参阅覆盖范围详细信息

在实现 NUMA 感知 vSwitch 之前,请检查您的硬件配置的以下组件:

  • 物理网络的数量。
  • PCI 卡的放置。
  • 服务器的物理架构。

内存映射 I/O (MMIO)设备(如 PCIe NIC)与特定的 NUMA 节点关联。当虚拟机和 NIC 位于不同的 NUMA 节点上时,性能会显著降低。要提高性能,请将 PCIe NIC 放置和实例处理对齐在同一 NUMA 节点上。

使用此功能确保共享物理网络的实例位于同一 NUMA 节点上。要优化数据中心硬件的利用率,您必须使用多个 physnet。

警告

要为最佳服务器利用率配置 NUMA 感知网络,您必须了解 PCIe 插槽和 NUMA 节点的映射。有关具体硬件的详情,请参考您的厂商文档。如果您无法正确规划或实现 NUMA 感知 vSwitch,可能会导致服务器只使用单个 NUMA 节点。

为防止跨 NUMA 配置,请通过提供 NIC 到 Nova 的位置,将虚拟机放置在正确的 NUMA 节点上。

先决条件

  • 您已启用了过滤器 NUMATopologyFilter

流程

  1. 设置一个新的 NeutronPhysnetNUMANodesMapping 参数,将物理网络映射到与物理网络关联的 NUMA 节点。
  2. 如果使用 VxLAN 或 GRE 等隧道,还必须设置 NeutronTunnelNUMANodes 参数。

    parameter_defaults:
      NeutronPhysnetNUMANodesMapping: {<physnet_name>: [<NUMA_NODE>]}
      NeutronTunnelNUMANodes: <NUMA_NODE>,<NUMA_NODE>
    Copy to Clipboard Toggle word wrap

    示例

    以下是一个将两个物理网络连接到 NUMA 节点 0 的示例:

    • 一个与 NUMA 节点 0 关联的项目网络
    • 没有关联性的管理网络

      parameter_defaults:
        NeutronBridgeMappings:
          - tenant:br-link0
        NeutronPhysnetNUMANodesMapping: {tenant: [1], mgmt: [0,1]}
        NeutronTunnelNUMANodes: 0
      Copy to Clipboard Toggle word wrap
    • 在本例中,将名为 eno2 的设备的 physnet 分配给 NUMA 编号 0。

      # ethtool -i eno2
      bus-info: 0000:18:00.1
      
      # cat /sys/devices/pci0000:16/0000:16:02.0/0000:18:00.1/numa_node
      0
      Copy to Clipboard Toggle word wrap

      观察示例 heat 模板中的 physnet 设置:

      NeutronBridgeMappings: 'physnet1:br-physnet1'
      NeutronPhysnetNUMANodesMapping: {physnet1: [0] }
      
      - type: ovs_user_bridge
                      name: br-physnet1
                      mtu: 9000
                      members:
                        - type: ovs_dpdk_port
                          name: dpdk2
                          members:
                            - type: interface
                              name: eno2
      Copy to Clipboard Toggle word wrap

验证

按照以下步骤测试您的 NUMA 感知 vSwitch:

  1. 观察 /var/lib/config-data/puppet-generated/nova_libvirt/etc/nova/nova.conf 文件中的配置:

    [neutron_physnet_tenant]
    numa_nodes=1
    [neutron_tunnel]
    numa_nodes=1
    Copy to Clipboard Toggle word wrap
  2. 使用 lscpu 命令确认新配置:

    $ lscpu
    Copy to Clipboard Toggle word wrap
  3. 启动附加到适当网络的 NIC 的虚拟机。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat