Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

cRPDでのシャーディングとUpdateIO

シャーディング

BGPプロセスを複数のスレッドに分割し、RIBシャーディングを介してマルチコアルーティングエンジン上で同時に実行することで、コンバージェンス時間を短縮し、パフォーマンスを向上させます。BGP RIBシャーディングは、BGP RIBを複数のサブRIBに分割し、各サブRIBがBGPルートのサブセットを処理します。各サブRIBは、並列処理を実現するために個別のRPDスレッドによってサービスされます。

BGP RIBシャーディングは、デフォルトで無効になっています。この機能は、ルーティングエンジンに複数のコアがある 64ビットルーティングプロトコルプロセス(rpd)でのみサポートされています。この機能は、少なくとも 4 つの CPU コアと 16 GB のメモリを搭載したデバイスで設定することをお勧めします。

ルーティングエンジンでrib-shardingを設定すると、RPDはシャーディングスレッドを作成します。デフォルトでは、作成されるシャーディングスレッドの数は、ルーティングエンジンのCPUコア数と同じです。オプションで、作成するシャードの数を指定できます。現在、範囲は 1 から 31 です。

cRPDでのBGP RIBシャーディングは、以下のテーブルをサポートします。

  • inet.0 そして inet6.0

  • bgp.l3vpn.0 そして bgp.l3vpn-inet6.0

  • bgp.rtargetinet6-vpn unicast、および route-target

この機能を有効にするには、edit system processes routing bgp階層レベルでrib-shardingを設定します。シャーディングは、UpdateIO スレッド機能に依存します。そのため、シャーディングを構成する場合は、UpdateIO スレッド機能が必須です。updateIO を有効にするには、rib-sharding設定がコミット チェックに合格するように、[edit system processes routing bgp] 階層レベルで update-threading を設定する必要があります。

アップデートIO

BGPプロトコルは、BGPグループ内のピアに対して更新メッセージの生成を行うように機能します。メインRPDスレッドのBGP作業は、BGPアップデートIOスレッドと呼ばれる異なるスレッドに分割されます。各UpdateIOスレッドは、1つ以上のBGPピアグループのアップデートを生成する役割を担います。BGPアップデートスレッドは、異なるアップデートスレッドによって処理されている他のグループから独立して、並行してグループのアップデートを構築します。

これは、多くのグループに分散する多くのピアにアドバタイズするような、書き込み量が膨大な作業負荷において、大幅なコンバージェンスの改善をもたらすかもしれません。BGPアップデートIOスレッドは、RIBシャーディング機能とは別に設定できます。しかし、RIBシャーディングでは、アウトバウンドBGPアップデートにおけるプレフィックス・パッキングを改善し、パフォーマンスを向上させるため、これらは必須です。

BGPアップデート・スレッドはデフォルトで無効になっています。ルーティング・エンジンでupdate-threadingを設定すると、RPDはアップデート・スレッドを作成します。デフォルトでは、作成されるアップデート・スレッドの数は、ルーティング・エンジンのCPUコア数と同じになります。アップデートのスレッドは、64ビットのルーティングプロトコルプロセス(RPD)でのみサポートされています。オプションで、edit system processes routing bgp階層レベルで ステートメントを使用してset update-threading <number-of-threads>作成するスレッド数を指定できます。現在、範囲は 1 から 128 です。