スイッチのパフォーマンスを机上計算する方法
10G ポート世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。
このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。
Cisco Catalyst C9500-32C でワイヤレートが実現できる最小パケットサイズの計算方法
C9500-32C は 100 G を 32 ポート搭載する、Cisco のエンタープライズ向けスイッチで、この機種を例にして計算してみます。
手順は以下になります。
- データシートで pps を調査する
- 1 ポートあたりの bps 値を調査する
- 1 ポートあたりの pps 値を調査する
- 理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる
- 1 ポートあたりの pps / 最大の pps 値で割合を計算する
- 64 Bytes / 割合でそのスイッチの最大 pps を割り出す
データシートで pps を調査する
Cisco Catalyst 9500 Series Switches Data Sheet の Cisco 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
引用
- ↑ 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