8.5. 两个 NUMA 节点示例 OVS-DPDK 部署
以下示例中的 Compute 节点包含两个 NUMA 节点:
- NUMA 0 具有内核 0-7。同级线程对有(0,1)、(2,3)、(4,5)和(6,7)
- NUMA 1 具有内核 8-15。同级线程对有(8,9),(10,11),(12,13)和(14,15)。
- 每个 NUMA 节点都连接到物理 NIC,即 NUMA 0 上的 NIC1 和 NUMA 1 上的 NIC2。
图 8.2. OVS-DPDK:两个 NUMA 节点示例
为非数据路径 DPDK 进程保留第一个物理内核或每个 NUMA 节点(0、1 和 89)的线程对。
本例还假定 MTU 配置 1500,因此所有用例中的 OvsDpdkSocketMemory
都相同:
OvsDpdkSocketMemory: "1024,1024"
NIC 1 用于 DPDK,一个指向 PMD 的物理内核
在这种情况下,您可以在 NUMA 0 上为 PMD 分配一个物理内核。您还必须在 NUMA 1 中分配一个物理内核,即使该 NUMA 节点的 NIC 中没有启用 DPDK。剩余的内核为客户机实例分配。生成的参数设置有:
OvsPmdCoreList: "2,3,10,11" NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"
NIC 1 用于 DPDK,有两个用于 PMD 的物理内核
在这种情况下,您可以为 PMD 在 NUMA 0 上分配两个物理内核。您还必须在 NUMA 1 中分配一个物理内核,即使该 NUMA 节点的 NIC 中没有启用 DPDK。剩余的内核为客户机实例分配。生成的参数设置有:
OvsPmdCoreList: "2,3,4,5,10,11" NovaComputeCpuDedicatedSet: "6,7,12,13,14,15"
NIC 2 用于 DPDK,一个指向 PMD 的物理内核
在这种情况下,您可以在 NUMA 1 中为 PMD 分配一个物理内核。您还必须在 NUMA 0 中分配一个物理内核,即使该 NUMA 节点的 NIC 中没有启用 DPDK。剩余的内核为客户机实例分配。生成的参数设置有:
OvsPmdCoreList: "2,3,10,11" NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"
NIC 2 用于 DPDK,有两个用于 PMD 的物理内核
在这种情况下,您可以为 PMD 在 NUMA 1 中分配两个物理内核。您还必须在 NUMA 0 中分配一个物理内核,即使该 NUMA 节点的 NIC 中没有启用 DPDK。剩余的内核为客户机实例分配。生成的参数设置有:
OvsPmdCoreList: "2,3,10,11,12,13" NovaComputeCpuDedicatedSet: "4,5,6,7,14,15"
NIC 1 和 NIC2 用于 DPDK,两个物理内核用于 PMD
在这种情况下,您可以为 PMD 在每个 NUMA 节点上分配两个物理内核。剩余的内核为客户机实例分配。生成的参数设置有:
OvsPmdCoreList: "2,3,4,5,10,11,12,13" NovaComputeCpuDedicatedSet: "6,7,14,15"