7.4. 手動で計算した OVS-DPDK のパラメーターについての概要
本項では、Data Plane Development Kit 対応 Open vSwitch(OVS-DPDK)が director の network_environment.yaml heat テンプレート内のパラメーターを使用して CPU とメモリーを設定し、パフォーマンスを最適化する方法について説明します。この情報を使用して、コンピュートノードでのハードウェアサポートを評価すると共に、そのハードウェアを分割して OVS-DPDK デプロイメントを最適化する最も有効な方法を評価します。
これらの値を自動的に生成する必要がある場合は、derived_parameters.yaml ワークフローを使用できます。詳細は、「 ワークフローと派生パラメーターの概要」を参照してください。
CPU コアを割り当てる際には必ず、論理 CPU と呼ばれる CPU シブリングスレッドをペアにして、物理コアの CPU シブリングスレッドをペアにします。
コンピュートノード上の CPU と NUMA ノードを特定するには、「 NUMA ノードのトポロジーについての理解」を 参照してください。この情報を使用して、CPU と他のパラメーターをマッピングして、ホスト、ゲストインスタンス、OVS-DPDK プロセスのニーズに対応します。
7.4.1. CPU パラメーター リンクのコピーリンクがクリップボードにコピーされました!
OVS-DPDK は以下の CPU パーティション設定パラメーターを使用します。
- OvsPmdCoreList
DPDK Poll Mode Driver (PMD) に使用する CPU コアを提供します。DPDK インターフェースのローカルの NUMA ノードに関連付けられた CPU コアを選択します。
OvsPmdCoreListは、Open vSwitch のpmd-cpu-maskの値に使用されます。OvsPmdCoreListパラメーターを使用して、以下の設定を設定します。- シブリングスレッドをペアにします。
-
OvsDpdkCoreListのコアをすべて除外します。 -
両方の NUMA ノード上の 1 番目の物理コアの論理 CPU または両方のスレッドシブリングが割り当てられないようにしてください。これらは
OvsDpdkCoreListパラメーターに使用する必要があります。 - パフォーマンスは、この PMD コアリストに割り当てられる物理コア数によって異なります。DPDK NIC に関連付けられた NUMA ノードで、必要なコアを割り当てます。
DPDK 用の NIC が 1 つある NUMA ノードの場合:
- パフォーマンス要件に基づいて必要な物理コア数を決定し、各物理コアのシブリングスレッドまたは論理 CPU を組み込みます。
DPDK 用の NIC がない NUMA ノードの場合:
- NUMA ノードの最初の物理コアを除く、1 つの物理コアのシブリングスレッド(論理 CPU)を割り当てます。
NUMA ノードに DPDK NIC が関連付けられていない場合でも、両方の NUMA ノードで DPDK PMD スレッドを確保する必要があります。
- NovaVcpuPinSet
CPU ピニング用のコアを設定します。コンピュートノードは、ゲストインスタンスにこれらのコアを使用します。
NovaVcpuPinSetはnova.confファイルのvcpu_pin_set値として使用されます。NovaVcpuPinSetパラメーターを使用して、以下の設定を設定します。-
OvsPmdCoreListとOvsDpdkCoreListのコアをすべて除外します。 - 残りのコアをすべて追加します。
- シブリングスレッドをペアにします。
-
- NovaComputeCpuSharedSet
-
エミュレータースレッドに使用するコアを設定します。これにより、nova.conf のパラメータ
cpu_shared_setの値が定義されます。このパラメータの値とOvsDpdkCoreListに設定した値を一致させることを推奨します。 - IsolCpusList
ホストのプロセスから分離される CPU コアのセット。このパラメーターは、
tuned-profiles-cpu-partitioningコンポーネント用のcpu-partitioning-variable.confファイルのisolated_cores値として使用されます。IsolCpusListパラメーターを使用して、以下の設定を設定します。-
OvsPmdCoreListとNovaVcpuPinSetのコア一覧が一致するようにします。 - シブリングスレッドをペアにします。
-
- OvsDpdkCoreList
handler および revalidator スレッドなどの、データパス以外の OVS-DPDK プロセス用の CPU コアを提供します。このパラメーターは、マルチ NUMA ノードハードウェア上でのデータパスの全体的なパフォーマンスには影響を与えません。このパラメーターは OVS の
dpdk-lcore-mask値に使用され、それらのコアはホストと共有されます。OvsDpdkCoreListパラメーターを使用して、以下の設定を設定します。- NUMA ノードに DPDK NIC が関連付けられていない場合でも、各 NUMA ノードから 1 番目の物理コアおよびシブリングスレッドを割り当てます。
-
これらのコアは、
OvsPmdCoreListおよびNovaVcpuPinSetのコアの一覧と相互に排他的である必要があります。