7.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。
为非数据路径 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 用于 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"
用于 DPDK 的 NIC 1 和 NIC2,用于 PMD 的两个物理内核
在这种情况下,您可以为 PMD 在每个 NUMA 节点上分配两个物理内核。为客户机实例分配剩余的内核。生成的参数设置有:
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"