デフィシットラウンドロビン(DRR)は、デフィシット加重ラウンドロビン(DWRR )とも呼ばれ、ネットワークスケジューラのスケジューリングアルゴリズムです。DRRは、加重公平キューイング(WFQ)と同様に、理想的な一般化プロセッサ共有(GPS)ポリシーのパケットベースの実装です。これは、効率的( O(1)の計算量)かつ公平なアルゴリズムとして、1995年にM. ShreedharとG. Vargheseによって提案されました。 [1]
詳細
DRRでは、N個のフローを処理するスケジューラ[a]は、フローごとに1つの量子を使用して設定されます。この全体的な考え方は、各ラウンドでフローは最大バイトを送信でき、残りがあれば次のラウンドに報告されるというものです。このように、フローが長期的に達成する最小レートは です。ここで はリンクレートです。
アルゴリズム
DRR は、空でないキューをすべて順番にスキャンします。空でないキューが選択されると、その不足カウンタがその量子値だけ増加します。次に、不足カウンタの値は、このターンに送信できる最大バイト数です。不足カウンタがキューの先頭 (HoQ) のパケット サイズより大きい場合、このパケットは送信でき、カウンタの値はパケット サイズだけ減少します。次に、次のパケットのサイズがカウンタ値と比較されます。キューが空になるか、カウンタの値が不十分になると、スケジューラは次のキューに進みます。キューが空の場合、不足カウンタの値は 0 にリセットされます。
変数と定数
const integer N // キューの数
const integer Q[1..N] // キュークォンタムごと
整数DC[1..N] // キューごとの不足カウンタ
queue queue[1..N] // キュー
スケジューリングループ
while true do
for i in 1..N do
if not queue[i].empty() then
DC[i]:= DC[i] + Q[i]
( queue[i].empty() ではなく、
DC[i] ≥ queue[i].head().size() )の場合、
DC[i] := DC[i] − キュー[i].head().size()
送信(キュー[i].head())
キュー[i].dequeue()
終了 while
if queue[i].empty() then
DC[i] := 0
end if
end if
end for
end while
パフォーマンス: 公平性、複雑さ、遅延
他の GPS のようなスケジューリング アルゴリズムと同様に、重みの選択はネットワーク管理者に任されています。
WFQ と同様に、DRR はパケットのサイズに関係なく、各フローに最小レートを提供します。加重ラウンドロビン スケジューリングでは、使用される帯域幅の割合はパケットのサイズによって異なります。
WFQスケジューラの複雑度はO(log(n))(nはアクティブなフロー/キューの数)であるのに対し、量子がこのフローの最大パケットサイズより大きい場合、 DRRの複雑度はO(1)です。ただし、この効率にはコストが伴います。つまり、レイテンシ、つまり理想的なGPSまでの距離は、WFQよりもDRRの方が長くなります。[2]最悪の場合のレイテンシの詳細については、こちらをご覧ください。[3]
実装
デフィシットラウンドロビンアルゴリズムの実装は、Linuxカーネル[4]用にPatrick McHardyによって書かれ、GNU General Public Licenseの下で公開されました。
CiscoとJuniperのルータでは、DRRの修正版が実装されています。DRRの遅延は一部のトラフィッククラスでは大きくなる可能性があるため、これらの修正版では一部のキューに高い優先度を与え、他のキューには標準のDRRアルゴリズムを適用しています。[5] [6]
参照
注記
- ^ フローはキュー、クラス、セッションとも呼ばれます
参考文献
- ^ Shreedhar, M.; Varghese, G. (1995 年 10 月). 「デフィシットラウンドロビンを使用した効率的な公平キューイング」. ACM SIGCOMM コンピュータ通信レビュー. 25 (4): 231. doi :10.1145/217391.217453. ISSN 0146-4833.
- ^ Lenzini, L.; Mingozzi, E.; Stea, G. (2002). 「Aliquem: O(1) の複雑さでより優れたレイテンシと公平性を実現する新しい DRR 実装」IEEE 2002 第 10 回 IEEE 国際サービス品質ワークショップ (カタログ番号 02EX564)。pp. 77–86。doi :10.1109 / IWQoS.2002.1006576。ISBN 978-0-7803-7426-3. S2CID 62158653。
- ^ Tabatabaee, Seyed Mohammadhossein; Le Boudec, Jean-Yves (2021年5月). 「Deficit Round-Robin: A Second Network Calculus Analysis」. 2021 IEEE 27th Real-Time and Embedded Technology and Applications Symposium (RTAS) (PDF) . ナッシュビル、テネシー州、米国: IEEE. pp. 171–183. doi :10.1109/RTAS52030.2021.00022. ISBN 978-1-6654-0386-3. S2CID 235294011。
- ^ 「DRR Linuxカーネルネットワークスケジューラモジュール」。kernel.org 。2013年9月7日閲覧。
- ^ Lenzini, Luciano; Mingozzi, Enzo; Stea, Giovanni (2007). 「修正された Deficit Round Robin スケジューラのパフォーマンス分析」. IOS Journal of High Speed Networks . 16 (4): 399–422.
- ^ レンチーニ、ルチアーノ;ミンゴッツィ、エンツォ。ステア、ジョバンニ (2006)。修正された赤字ラウンドロビン スケジューラのパフォーマンス分析(技術レポート)。ピサ大学情報局ディパルティメント。
外部リンク
- UC Berkeley EE122 講義: デフィシットラウンドロビンを使用した効率的な公平キューイング
