スイッチのパフォーマンスを机上計算する方法

提供:hkatou_Lab

10G ポート世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。

このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。

Cisco Catalyst C9500-32C でワイヤレートが実現できる最小パケットサイズの計算方法

C9500-32C は 100 G を 32 ポート搭載する、Cisco のエンタープライズ向けスイッチで、この機種を例にして計算してみます。

手順は以下になります。

  1. データシートで pps を調査する
  2. 1 ポートあたりの bps 値を調査する
  3. 1 ポートあたりの pps 値を調査する
  4. 理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる
  5. 1 ポートあたりの pps / 最大の pps 値で割合を計算する
  6. 64 Bytes / 割合でそのスイッチの最大 pps を割り出す

データシートで pps を調査する

Cisco Catalyst 9500 Series Switches Data SheetCisco Catalyst 9500 models を参照すると、

Up to 6.4 Tbps switching capacity with up to 2 Bpps of forwarding performance とあり、

6.4 Tbps のスイッチング容量と、2 Billion (10 億) pps (パケット パー セカンド = 1 秒あたりのパケット転送数) のパフォーマンスと読み取れます。


また Switch performance を参照すると、C9500-32C が上記の値を持っていることが確認できます。

このように SKU のポート構成によっては bps / pps の値が異なるため、調査対象の型式の bps / pps を確認します。

1 ポートあたりの bps 値を調査する

pps とは直接関係しませんが、上記の bps の値がどのように計算されているか確認してみます。

前述の通り C9500-32C は 100 G x 32 ポートのスイッチなので、

100 G x 32 ポート = 3.2 Tbps

となり、データシートの 6.4 Tbps とは一致しません。これは 100 G ポートが全二重であるため、 Tx 100 G + Rx 100 G で 1 ポートの合計パフォーマンスが 200 Gbps である点が、上記計算から抜けています。

100 G x 2 (全二重) x 32 ポート = 6.4 Tbps

これでデータシートの値と計算結果が一致しました。

1 ポートあたりの pps 値を調査する

bps と同様に pps も計算してみます。C9500-32C の最大 pps は 2 B pps ですから、

2,000,000,000 pps / 32 ポート / 2 (全二重) = 31,250,000 pps @ 100G x 1P

100 G ポート x1 の Tx で 31,250,000 pps が最大 pps になると考えられます。

ただ、データシートの pps は「Forwarding rate = 2 B pps」と書かれているため、

全二重の /2 は計算しなくて良い可能性もあります。

  • Forwarding は Tx のみとも解釈できる

楽観的な値としては、全二重を計算外とした、

2,000,000,000 pps / 32 ポート / = 62,500,000 pps @ 100G x 1P

になります。

理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる

イーサネットにおける最大 pps は、RFC2544 [1]に記載があります。

RFC2544 - Benchmarking Methodology for Network Interconnect Devices
https://www.ietf.org/rfc/rfc2544.txt
Appendix B: Maximum frame rates reference

      (Provided by Roger Beeman, Cisco Systems)
        Size       Ethernet    16Mb Token Ring      FDDI
       (bytes)       (pps)           (pps)         (pps)
       64            14880           24691         152439

Ethernet 10 Mbps ポートの最大 pps は 14,880 pps ですので、速度を増加させて計算すると、

64 Bytes frame Ethernet wirerate
-  10 Mbps      14,880 pps
- 100 Mbps     148,800 pps
-   1 Gbps   1,488,000 pps
-  10 Gbps  14,880,000 pps
- 100 Gbps 148,800,000 pps

となり、148,800,000 pps が 100 G ポートにおける理論上の最大値となります。

1 ポートあたりの pps / 最大の pps 値で割合を計算する

C9500-32C の pps を理論上の最大値で割ることで、理論値に対してスイッチはどのくらいのパフォーマンスとなるか、割合を出すことができます。

全二重を考慮した悲観的な計算の場合

C9500-32C 31,250,000 pps / Wirerate 148,800,000 pps = 0.21.. = 21%

全二重を考慮しない楽観的な計算の場合

C9500-32C 62,500,000 pps / Wirerate 148,800,000 pps = 0.42.. = 42%

この結果から、C9500-32C は理論値に対して 21% or 42% の pps パフォーマンスを持つ

という結論が得られます。


64 Bytes / 割合でそのスイッチの最大 pps を割り出す

理論上最大のショート パケットサイズである 64 bytes を、スイッチの pps パフォーマンスの割合で割ることで、スイッチでワイヤレートが出る最小パケットサイズを割り出すことができます。

  • 厳密には 64 bytes はフレーム長ですが、ここでは pps と単位を揃えるため、あえてパケットで表記を統一しています

全二重を考慮した悲観的な計算の場合

64 bytes / 0.21 (%) = 304.7 Bytes

全二重を考慮しない楽観的な計算の場合

64 bytes / 0.42 (%) = 152.3 Bytes

この計算から、304 Bytes or 152 Bytes がワイヤレートを実現できる最小パケットサイズと計算できました。

結論

C9500-32C でワイヤレートを実現できるパケットサイズは、机上計算で 304 Bytes or 152 Bytes です。

現実のインターネットでは IMIX のフレームサイズをワイヤレートで実現できれば良いケースがほとんどであるため、IMIX の平均値とされる 354 Bytes は、C9500-32C の 304 Bytes でクリアできるため、多くのケースで問題はありません。


この計算結果をもとに、試験仕様書・項目表を設計・作成し、IXIA などの測定器でパケットをスイッチに印加して、実際の最小パケットサイズはいくつなのか試験します。

その他

100 G 世代の機器では、1 フローだとパフォーマンスが出ない機器が存在します。

内部的に xx Gbps x N で 100 G として動作するアーキテクチャを持っている場合などが該当し、

N フロー以上だとワイヤレートが出せる、といった情報が重要になる場合があります。

  • 例) 高パフォーマンスのサーバ to サーバの通信で、IP の組み合わせが極端に少ない場合はフロー数が限られるため、100 G が出ない

リファレンス

Cisco Catalyst 9500 Series Switches Data Sheet

RFC2544 - Benchmarking Methodology for Network Interconnect Devices

ネットワーク機器のベンチマーキング試験

引用

  1. RFC2544 - Benchmarking Methodology for Network Interconnect Devices Appendix B: Maximum frame rates reference (Provided by Roger Beeman, Cisco Systems) Size Ethernet 16Mb Token Ring FDDI (bytes) (pps) (pps) (pps) 64 14880 24691 152439