Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

パケットの大きな遅延バッファのCoS

コマンドと組み合わせて、非常に大きな buffer-size-temporal 遅延バッファを設定 q-pic-large-buffer できます。この buffer-size temporal オプションを併用すると q-pic-large-buffer 、インターフェイス上の1つまたは複数のキューに、超大規模な遅延バッファ割り当てを作成できます。

メモ:

設定されたバッファー サイズが小さすぎる場合、転送クラスのバッファー サイズは 9192 に設定され、「fwdd_cos_set_delay_bandwidth:queue:16 遅延バッファ サイズ(1414)が低すぎる、デフォルト 9192 に設定」というログ メッセージが表示されます。

Configuring Large Delay Buffers

次の設定は、次の例に適用されます。

  1. 1 つのインターフェイスで 2 つの VLAN(1 つのイングレス、1 つのエグレス)を設定します。この設定に対して、インターフェイス シェーピング レートは最初に定義されていません。
  2. キューにq-pic-large-buffer大きなバッファを作成するにはbuffer-size temporal、キューのオプションに加えて、同じPICのオプションを有効にします。
    メモ:

    オプションCLI使用するときに警告は表示 buffer-size temporal されない q-pic-large-buffer場合があります。を使用する buffer-size temporal場合は、設定に コマンドも含まれています q-pic-large buffer

  3. 4 つのキューに対して 4 つの転送クラス(キュー名)を定義します。
  4. スケジューラ マップに含まれる転送クラス(キュー名)をエグレス VLAN に適用して設定します。
  5. キューの優先度を設定します。最初はキューの優先度だけが定義され、送信レートやバッファー サイズは定義されていません。

Example: Simple Configuration Using Four Queues

この設定では、4 つのキューごとに 12,500,000 バイトのバッファーを割り当てられます。この最初の例では、遅延バッファ計算の限界を超えしないように、インターフェイス シェーピング レート、スケジューラ送信レート、スケジューラ バッファ サイズのパーセント構成はありません。

  1. 4 つの各キューで最大 4 秒の遅延バッファを指定します。

    一部または buffer-size temporal すべてのキューに指定すると、明示的(デフォルト)または明示的な送信レートの割合が、これらのキューの一時的な値のバッファー サイズの割合として使用されます。明示的に指定された送信レートの割合は指定されていないため、設定済みのキュー数(スケジューラ マップにスケジューラが設定されたキュー)で 100 パーセント分割すると、キュー単位の送信レートの割合が暗黙的(デフォルト)になります。各キューは、暗黙的(デフォルト)の送信レート 100% / 4 = 25% を取得します。

    この例では 各キューで最大4秒の遅延を指定し インターフェイス上のシェーピング レートなし、25 パーセントのキュー単位の送信レート、インターフェイス上のすべての一時的な 4m キューの合計バッファー = 4 秒 * 100,000,000 最大インターフェイス bps / 8 ビット/バイト = 4 秒 * 12,500,000 バイト = 50,000,000 バイト。一時 4m を指定する各キューは 25% * 50,000,000 = 12,500,000 バイトを取得します。

  2. 4 Mbps のシェーピング レートをインターフェイスに追加します。

    インターフェイス上のすべての一時 4m キューの総バッファー = 4 sec * 4,000,000 bps シェーピングレート / 8 ビット/バイト = 4 sec * 500,000 バイト = 2,000,000 バイトそのため、一時 4m を指定する各キューは、25% * 2,000,000 = 500,000 バイトを受信します。

buffer-size temporal transmit-rate percent buffer-size percentインターフェイス キューで使用している場合、インターフェイス キューでコマンド、コマンド、または両方のコマンドを使用している場合は、バッファー サイズの計算が複雑になり、使用可能なキューの深さの制限に達する可能性があります。設定が/var/log/messages使用可能なメモリを超えしようとすると、コミット 時に2つのシステム ログ メッセージがファイルに表示され、インターフェイス のサービス クラス設定は無視され、インターフェイス のサービス クラス設定は2キューのデフォルトに戻ります。

または 、または両方buffer-size temporaltransmit-rate percentbuffer-size percent一緒に設定する場合、または、その両方を監視して、使用可能なキューの奥行き制限に達したかどうかを確認する必要があります。

Example: Using buffer-size temporal with Explicit transmit-rate percent Commands

4 つのキューすべてに明示的な送信レートを追加するには、以下の方法で行います。

たとえば、インターフェイスが 4 Mbps に形成されている場合、キューの送信レートは 10 の割合で、特定のキューの帯域幅共有は 0.4 Mbps になります。キューは、このインターフェイス上の一時的なキューに使用可能な合計バッファーの 2,000,000 バイトの部分に割り当てられます。その送信レートに比例します。4 つのキューには、それぞれ 200,000、500,000、500,000、800,000 バイトの遅延バッファが格納されています。

buffer-size temporal buffer-size temporalbuffer-size percenttransmit rate percentキューの奥行き制限を超え、システム ログ メッセージをトリガーし、デフォルト設定の動作をトリガーしないようにするには、以下の設定ルールを使用してキューを構成する際に、以下の設定ルールに従う必要があります。 インターフェイス上の 1 つ以上のキューが設定されている場合、一時キューの合計に明示的に設定された送信レート の割合と、他の非一時的なキューに明示的に設定されたバッファー サイズの割合を 1,000 を超えなければならない パーセント。

一時キューの合計が伝送レートの割合と非一時キューのバッファー サイズの割合が 100queue mem underflow Failed to compute scheduler params% を超えると、メッセージ ログにシステム ログ メッセージが表示され、インターフェイスに対して明示的に設定された CLI CoS 設定が無視され、インターフェイスは 2 キューのデフォルト CoS 設定に戻ります。

キュー buffer-size temporal で指定されている transmit-rate percent 場合、同じキュー上でも設定されている場合、設定されているキューの奥行きは、指定されたによって取得されるキューの小数帯域幅に基づいて行います transmit-rate percent

バッファー サイズを一時的に使用して 1 つ以上のキューに一時的な遅延時間が指定されるのに加え、インターフェイス全体で別の遅延時間が自動的に計算されます。このインターフェイスの遅延時間は、暗黙的(デフォルト)または明示的な送信レートの割合に比例して、すべての非一時キューに分散されます。有効q-pic-large-bufferになっていない場合、インターフェイスの遅延時間は 100 ミリ秒にデフォルトになります。表 1 に示すように、q-pic-large-buffer有効になっている場合、インターフェイスの遅延時間は、インターフェイスに対して設定されたシェーピング レートに基づいて計算されます。上記の例で設定されたシェーピングレートは 4 Mbps(>2,048,000 bps)なので、設定のインターフェイス遅延時間は 100 msec です。

表 1:q-pic-large-buffer により有効になっているインターフェイスの遅延時間

設定済みシェーピング レート(bps)

q-pic-large-bufferが有効な非一時キューに使用されるインターフェイス遅延時間(msec)

デフォルト遅延時間使用(msec)(q-pic-large-buffer なし)

64,000-255,999

4000

100

256,000 - 511,999

2000

100

512,000 - 102,3999

1000

100

1,024,000 - 2,047,999

500

100

>= 2,048,000

100

100

この例では、一時キューと非一次キューの両方の遅延バッファ制限を適切に計算します。

  1. buffer-size temporalキュー buffer-size percent 0 と 1 に置き換える:

    これにより、4 秒間のハード指定のバッファリング要件が削除され、非一時キューのインターフェイス全体の遅延時間の 10 パーセント(または 25%)の比例した制限に置き換まれます。どちらの場合も、キューの奥行きは特定のキューのインターフェイス帯域幅の共有に基づいて計算されます。インターフェイス非一時キュー メモリ = シェーピングレート * インターフェイス遅延時間(表 1) = 4 Mbps * 0.1 秒 = 500,000 バイト/秒 * 0.1 秒 = 50,000 バイト キュー 0 と 1 には 10% * 50,000 = 5000 バイト、 25% * 50,000 = 12,500 バイトの遅延バッファがあります。

  2. キュー buffer-size temporal 2 および 3 での設定:

    キュー 2 と 3 には、前に計算した 500,000 および 800,000 バイトの遅延バッファがそれぞれ格納されています。この構成では、一時キューの送信レートの合計(25% + 40% = 65%)に加えて、非一時キューのバッファー サイズの割合(10%+ 25% = 35%)は 100%(65%+ 35%< = 100%)を超えないというルールを変更します。

次の例では、遅延バッファ制限を超えて、システム ログ メッセージと、デフォルトの 2 キュー サービス クラスの動作をトリガーしています。

バッファー サイズの割合を非一時的キューで 25%から 26% に増加 1:

これは、非一時キューのバッファー サイズの割合(10% + 26% = 36%)と一時キューの伝送率の割合(25% + 40% = 65%)の合計が 100%(36% + 65 % = 101%)を超えるという構成ルールに違反します。したがって、ファイルには次の 2 つのシステム ログ メッセージが表示 /var/log/messages されます。

遅延バッファの制限を超えた場合、CLIが設定したサービスクラス設定は使用されません。デフォルトのサービスクラス設定(デフォルトのスケジューラマップ)がインターフェイスに割り当てられます。2 つのキューを使用します。 転送クラスのベストイワーディング(キュー 0)は送信レートが 95 パーセント、バッファー サイズのパーセント 95、転送クラス ネットワーク制御(キュー 3)は送信レートが 5 、バッファー サイズのパーセント 5 です。