5.4. 2 NUMA ノード設定の OVS-DPDK デプロイメントの例
次の例の Red Hat OpenStack Services on OpenShift (RHOSO) Compute ノードには、2 つの NUMA ノードが含まれています。
- NUMA 0 には論理コア 0 - 7 (物理コア 4 つ) があります。シブリングスレッドのペアは (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 に接続されています。
図5.2 OVS-DPDK: 2 つの NUMA ノードの例
注記
各 NUMA ノード上の 1 番目の物理コアまたは両スレッドペア (0、1 および 8、9) は、データパス以外の DPDK プロセス用に確保します。
この例では、MTU が 1500 に設定されており、全ユースケースで OvsDpdkSocketMemory が同じであることも前提です。
OvsDpdkSocketMemory: "1024,1024"
- NIC 1 は DPDK 用で、1 つの物理コアは PMD 用
- このユースケースでは、NUMA 0 の物理コアの 1 つを PMD 用に割り当てます。NUMA 1 の NIC では DPDK は有効化されていませんが、その NUMA ノードの物理コアの 1 つも割り当てる必要があります。残りのコアはゲストインスタンスに割り当てられます。その結果、パラメーターの設定は以下のようになります。
edpm_ovs_dpdk_pmd_core_list: "2,3,10,11"
cpu_dedicated_set: "4,5,6,7,12,13,14,15"
- NIC 1 は DPDK 用で、2 つの物理コアは PMD 用
- このユースケースでは、NUMA 0 の物理コアの 2 つを PMD 用に割り当てます。NUMA 1 の NIC では DPDK は有効化されていませんが、その NUMA ノードの物理コアの 1 つも割り当てる必要があります。残りのコアはゲストインスタンスに割り当てられます。その結果、パラメーターの設定は以下のようになります。
edpm_ovs_dpdk_pmd_core_list: "2,3,4,5,10,11"
cpu_dedicated_set: "6,7,12,13,14,15"
- NIC 2 は DPDK 用で、1 つの物理コアは PMD 用
- このユースケースでは、NUMA 1 の物理コアの 1 つを PMD 用に割り当てます。NUMA 0 の NIC では DPDK は有効化されていませんが、その NUMA ノードの物理コアの 1 つも割り当てる必要があります。残りのコアはゲストインスタンスに割り当てられます。その結果、パラメーターの設定は以下のようになります。
edpm_ovs_dpdk_pmd_core_list: "2,3,10,11"
cpu_dedicated_set: "4,5,6,7,12,13,14,15"
- NIC 2 は DPDK 用で、2 つの物理コアは PMD 用
- このユースケースでは、NUMA 1 の物理コアの 2 つを PMD 用に割り当てます。NUMA 0 の NIC では DPDK は有効化されていませんが、その NUMA ノードの物理コアの 1 つも割り当てる必要があります。残りのコアはゲストインスタンスに割り当てられます。その結果、パラメーターの設定は以下のようになります。
edpm_ovs_dpdk_pmd_core_list: "2,3,10,11,12,13"
cpu_dedicated_set: "4,5,6,7,14,15"
- NIC 1 と NIC2 は DPDK 用で、2 つの物理コアは PMD 用
- このユースケースでは、各 NUMA ノードの物理コアの 2 つを PMD 用に割り当てます。残りのコアはゲストインスタンスに割り当てられます。その結果、パラメーターの設定は以下のようになります。
edpm_ovs_dpdk_pmd_core_list: "2,3,4,5,10,11,12,13"
cpu_dedicated_set: "6,7,14,15"