
tc
SFQ(Random Fair Queuing)を使用すると、公正な帯域幅共有を構成するのは非常に簡単です。流れただし、アプリケーションは複数のストリームを開いてインポートできます。不正な帯域幅の共有。互いに公平な帯域幅共有を構成することは可能ですか?アプリケーション代わりに?
各アプリケーションをcgroupにグループ化することは、明らかな最初のステップのように見えます。 SFQがクラスIDハッシュをサポートしている場合は、tc filter
各cgroupにクラスIDを簡単に割り当てることができます。残念ながら、SFQはそれをサポートしていないようです。別の有望なアプローチは、カテゴリ全体で重み付けサイクルを実行するCBQを使用することである。残念ながら、重みをすべて同じにするのはうまくいかないようです。
cgroup間で帯域幅を公平に共有する別の方法はありますか?
答え1
net_cls cgroup コントローラを確認してください。デフォルトでは、特別なタグ(/mntpoint/net_cls.classid
そのcgroupのアプリケーションに関連付けられているソケットから始まるすべてのパケットで定義されています)を追加します。後でclassid
qdisc にリンクされたフィルタでこの「タグ」を使用して、トラフィックが発生する cgroup に基づいてさまざまなクラスにトラフィックを転送できます。
このトピックについて私が見つけた唯一の文書は次のとおりです。いくつかのRed Hatスライド[Google経由のHTML]。