Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

フルCPUのパーティショニングと分離によるDPDK vRouterのパフォーマンスの最適化

Contrail Networking リリース 2003 では、フル CPU パーティショニングがサポートされています。CPU 分離は、コンピューティング ノード上の CPU コアをパーティション分割し、対称型マルチプロセッシング (SMP) バランシングおよびスケジューラ アルゴリズムから分離する RHEL メソッドです。完全な CPU 分離機能により、RHOSP に推奨される DPDK 設定で展開された場合に、DPDK vRouter のパフォーマンスが最適化されます。

CPU の分離により、転送コア、VNF コア、サービス コアを分離し、VNF スレッドとサービス スレッドが転送コアに処理要求を送信しないようにすることができます。CPU 分離を適用することで、専用の転送コアを DPDK VM に割り当て、DPDK vRouter に割り当てられたコアに他のプロセスが処理要求を送信しないようにすることで、vRouter のパフォーマンスが大幅に向上します。

CPU の分離とパーティション分割については、RedHat では 2 つの方法を推奨しています。1つ目は、CPUを仮想ネットワーク機能(VNF)に分割し、これらのコアをホストOSから分離する tunedと呼ばれるユーティリティを使用することです。 tuned メソッドは、 systemd プロセスを使用して、すべてのタスクを処理し、システムの起動後に CPU の分離を実行するために使用される共通 CPU の一覧から分離された CPU を削除します。

2つ目は isolcpusで、CPUをLinuxスケジューラから遠ざけるカーネルパラメータです。 tuned と同様に、 isolcpus メソッドでは、すべてのタスクの処理に使用される共通 CPU リストから分離された CPU を削除し、システムの起動時に CPU の分離を実行します。 isolcpusを有効にするには、 /etc/default/grub の GRUB 設定を変更して、分離された CPU の新しいセットが考慮されるようにする必要があります。変更を有効にするには、ノードを再起動する必要があります。

tuned を使用して CPU の分離を有効にするには、/tripleo-heat-templates/environments/contrail/contrail-services.yaml で RHOSP 用の ContrailDpdkParameters を設定し、Contrail Ansible Deployer の場合は /vrouter/agent-dpdk/entrypoint.sh ファイルの SERVICE_CORE_MASK and DPDK_CTRL_THREAD_MASK パラメータを設定します。

In contrail-services.yaml

entrypoint.sh 年

isolcpusを設定するには、GRUB で以下のパラメータを変更します。

isolcpuチューニングは、VNF(VM)に対しても行う必要があります。これは、VM がポーリング モード ドライバー (PMD) スレッド コアを保護し、他のプロセスによる CPU 使用率から分離できるようにするためです。Centos および RHEL では、CPU チューニングはユーティリティ isolcpu および tuned を使用して行われます。