web-dev-qa-db-ja.com

TC(Linux Qos Utility)は、ターゲットアプリケーションの帯域幅の使用を制限できますか?

サーバーのネットワーク内にある同じサーバーマシン上で多くのアプリケーションが実行されています。アプリケーションの帯域幅を特定の値に制限したいと考えています。だからここにいくつかの選択肢があります:

   suppose we have three apps: A, B, and C.
   1) Use Linux (kernel 2.6) QoS Utilities to limit the bandwidth of
      these three applications.            
   2) Develop our own application to limit the bandwidth.

もちろん最初のものが好ましいですが、Linuxが提供するqosユーティリティが私たちの要件を満たすことができるかどうかを知る必要があります。最初に確認することは、TCのようなQosツールが複数のアプリケーション(アプリケーション名などを指定する)の帯域幅を制限する手段を提供するかどうかです。

3
Steve Peng

このページ から取得した次の例で指定されているように、u32セレクターを使用できます。ここでは、関心のある行のみを示しています。

match u32 00000016 0000ffff at nexthdr+0

この例は、宛先ポートの値0x16に一致します(TCPヘッダー)の先頭から3番目と4番目のバイト)。

これは、宛先ポートに基づいてそれを行う方法を理解するための単なる例です。

1
Khaled

うん、linux/tcはあなたが必要とすることをすることができます、tcはあなたが広いレベルでトラフィックにマッチするようにフィルターをセットアップすることを可能にします、あなたはパケットをマークしてこれらのマークにマッチするためにiptablesを使うこともできます。ただし、特定のアプリケーションのネットワークトラフィックを一致させようとすると、これは難しくなります。専用ユーザーとしてプロセスを実行し、iptables owner matchを使用してこれらのパケットにQoSのタグを付けることをお勧めします。その後、これらのタグでtcを使用できます。

0
s3c