「スイッチのパフォーマンスを机上計算する方法」の版間の差分

提供:hkatou_Lab
ナビゲーションに移動 検索に移動
ページの作成:「10G 世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。 このドキュメントでは…」
 
 
(同じ利用者による、間の7版が非表示)
1行目: 1行目:
10G 世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。
10G ポート世代以降のスイッチは、ショートサイズのパケットだとワイヤレートが出なくなってきています。


このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。
このドキュメントでは、実機で試験する前にどのサイズのパケットだとワイヤレートがでそうか、机上で計算する方法を紹介します。
11行目: 11行目:
# 1 ポートあたりの bps 値を調査する
# 1 ポートあたりの bps 値を調査する
# 1 ポートあたりの pps 値を調査する
# 1 ポートあたりの pps 値を調査する
# 理論上最高の pps 値となるショートサイズ パケット ワイヤレートの値を調べる
# 理論上最大の pps 値となるショートサイズ パケット ワイヤレートの値を調べる
# 1 ポートあたりの pps / 最高の pps 値で割合を計算する
# 1 ポートあたりの pps / 最大の pps 値で割合を計算する
# 64 Bytes / 割合でそのスイッチの最高 pps を割り出す
# 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 の値が異なるため、調査対象の型式の bps / pps を確認します。
このように SKU のポート構成によっては bps / pps の値が異なるため、'''調査対象の型式の bps / pps''' を確認します。


=== 1 ポートあたりの bps 値を調査する ===
=== 1 ポートあたりの bps 値を調査する ===
pps とは直接関係しませんが、上記の Tbps の値がどのように計算されているか確認してみます。
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 である点が、計算から抜けています。<syntaxhighlight lang="diff">
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 値となるショートサイズ パケット ワイヤレートの値を調べる ===
イーサネットにおける最高の pps は、RFC2544 <ref>[https://www.ietf.org/rfc/rfc2544.txt RFC2544 - Benchmarking Methodology for Network Interconnect Devices]
イーサネットにおける最大 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 ですので、<syntaxhighlight lang="diff">
      (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 / 最高の pps 値で割合を計算する ===
=== 1 ポートあたりの pps / 最大の pps 値で割合を計算する ===
C9500-32C の pps を理論上最高値で割ることで、理論値に対してどのくらいのパフォーマンスとなるか、割合を出すことができます。
C9500-32C の pps を理論上の最大値で割ることで、理論値に対してスイッチはどのくらいのパフォーマンスとなるか、割合を出すことができます。


==== 全二重を考慮した悲観的な計算の場合 ====
==== 全二重を考慮した悲観的な計算の場合 ====
92行目: 101行目:




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


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


=== 結論 ===
=== 結論 ===
C9500-32C でワイヤレートを実現できるパケットサイズは、机上計算では 304 Bytes or 152 Bytes です。
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 世代では、1 フローだとパフォーマンスが出ない機器が存在します。
100 G 世代の機器では、1 フローだとパフォーマンスが出ない機器が存在します。


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


この場合は N フロー以上だとワイヤレートが出せる、といった情報が重要になる場合があります。
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 のエンタープライズ向けスイッチで、この機種を例にして計算してみます。

手順は以下になります。

  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