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 进程(OvsDpdkCoreList),在每个 NUMA 节点上保留第一个物理内核(包括线程对(0、1 和 8)。
本例还假设一个 1500 MTU 配置,因此 OvsDpdkSocketMemory 对所有用例都相同:
OvsDpdkSocketMemory: “1024,1024”
OvsDpdkSocketMemory: “1024,1024”
NIC 1 用于 DPDK,对 PMD 有一个物理内核
在这种情况下,您可以为 PMD 分配 NUMA 0 上的一个物理内核。您还必须在 NUMA 1 上分配一个物理内核,即使该 NUMA 节点的 NIC 上没有启用 DPDK。剩余的内核(没有为 OvsDpdkCoreList保留)已分配给客户机实例。生成的参数设置有:
OvsPmdCoreList: “2,3,10,11” NovaVcpuPinSet: “4,5,6,7,12,13,14,15”
OvsPmdCoreList: “2,3,10,11”
NovaVcpuPinSet: “4,5,6,7,12,13,14,15”
NIC 1 用于 DPDK,用于 PMD 的两个物理内核
在这种情况下,您可以为 PMD 分配两个物理内核在 NUMA 0 上。您还必须在 NUMA 1 上分配一个物理内核,即使该 NUMA 节点的 NIC 上没有启用 DPDK。剩余的内核(没有为 OvsDpdkCoreList保留)已分配给客户机实例。生成的参数设置有:
OvsPmdCoreList: “2,3,4,5,10,11” NovaVcpuPinSet: “6,7,12,13,14,15”
OvsPmdCoreList: “2,3,4,5,10,11”
NovaVcpuPinSet: “6,7,12,13,14,15”
NIC 2 用于 DPDK,对 PMD 有一个物理内核
在这种情况下,您可以为 PMD 为 NUMA 1 分配一个物理内核。您还必须在 NUMA 0 上分配一个物理内核,即使该 NUMA 节点的 NIC 上没有启用 DPDK。剩余的内核(没有为 OvsDpdkCoreList保留)已分配给客户机实例。生成的参数设置有:
OvsPmdCoreList: “2,3,10,11” NovaVcpuPinSet: “4,5,6,7,12,13,14,15”
OvsPmdCoreList: “2,3,10,11”
NovaVcpuPinSet: “4,5,6,7,12,13,14,15”
NIC 2 用于 DPDK,用于 PMD 的两个物理内核
在这种情况下,您可以为 PMD 在 NUMA 1 上分配两个物理内核。您还必须在 NUMA 0 上分配一个物理内核,即使该 NUMA 节点的 NIC 上没有启用 DPDK。剩余的内核(没有为 OvsDpdkCoreList保留)已分配给客户机实例。生成的参数设置有:
OvsPmdCoreList: “2,3,10,11,12,13” NovaVcpuPinSet: “4,5,6,7,14,15”
OvsPmdCoreList: “2,3,10,11,12,13”
NovaVcpuPinSet: “4,5,6,7,14,15”
用于 DPDK 的 NIC 1 和 NIC2,用于 PMD 的两个物理内核
在这种情况下,您可以为 PMD 在每个 NUMA 节点上分配两个物理内核。剩余的内核(没有为 OvsDpdkCoreList保留)已分配给客户机实例。生成的参数设置有:
OvsPmdCoreList: “2,3,4,5,10,11,12,13” NovaVcpuPinSet: “6,7,14,15”
OvsPmdCoreList: “2,3,4,5,10,11,12,13”
NovaVcpuPinSet: “6,7,14,15”
红帽建议每个 NUMA 节点使用 1 个物理内核。