ルーターまたはスイッチインターフェイスのASICが、CPU割り込みの影響を非常に受けるすべてのパケット処理でx86 CPUの使用を上回ると仮定するのは正しいですか?
質問のこの部分では特定のCPU、オペレーティングシステム、またはルーターモデルを指定していないため、割り込みが制限であるかどうかを具体的に言うのは困難です。全体として、汎用CPUが適切に設計されたASICのパケット交換パフォーマンスに影響を与えないことは安全な一般化です。パフォーマンスとは、RFC 2544メトリックス、たとえば、ドロップなしの1秒あたりの転送レート(NDR)、スループット、待ち時間などのことです。
CPUベースのルーターの場所がないと言っているわけではありません。私たちの人生の経験から、CPUはASICやFPGAほど速くパケットを交換できないことがわかります。ASIC / FPGAがマルチコアCPUよりも高速であるという私の結論は、Electronics.SEに関するこのQ&Aによって補強されるようです。
PCIバスのパフォーマンス
x86バス速度は、特にレートが1Gbpsを超えると、スイッチング帯域幅に理論上の最大値を課すことを知っています。
ここで参照しているバスの制限はわかりませんが、持っている情報は多少古くなっている可能性があります。ほとんどのシステムで使用されるPCI Expressバスは、最近では10 Gbpsを大きく上回ります。
PCIe 2.0は、8b / 10bエンコードスキームを使用しており、PCIレーンエンコードオーバーヘッドに対して約20%のペナルティを科しています。エンコードのペナルティが発生する前に、PCIe 2.0はレーンあたり4Gbpsの生帯域幅を提供します。ただし、8b / 10bの20%のペナルティがあっても、PCIe 2.0 x8(8個のPCIeレーン)は25Gbpsを超えて圧縮されます。したがって、PCIe 2.0 x8カードで双方向のラインレートで単一の10GEアダプターを簡単に実行できます。
PCIe 3.0(Intel Ivy Bridgeチップセットで使用)は128b / 130bエンコードを使用します。これにより、PCIバスの効率が大幅に向上し、レーンごとの帯域幅が2倍になります。したがって、PCIe 3.0 x8カードは63Gbps(8.0 * 8 * 128/132)を提供できます。これはくしゃみをするものではありません。これらのパフォーマンスレートで、1つのライザーに2つのラインレート10GEを安全にパックできます。
シスコとVyattaのパフォーマンス
警告:ベンダーが提供するマーケティング資料をすべての比較に使用しています...
- たとえば、Catalyst 6500 Sup2T ASICスイッチング速度は、一般的なOSやSDNで見られる現実的なx86スイッチング速度と比較してどうですか?
完全に分散したスイッチングシステム(Sup2T)と集中型スイッチングシステム(Vyatta)を比較するため、これは少し難しいので、結果を注意深く解釈してください。
- Cisco 7200VXR-NPE-G2のスイッチング速度は、たとえば同じものと比較してどうですか?
VyattaはNPE-G2を水から吹き出します。NPE-G2は、Cisco NPE-G2データシートに基づいて最大2Mppsを実行できます。NPE-G2と10GEカードが詰め込まれた最新のIntel 10-Coreシステムを比較すると、これは実際には公平な比較ではありません。
同じ機能を実行する一般的なOSと比較して、典型的なルーターまたはスイッチのレイテンシはどうですか?
それは素晴らしい質問です。このホワイトペーパーでは、Vyattaのレイテンシが高いことを示していますが、Intel E5シリーズCPUに対してこの種のテストが行われることを期待しています。
概要
Sup2TとBrocade Vyatta 5600を並べて比較した要約:
- Sup2T:機能付きの60Mpps NDR IPv4(ACLなど)
- VyattaおよびIntel E5:機能なしで最大20MppsのIPv4 NDR 、または少数のドロップを受け入れることができる場合は70Mpps。
私の意見では、特にSup2Tで得られるもの(720Mpps、MPLS、無数のMIB、Layer2およびLayer3スイッチングなどへの分散スケール)を見ると、Sup2Tが依然として勝っています。
必要なのが生のスイッチングパフォーマンスだけであれば、x86 CPUからかなりのパフォーマンス値を得ることができます。ただし、実際のネットワークでは、誰が最高のドラッグレース番号を持っているかだけではありません。ほとんどの人は機能について心配する必要があります(スイッチ評価の各値にいつ焦点を合わせるべきですか?を参照)。考慮すべき大きな要因は、使用可能な機能の数と、それらがネットワークの他の部分とどのように統合されるかです。
また、会社でx86ベースのシステムを使用する運用上の実現可能性を検討する価値があります。私は自分でBrocade + Vyattaを使用したことはありませんが、良いショーコマンドを作成し、ボックスへのサポートフックを構築することはできます。それらが実際に十分な機能をサポートし、それらのシステムが実際のネットワークでうまくスケールするなら、それがあなたが好きなものであるなら、それを選んでください。
しかし、誰かが安くなり、Linuxボックス+ bird
/ quagga
+ ACL + qosを構築するだけなら、私はそのソリューションをサポートする人にはなりたくないでしょう。オープンソースコミュニティは革新的な仕事をしているが、主流のネットワークベンダー(Arista / Cisco / Force10 / Juniper)と比較すると、システムのサポート性は劣っています。一つは、唯一のを見て必要iptables
とtc
CLIを作ることができますどれだけ回旋見るために。パケットカウンターが正しくないため、ip link show
またはの出力を確認したりifconfig
、使い物にならない人から質問をすることがあります。通常、主要なネットワークベンダーは、Linux NICドライバーで見られるよりも、カウンターをテストする方がはるかに優れています。
終了ノート:
注1パフォーマンスを気にする人は誰もSup2Tを購入し、シャーシにDFCを装着することに失敗することはありません。Sup2Tは60Mppsで切り替えることができますが、DFCを搭載したシャーシは720Mppsまで拡張できます。
注2 Vyattaテストは、デュアルプロセッサー、10コアIntel E5-2670v2、コアあたり2.5Ghzで実行しました。1つのコアを2つの仮想コア(つまり、ハイパースレッディング)としてカウントすると、パケットスイッチングで合計40コアになります。VyattaはIntel x520-DA2 NICで構成され、Brocade Vyattaバージョン3.2を使用しました。