「スイッチのパフォーマンスを机上計算する方法」の版間の差分
ページの作成:「10G 世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。 このドキュメントでは…」 |
|||
(同じ利用者による、間の7版が非表示) | |||
1行目: | 1行目: | ||
10G | 10G ポート世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。 | ||
このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。 | このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。 | ||
11行目: | 11行目: | ||
# 1 ポートあたりの bps 値を調査する | # 1 ポートあたりの bps 値を調査する | ||
# 1 ポートあたりの pps 値を調査する | # 1 ポートあたりの pps 値を調査する | ||
# | # 理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる | ||
# 1 ポートあたりの pps / | # 1 ポートあたりの pps / 最大の pps 値で割合を計算する | ||
# 64 Bytes / | # 64 Bytes / 割合でそのスイッチの最大 pps を割り出す | ||
=== データシートで pps を調査する === | === データシートで pps を調査する === | ||
20行目: | 20行目: | ||
Up to 6.4 Tbps switching capacity with up to 2 Bpps of forwarding performance とあり、 | Up to 6.4 Tbps switching capacity with up to 2 Bpps of forwarding performance とあり、 | ||
'''6.4 Tbps''' のスイッチング容量と、'''2 Billion (10 億) pps''' のパフォーマンスと読み取れます。 | '''6.4 Tbps''' のスイッチング容量と、'''2 Billion (10 億) pps''' (パケット パー セカンド = 1 秒あたりのパケット転送数) のパフォーマンスと読み取れます。 | ||
また S[https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-9500-series-switches/nb-06-cat9500-ser-data-sheet-cte-en.html#Switchperformance witch performance] を参照すると、C9500-32C が上記の値を持っていることが確認できます。 | また S[https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-9500-series-switches/nb-06-cat9500-ser-data-sheet-cte-en.html#Switchperformance witch performance] を参照すると、C9500-32C が上記の値を持っていることが確認できます。 | ||
このように SKU のポート構成によっては bps / pps | このように SKU のポート構成によっては bps / pps の値が異なるため、'''調査対象の型式の bps / pps''' を確認します。 | ||
=== 1 ポートあたりの bps 値を調査する === | === 1 ポートあたりの bps 値を調査する === | ||
pps とは直接関係しませんが、上記の | pps とは直接関係しませんが、上記の bps の値がどのように計算されているか確認してみます。 | ||
前述の通り C9500-32C は 100 G x 32 ポートのスイッチなので、<syntaxhighlight lang="diff"> | 前述の通り C9500-32C は 100 G x 32 ポートのスイッチなので、<syntaxhighlight lang="diff"> | ||
34行目: | 34行目: | ||
</syntaxhighlight>となり、データシートの '''6.4 Tbps とは一致しません'''。これは 100 G ポートが'''全二重'''であるため、 | </syntaxhighlight>となり、データシートの '''6.4 Tbps とは一致しません'''。これは 100 G ポートが'''全二重'''であるため、 | ||
Tx 100 G + Rx 100 G で 1 ポートの合計パフォーマンスが 200 Gbps | Tx 100 G + Rx 100 G で 1 ポートの合計パフォーマンスが 200 Gbps である点が、上記計算から抜けています。<syntaxhighlight lang="diff"> | ||
100 G x 2 (全二重) x 32 ポート = 6.4 Tbps | 100 G x 2 (全二重) x 32 ポート = 6.4 Tbps | ||
</syntaxhighlight>これで'''データシートの値と計算結果が一致'''しました。 | </syntaxhighlight>これで'''データシートの値と計算結果が一致'''しました。 | ||
53行目: | 53行目: | ||
</syntaxhighlight>になります。 | </syntaxhighlight>になります。 | ||
=== | === 理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる === | ||
イーサネットにおける最大 pps は、RFC2544 <ref>[https://www.ietf.org/rfc/rfc2544.txt RFC2544 - Benchmarking Methodology for Network Interconnect Devices] | |||
Appendix B: Maximum frame rates reference | Appendix B: Maximum frame rates reference | ||
63行目: | 63行目: | ||
(bytes) (pps) (pps) (pps) | (bytes) (pps) (pps) (pps) | ||
64 14880 24691 152439</ref>に記載があります。 | 64 14880 24691 152439</ref>に記載があります。<syntaxhighlight lang="diff"> | ||
RFC2544 - Benchmarking Methodology for Network Interconnect Devices | |||
https://www.ietf.org/rfc/rfc2544.txt | |||
Appendix B: Maximum frame rates reference | |||
10 Mbps ポートの最大 pps は 14,880 pps | (Provided by Roger Beeman, Cisco Systems) | ||
Size Ethernet 16Mb Token Ring FDDI | |||
(bytes) (pps) (pps) (pps) | |||
64 14880 24691 152439 | |||
</syntaxhighlight> | |||
Ethernet 10 Mbps ポートの最大 pps は 14,880 pps ですので、速度を増加させて計算すると、<syntaxhighlight lang="diff"> | |||
64 Bytes frame Ethernet wirerate | 64 Bytes frame Ethernet wirerate | ||
- 10 Mbps 14,880 pps | - 10 Mbps 14,880 pps | ||
73行目: | 82行目: | ||
- 100 Gbps 148,800,000 pps | - 100 Gbps 148,800,000 pps | ||
</syntaxhighlight>となり、'''148,800,000 pps''' が 100 G | </syntaxhighlight>となり、'''148,800,000 pps''' が 100 G ポートにおける理論上の最大値となります。 | ||
=== 1 ポートあたりの pps / | === 1 ポートあたりの pps / 最大の pps 値で割合を計算する === | ||
C9500-32C の pps | C9500-32C の pps を理論上の最大値で割ることで、理論値に対してスイッチはどのくらいのパフォーマンスとなるか、割合を出すことができます。 | ||
==== 全二重を考慮した悲観的な計算の場合 ==== | ==== 全二重を考慮した悲観的な計算の場合 ==== | ||
92行目: | 101行目: | ||
=== 64 Bytes / | === 64 Bytes / 割合でそのスイッチの最大 pps を割り出す === | ||
理論上最大のショート パケットサイズである 64 bytes を、スイッチの pps パフォーマンスの割合で割ることで、'''スイッチでワイヤレートが出る最小パケットサイズを割り出す'''ことができます。 | |||
* 厳密には '''64 bytes はフレーム長'''ですが、ここでは pps と単位を揃えるため、あえてパケットで表記を統一しています | * 厳密には '''64 bytes はフレーム長'''ですが、ここでは pps と単位を揃えるため、あえてパケットで表記を統一しています | ||
108行目: | 117行目: | ||
=== 結論 === | === 結論 === | ||
C9500-32C | C9500-32C でワイヤレートを実現できるパケットサイズは、机上計算で 304 Bytes or 152 Bytes です。 | ||
現実のインターネットでは IMIX のフレームサイズをワイヤレートで実現できれば良いケースがほとんどであるため、IMIX の平均値とされる 354 Bytes は、C9500-32C の 304 Bytes でクリアできるため、多くのケースで問題はありません。 | 現実のインターネットでは IMIX のフレームサイズをワイヤレートで実現できれば良いケースがほとんどであるため、IMIX の平均値とされる 354 Bytes は、C9500-32C の 304 Bytes でクリアできるため、多くのケースで問題はありません。 | ||
116行目: | 125行目: | ||
== その他 == | == その他 == | ||
100 G | 100 G 世代の機器では、1 フローだとパフォーマンスが出ない機器が存在します。 | ||
内部的に xx Gbps x N で 100 G | 内部的に xx Gbps x N で 100 G として動作するアーキテクチャを持っている場合などが該当し、 | ||
N フロー以上だとワイヤレートが出せる、といった情報が重要になる場合があります。 | |||
* 例) 高パフォーマンスのサーバ to サーバの通信で、IP の組み合わせが極端に少ない場合はフロー数が限られるため、100 G が出ない | * 例) 高パフォーマンスのサーバ to サーバの通信で、IP の組み合わせが極端に少ない場合はフロー数が限られるため、100 G が出ない | ||
130行目: | 139行目: | ||
[https://www.janog.gr.jp/meeting/janog27.5/doc/janog27_5-benchmark-pub-shtsuch.pdf ネットワーク機器のベンチマーキング試験] | [https://www.janog.gr.jp/meeting/janog27.5/doc/janog27_5-benchmark-pub-shtsuch.pdf ネットワーク機器のベンチマーキング試験] | ||
== 引用 == | |||
[[カテゴリ:Catalyst]] | [[カテゴリ:Catalyst]] | ||
[[カテゴリ:Catalyst 9000]] | [[カテゴリ:Catalyst 9000]] |
2023年1月24日 (火) 17:27時点における最新版
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