要約

  • 輻輳通知の開始地点はキューごとに設定されるしきい値であり、ポート速度の区分から自動的に決まる値ではない。
  • Arista EOSのマニュアルは、その設定コマンドをスイッチチップの系列つきで示している。同じ設定を異なる世代のスイッチにそのまま複製できるとは限らない。

ブレーキはパケットのどこに書かれるのか

仕組みから始めよう。RFC 3168は、IPv4のTOSオクテットの6ビット目と7ビット目をECNフィールドとして指定し、同じフィールドがIPv6のTraffic Classオクテットでも同一に定義されると述べている。2ビットなのでコードポイントは4つ、00 がNot-ECT、01 がECT(1)、10 がECT(0)、11 がCE(Congestion Experienced)だ。輻輳の初期兆候を検知したルーターは、ECN対応のパケットを捨てる代わりにCEの印を付ける(RFC 3168)。

ここで標準が決めていないことが一つ残る。どの程度混んだら印を付け始めるのか、という値だ。RFCはフィールドの意味と、印を付ける側の振る舞いを定める。開始地点の数字は、機器を運用する側の持ち物である。

マニュアルが公開している設定面

AristaのEOS 4.37.0F、Quality of Serviceのページは、この開始地点がどこで決まるのかを具体的に書いている。ECNはユニキャストキューに対して、Weighted Random Early Detection(WRED)を通じてサポートされる。WREDはRandom Early Detectionを拡張し、個々のキューに対して複数のしきい値を定義する能動的キュー管理(AQM)アルゴリズムだ。そして random-detect ecn コマンドが、コンフィギュレーションモードのユニキャスト送信キューに対してECNマーキングを有効にし、しきい値となるキューサイズを指定する(Arista EOS 4.37.0F Quality of Service)。

遅延ベースのECNは送信キュー単位で設定できる。マニュアルの実例は、interface Ethernet 1/1 に入り、tx-queue 3 を選び、random-detect ecn delay threshold 33 milliseconds を設定する、という3行で示されている。同じページである。

33ミリ秒は推奨値ではない

この33という数字を、Aristaが推奨する設定だと読むのは間違いだ。マニュアルが示しているのは構文の例であって、あるワークロードやあるファブリック構成に対する校正済みの値ではない。読者が持ち帰るべきなのは数字そのものではなく、この種の値がコマンドライン上に存在し、機器ごとに投入される、という事実のほうである。

しきい値が遅すぎれば、キューは伸び続け、やがて破棄か、ロスレス構成なら隣のキューへの押し返しに行き着く。早すぎれば、ファブリックが飽和していないのに送信側が速度を落とす。どちらの結末も、エンジニアが打ち込んだ値の帰結であって、シリコンの性格ではない。

(Arad/Jericho) という注記

マニュアルのコマンド表記には、random-detect ecn (Arad/Jericho) という形でプラットフォーム系列の注記が付いている。つまり構文と挙動がスイッチチップに結びついており、製品ライン全体で一様ではない。第一者ドキュメントがこの形で書かれていること自体が、ファブリック全体の一貫性が運用側の仕事であることを示している。

大規模なAIクラスタでは、同一世代のチップを揃えられるとは限らない。調達時期がずれれば世代が混ざる。そのとき、同じ「33ミリ秒」を同じ意味で投入できるかどうかは、ベンダーのデータシートではなく、こちらの設定台帳が答えを出す。

ポート速度を上げても設定はついてこない

速いレーンは、同じキューに速くパケットを運んでくる。到着が速くなればキューが伸びる速度も上がるが、印を付け始める地点は自動では動かない。400Gから800Gへ切り替えたところで、random-detect ecn delay threshold の後ろの数字が書き換わるわけではない。

ここが、AIバックエンドの議論で見落とされやすいところだ。ポート速度と光モジュールは調達表に載り、比較され、発注される。キューごとのマーキングしきい値は、同じ調達表には載らない。それでも、ファブリックが混雑時にどう振る舞うかを決めるのは後者である。

証拠の境界

この記事の技術的な主張は、テキストとして読めた2つの一次資料に限定されている。Arista EOS 4.37.0FのQuality of Serviceページと、RFC 3168である。

一方で、Priority Flow Controlのページ、Traffic Managementのページ、AI networkingのページは、このレビュー中に読み取り可能な本文を取得できなかった。

したがって、ノードロップ優先度の構文、ポーズウォッチドッグの挙動や発動条件、ポーズしきい値やヘッドルームがポート速度・ケーブル長・スイッチ系列に依存するかどうか、キューごとのバッファ配分や共有バッファ予約が設定可能かどうか、GPUバックエンド向けのトポロジ指針、検証済みプロファイルについては、何も主張しない。取得できなかったことは、それらが存在しない証拠ではない。

Arista Networks, Inc.の会社情報は、ディレクトリのエントリに置かれている。