9.4. 两个 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。
图 9.2. OVS-DPDK:两个 NUMA 节点示例
为非数据路径 DPDK 进程保留第一个物理内核或每个 NUMA 节点(0、1 和 89)的线程对。
这个示例还假设 1500 MTU 配置,因此所有用例的 OvsDpdkSocketMemory
都相同:
OvsDpdkSocketMemory: "1024,1024"
OvsDpdkSocketMemory: "1024,1024"
NIC 1 用于 DPDK,一个物理内核用于 PMD
在这种情况下,您可以为 PMD 在 NUMA 0 上分配一个物理内核。您还必须在 NUMA 1 上分配一个物理内核,即使该 NUMA 节点的 NIC 上未启用 DPDK。为客户机实例分配剩余的内核。生成的参数设置为:
OvsPmdCoreList: "2,3,10,11" NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"
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"
OvsPmdCoreList: "2,3,4,5,10,11"
NovaComputeCpuDedicatedSet: "6,7,12,13,14,15"
NIC 2 for DPDK,一个物理内核用于 PMD
在这种情况下,您可以为 PMD 在 NUMA 1 上分配一个物理内核。您还必须在 NUMA 0 上分配一个物理内核,即使该 NUMA 节点的 NIC 上未启用 DPDK。为客户机实例分配剩余的内核。生成的参数设置为:
OvsPmdCoreList: "2,3,10,11" NovaComputeCpuDedicatedSet: "4,5,6,7,12,13,14,15"
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"
OvsPmdCoreList: "2,3,10,11,12,13"
NovaComputeCpuDedicatedSet: "4,5,6,7,14,15"
NIC 1 和 NIC2 用于 DPDK,两个物理内核用于 PMD
在这种情况下,您可以在每个 NUMA 节点上为 PMD 分配两个物理内核。为客户机实例分配剩余的内核。生成的参数设置为:
OvsPmdCoreList: "2,3,4,5,10,11,12,13" NovaComputeCpuDedicatedSet: "6,7,14,15"
OvsPmdCoreList: "2,3,4,5,10,11,12,13"
NovaComputeCpuDedicatedSet: "6,7,14,15"