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

提供: hkatou_Lab
ナビゲーションに移動 検索に移動
 
(同じ利用者による、間の5版が非表示)
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
 +
 
 +
      (Provided by Roger Beeman, Cisco Systems)
 +
        Size      Ethernet    16Mb Token Ring      FDDI
 +
      (bytes)      (pps)          (pps)        (pps)
 +
      64            14880          24691        152439
 +
</syntaxhighlight>
  
10 Mbps ポートの最大 pps は 14,880 pps ですので、<syntaxhighlight lang="diff">
+
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 が出ない

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