スケジューラ バッファ サイズを設定してエグレス インターフェイス上の輻輳を管理する
出力段階での輻輳を制御するために、遅延バッファ帯域幅を設定できます。遅延バッファ帯域幅は、指定された遅延時間までバースト トラフィックを吸収するパケット バッファ スペースを提供します。指定された遅延バッファがフルになると、ドロップ確率 100% のパケットがバッファのヘッドから破棄されます。
キュー0~7のデフォルトのスケジューラ送信レートは、利用可能な帯域幅全体の95、0、0、0、0、0、および5%です。
キュー 0~7 のデフォルト のバッファー サイズの割合は、使用可能なバッファー全体の 95、0、0、0、0、0、および 5% です。キュー当たりの使用可能なバッファの合計は、PIC タイプによって異なります。
バッファー サイズを設定するには、 階層レベルで buffer-size
ステートメントを [edit class-of-service schedulers scheduler-name]
含めます。
[edit class-of-service schedulers scheduler-name] buffer-size (percent percentage | remainder | shared | temporal microseconds);
スケジューラごとに、バッファー サイズを以下のいずれかとして設定できます。
バッファー全体に対する割合。1 つのキューあたりの合計バッファー数はマイクロ秒に基づいています。 表 1 に示すように、ルーティング デバイス タイプによって異なります。
残りのバッファーが使用可能です。残りの部分は、他のキューに割り当てられないバッファー率です。例えば、遅延バッファの 40% をキュー 0 に割り当て、キュー 3 がデフォルトの割り当てを 5 % 維持し、残りをキュー 7 に割り当てる場合、キュー 7 は遅延バッファの約 55% を使用します。
インターフェイスのバッファープールから共有されます。PTX シリーズ ルーターでは、キューのバッファーをインターフェイスのバッファーの最大 100% に設定します。このオプションを使用すると、インターフェイスの唯一のアクティブなキューである場合にのみ、キューのバッファーをインターフェイスのバッファーの 100% まで拡大できます。
時間的な値(マイクロ秒単位)一時的な設定では、キューイング アルゴリズムは計算されたバイト数を超えるキューに入れるとパケットのドロップを開始します。この最大値は、キューの伝送速度に設定された一時的な値を乗算して計算されます。 表 1 に示すように、キューごとのバッファー サイズの一時的な値は、ルーティング デバイス タイプによって異なります。最大値は、各キューではなく、論理インターフェイスに適用されます。
メモ:一般に、デフォルトの一時的なバッファ値は、インターフェイスの速度(シェーピング レート)に反比例します。インターフェイスの速度が上がると、インターフェイスがますます多くのデータを送信する可能性があり、データを保持するために必要なバッファはますます少なくなります。
ルーティング デバイス |
一時的な値の範囲 |
---|---|
M320 および T シリーズ ルーター FPC、タイプ 1、タイプ 2 |
1~80,000 マイクロ秒 |
M320 および T シリーズ ルーター FPC、タイプ 3。すべての ES カード(タイプ 1、2、3、および 4)。 |
1~50,000 マイクロ秒 合計帯域幅が 40 Gbps を超える PIC の場合、スケジューラーに設定できる最大一時的なバッファー サイズは 50,000 マイクロ秒ではなく 40,000 マイクロ秒です。 |
M120 ルーター FEB、MX シリーズ ルーター nonenhanced Queuing DPC、EX シリーズ スイッチ |
1~100,000 マイクロ秒 |
M5、M7i、M10、およびM10iルーターFPC |
1~100,000 マイクロ秒 |
その他の M シリーズ ルーター FPC |
1~200,000 マイクロ秒 |
PTXシリーズパケットトランスポートルーター |
1~100,000 マイクロ秒 |
すべてのルーターのIQ PIC |
1~100,000 マイクロ秒 |
大きなバッファー・サイズが使用可能な場合 | |
すべてのルーターのIQ PIC |
1~500,000 マイクロ秒 |
ギガビット イーサネットIQ VLAN |
|
シェーピング レートが最大 10 Mbps |
1~400,000 マイクロ秒 |
シェーピング レートが最大 20 Mbps |
1~300,000 マイクロ秒 |
シェーピング レートが最大 30 Mbps の場合 |
1~200,000 マイクロ秒 |
シェーピング レートが最大 40 Mbps |
1~150,000 マイクロ秒 |
シェーピング レートが 40 Mbps を超える場合 |
1~100,000 マイクロ秒 |
遅延バッファの設定の詳細については、以下のサブトピックを参照してください。
より遅いインターフェイスに大きな遅延バッファを設定する
デフォルトでは、チャネル化IQ PICに設定されたT1、E1、 NxDS0インターフェイスとDLCIは、100,000マイクロ秒の遅延バッファに制限されています。(IQ PIC のデフォルトの平均パケット サイズは 40 バイトです)。これらのインターフェイスでは、輻輳やパケットのドロップを防ぐために、より大きなバッファサイズを設定する必要がある場合があります。以下のPICで行うことができます。
チャネライズドIQ
4ポートE3 IQ
ギガビット イーサネットIQおよびIQ2
輻輳とパケットドロップは、より遅いインターフェイスで大量のトラフィックを受信した場合に発生します。これは、より高速なインターフェイスがより遅いインターフェイスにトラフィックを渡す場合に発生します。これは、エッジデバイスがネットワークのコアからトラフィックを受信する場合によく見られます。例えば、100,000マイクロ秒のT1遅延バッファは、アップストリームのOC3インターフェイスからの5000マイクロ秒のトラフィックバーストのわずか20%を吸収できます。この場合、バースト トラフィックの 80% がドロップされます。
表 2 は、 さまざまなアップストリーム インターフェイス タイプの典型的なバースト サイズを吸収するために必要な、推奨されるバッファー サイズを示しています。
バーストの長さ |
アップストリーム インターフェイス |
ダウンストリーム インターフェイス |
ダウンストリーム インターフェイスの推奨バッファー |
---|---|---|---|
5,000 マイクロ秒 |
OC3 |
E1 または T1 |
500,000 マイクロ秒 |
5,000 マイクロ秒 |
E1 または T1 |
E1 または T1 |
100,000 マイクロ秒 |
1,000 マイクロ秒 |
T3 |
E1 または T1 |
100,000 マイクロ秒 |
トラフィックがキューに入れ、E1、T1、xDS0インターフェイスと NLCSI上で正しく送信されるようにするには、デフォルトの最大を超えるバッファサイズを設定できます。より大きなバッファー・サイズを構成するには、以下を行います。
q-pic-large-buffer (large-scale | small-scale)
ステートメントを[edit chassis fpc slot-number pic pic-number]
含めます。
[edit} user@host# edit chassis fpc slot-number pic pic-number user@host# set q-pic-large-buffer large-scale
オプションを large-scale
指定した場合、この機能は多数のインターフェイスをサポートします。をデフォルトに指定 small-scale
した場合、この機能はより少ない数のインターフェイスをサポートします。
設定に ステートメントを q-pic-large-buffer
使用する場合、より大きなバッファはスケジューラー キューへの割り当てに透過的に使用できます。大きなバッファの最大数は、 表3に示すように、インターフェイスタイプによって異なります。
プラットフォーム、PIC、またはインターフェイス タイプ |
最大バッファー サイズ |
---|---|
大きなバッファー・サイズが使用可能になっていない場合 | |
M320 および T シリーズ ルーター FPC、タイプ 1、タイプ 2 |
80,000 マイクロ秒 |
M320 および T シリーズ ルーター FPC、タイプ 3 |
50,000 マイクロ秒 |
その他の M シリーズ ルーター FPC |
200,000 マイクロ秒 |
すべてのルーターのIQ PIC |
100,000 マイクロ秒 |
大きなバッファー・サイズが使用可能な場合 | |
チャネル化された T3 およびチャネル化された OC3 DLCI—最大サイズはシェーピング レートによって異なります。 |
|
シェーピング レートは 64,000~255,999 bps |
4,000,000 マイクロ秒 |
シェーピング レートは 256,000~511,999 bps |
2,000,000 マイクロ秒 |
シェーピング レートが 512,000~1,023,999 bps |
1,000,000 マイクロ秒 |
シェーピング レートは 1,024,000~2,048,000 bps |
500,000 マイクロ秒 |
シェーピング レートは 2,048,001 bps~10 Mbps |
400,000 マイクロ秒 |
シェーピング レートが 10,000,001 bps~20 Mbps |
300,000 マイクロ秒 |
シェーピング レートが 20,000,001 bps~30 Mbps |
200,000 マイクロ秒 |
シェーピング レートは 30,000,001 bps~40 Mbps |
150,000 マイクロ秒 |
シェーピング レートが 40,000,001 bps 以上の場合 |
100,000 マイクロ秒 |
NxDS0 IQインターフェイス-最大サイズはチャネルサイズによって異なります。 |
|
1xDSO~3xDS0 |
4,000,000 マイクロ秒 |
4xDSO~7xDS0 |
2,000,000 マイクロ秒 |
8xDSO~15xDS0 |
1,000,000 マイクロ秒 |
16xDSO~32xDS0 |
500,000 マイクロ秒 |
その他の IQ インターフェイス |
500,000 マイクロ秒 |
新しい最大を超える遅延バッファを設定した場合、候補の設定を正常にコミットできます。ただし、この設定はパケット転送コンポーネントによって拒否され、システム ログ警告メッセージが生成されます。
DLCIキューイングをサポートするインターフェイスでは、設定されたシェーピングレートが物理インターフェイスの帯域幅以下であるDLCIに対して、大きなバッファがサポートされています。例えば、チャネル化された T3 IQ PIC でフレーム リレー DLCI を設定し、シェーピング レートを 1.5 Mbps に設定すると、DLCI に割り当てられる遅延バッファの量は 500,000 マイクロ秒であり、これは T1 遅延バッファに相当します。DLCIキューイングの詳細については、 DLCIとVLANへのスケジューラマップとシェーピングレートの適用を参照してください。
xDS0 インターフェイスの場合 N、xDS0 インターフェイスの DS0 チャネル N数に応じて、バッファー サイズを最大 4,000,000 マイクロ秒にすることができます。より少ないチャネルを持つより遅い NxDS0インターフェイスの場合、遅延バッファは、より多くのチャネルを持つより高速 NなxDS0インターフェイスよりも相対的に大きくなる可能性があります。これを 表 5 に示します。
遅延バッファをパーセンテージまたは一時的な値として割り当てることができます。結果として得られる遅延バッファは、遅延バッファを設定する方法によって、 表4に示すように異なる方法で計算されます。
遅延バッファ設定 |
式 |
例 |
---|---|---|
割合 |
|
利用可能な遅延バッファの30%を使用するようにT1インターフェイス上のキューを設定すると、キューは28,125バイトの遅延バッファを受信します。 sched-expedited { transmit-rate percent 30; buffer-size percent 30; }
|
時間 |
|
T1 インターフェイス上のキューが 500,000 マイクロ秒の遅延バッファを使用するように設定し、伝送レートを 20% に設定すると、キューは 18,750 バイトの遅延バッファを受信します。 sched-best { transmit-rate percent 20; buffer-size temporal 500000; }
|
割合(バッファー サイズが送信レートを超える場合) |
|
この例では、遅延バッファは送信レートの2倍に割り当てられます。キューの送信レートが割り当てられた送信レートを超えない場合、最大遅延バッファ遅延は 500,000 マイクロ秒の遅延バッファの 2 倍になります。 sched-extra-buffer { transmit-rate percent 10; buffer-size percent 20; } |
FRF.16 LSQ バンドル |
T1帯域幅<バンドル帯域幅の合計では、遅延バッファレートは1秒です。 バンドル帯域幅>= T1帯域幅の場合、遅延バッファレートは200ミリ秒(ms)です。 |
NxDS0 インターフェイスの最大遅延バッファの設定
xDS0インターフェイスの伝送帯域幅はT1またはE1インターフェイスよりも小さいため N、組み合わせたDS0チャネルの数に応じて、xDS0インターフェイスのバッファサイズ Nは比較的大きくなる可能性があります。最大遅延バッファ サイズは、以下の式で計算されます。
Interface Speed * Maximum Delay Buffer Time = Delay Buffer Size
たとえば、1xDS0 インターフェイスの速度は 1 秒あたり 64 キロビット(Kbps)です。このレートでは、最大遅延バッファ時間は4,000,000マイクロ秒です。そのため、遅延バッファのサイズは 32 KB(キロバイト)です。
64 Kbps * 4,000,000 microseconds = 32 KB
表 5 は、 1xDS0~32xDS0 インターフェイスの遅延バッファ計算を示しています。
インターフェイス速度 |
遅延バッファサイズ |
---|---|
1xDS0~4xDS0:最大遅延バッファ時間は4,000,000マイクロ秒 | |
1xDS0:64 Kbps |
32 KB |
2xDS0:128 Kbps |
64 KB |
3 xDS0:192 Kbps |
96 KB |
4xDS0~7xDS0:最大遅延バッファ時間は2,000,000マイクロ秒 | |
4 xDS0:256 Kbps |
64 KB |
5 xDS0:320 Kbps |
80 KB |
6 xDS0:384 Kbps |
96 KB |
7 xDS0:448 Kbps |
112 KB |
8xDS0~15xDS0:最大遅延バッファ時間は1,000,000マイクロ秒 | |
8 xDS0:512 Kbps |
64 KB |
9 xDS0:576 Kbps |
72 KB |
10xDS0:640 Kbps |
80 KB |
11xDS0:704 Kbps |
88 KB |
12xDS0:768 Kbps |
96 KB |
13xDS0:832 Kbps |
104 KB |
14 xDS0:896vKbps |
112 KB |
15xDS0:960 Kbps |
120 KB |
16xDS0~32xDS0:最大遅延バッファ時間は500,000マイクロ秒 | |
16xDS0:1,024 Kbps |
64 KB |
17xDS0:1088 Kbps |
68 KB |
18xDS0:1152 Kbps |
72 KB |
19xDS0:1216 Kbps |
76 KB |
20xDS0:1280 Kbps |
80 KB |
21xDS0:1344 Kbps |
84 KB |
22xDS0:1408 Kbps |
88 KB |
23xDS0:1472 Kbps |
92 KB |
24xDS0:1536 Kbps |
96 KB |
25xDS0:1600 Kbps |
100 KB |
26xDS0:1664 Kbps |
104 KB |
27xDS0:1728 Kbps |
108 KB |
28xDS0:1792 Kbps |
112 KB |
29xDS0:1856 Kbps |
116 KB |
30xDS0:1,920 Kbps |
120 KB |
31xDS0:1984 Kbps |
124 KB |
32xDS0:2048 Kbps |
128 KB |
例:より遅いインターフェイスに大きな遅延バッファを設定する
チャネル化された OC12 IQ PIC に設定されたインターフェイスに大きな遅延バッファを設定します。CoS設定は、シャーシ設定で指定されたインターフェイスにスケジューラマップをバインドします。この例の遅延バッファ計算については、 表 4 を参照してください。
大きな遅延バッファを設定するには:
例:スケジューラの遅延バッファ値の設定
物理または論理インターフェイス(異なるスケジューラ(またはキュー)で構成されるスケジューラ マップ)に割り当てることができます。物理インターフェイスの大きな遅延バッファは、 階層レベルで および buffer-size
ステートメントを使用してtransmit-rate
、異なるスケジューラ(またはキュー)に[edit class-of-service schedulers scheduler-name]
分散できます。
この例では、 sched-best
2 つのスケジューラと、 sched-exped
遅延バッファ サイズをそれぞれパーセンテージ(20 パーセント)、時間値(300,000 マイクロ秒)で構成しています。スケジューラーの送信レートは sched-best
10% です。スケジューラーの送信レートは sched-exped
20%です。
sched-best
スケジューラーの遅延バッファは、指定された送信レートの 2 倍の 10% です。スケジューラがT1インターフェイスに割り当てられている場合sched-best
、このスケジューラーはT1インターフェイスの遅延バッファの合計500,000マイクロ秒の20%を受信します。そのため、スケジューラーは 18,750 バイトの遅延バッファーを受信します。
available interface bandwidth * configured percentage buffer-size * maximum buffer = queue buffer 1.5 Mbps * 0.2 * 500,000 microseconds = 150,000 bits = 18,750 bytes
スケジューラがT1インターフェイスに割り当てられている場合 sched-exped
、このスケジューラは、トラフィックレートを20%としたT1インターフェイスの500,000マイクロ秒の遅延バッファの300,000マイクロ秒を受信します。そのため、スケジューラーは 11,250 バイトの遅延バッファーを受信します。
available interface bandwidth * configured percentage transmit-rate * configured temporal buffer-size = queue buffer 1.5 Mbps * 0.2 * 300,000 microseconds = 90,000 bits = 11,250 bytes
この例を設定するには:
例:物理インターフェイス シェーピング レートの設定
一般に、物理インターフェイス速度は、遅延バッファサイズを計算するための基礎となります。ただし、 ステートメントを shaping-rate
含めると、シェーピングレートは遅延バッファサイズを計算するための基礎となります。詳細については、 表 5 を参照してください。
この例では、T1 インターフェイスのシェーピング レートを 200 Kbps に設定します。つまり、T1 インターフェイスの帯域幅は 1.5 Mbps ではなく 200 Kbps に設定されています。200 Kbps は 4xDS0 より小さいため、このインターフェイスは 4 秒の遅延バッファ、または 800 Kbps のトラフィックを受信します。これは 800 KB で完全に 1 秒間です。
完全な設定
この例では、FPC スロット 0、PIC スロット 0、およびフレーム リレー カプセル化によるチャネル化された T1 インターフェイスのチャネル化された OC12 IQ PIC を示しています。また、物理インターフェイス上のスケジューラ マップ設定も表示されます。
chassis { fpc 0 { pic 0 { q-pic-large-buffer; max-queues-per-interface 8; } } } interfaces { coc12-0/0/0 { partition 1 oc-slice 1 interface-type coc1; } coc1-0/0/0:1 { partition 1 interface-type t1; } t1-0/0/0:1:1 { encapsulation frame-relay; unit 0 { family inet { address 10.1.1.1/24; } dlci 100; } } } class-of-service { interfaces { t1-0/0/0:1:1 { scheduler-map smap-1; } } scheduler-maps { smap-1 { forwarding-class best-effort scheduler sched-best; forwarding-class expedited-forwarding scheduler sched-exped; forwarding-class assured-forwarding scheduler sched-assure; forwarding-class network-control scheduler sched-network; } } schedulers { sched-best { transmit-rate percent 40; buffer-size percent 40; } sched-exped { transmit-rate percent 30; buffer-size percent 30; } sched-assure { transmit-rate percent 20; buffer-size percent 20; } sched-network { transmit-rate percent 10; buffer-size percent 10; } } }
キューごとのメモリ割り当て動的の有効化と無効化
Junos OS では、メモリ割り当て動的(MAD)とは、キューが送信レート設定で割り当てられた帯域幅よりも多くの帯域幅を使用している場合に、余分な遅延バッファを動的にプロビジョニングするメカニズムです。この余分なバッファーにより、キューがより簡単にトラフィック バーストを吸収し、パケット ドロップを回避できます。MAD メカニズムは、キューによって余分な送信帯域幅が使用されている場合にのみ、余分な遅延バッファをプロビジョニングできます。つまり、過剰な送信帯域幅が利用可能でなければ、キューにパケットがドロップする可能性があることを意味します。
ジュニパーネットワークスM320マルチサービスエッジルーター、MXシリーズ5Gユニバーサルルーティングプラットフォーム、Tシリーズコアルーター、EXシリーズイーサネットスイッチの場合のみ、遅延バッファが特定のキューに一時的な設定で設定されていない限り、MADメカニズムが有効になります。MAD メカニズムは、主な要件が最大帯域幅の使用率である遅延の影響を受けないトラフィックを伝送する転送クラスに特に有用です。これに対して、遅延の影響を受けやすいトラフィックでは、大きな遅延バッファが最適ではないため、MAD メカニズムを無効にしたい場合があります。
MADサポートは、PICではなく、FPCとパケット転送エンジンに依存しています。M320、MXシリーズ、Tシリーズルーター、EXシリーズスイッチのFPCとパケット転送エンジンはすべてMADをサポートしています。MPC(モジュラー ポート コンセントレータ)および IQ、IQ2、IQ2E、IQE PIC は MAD をサポートしません。
サポートされているハードウェアでMADメカニズムを有効にするには:
buffer-size percent
ステートメントを[edit class-of-service schedulers scheduler-name]
含めます。
[edit class-of-service schedulers scheduler-name] user@host# set buffer-size percent percentage
キューに割り当てられる最小バッファーは 18,432 バイトです。バッファー・サイズが 18K 未満のキューが構成されている場合、キューはバッファー・サイズ 18,432 バイトを保持します。
必要に応じて、設定された伝送レートを超えるバッファサイズを設定できます。バッファは、十分な過剰な帯域幅が利用可能であれば、設定された伝送レートを超えるパケット バーストに対応できます。例えば:
class-of-service { schedulers { sched-best { transmit-rate percent 20; buffer-size percent 30; } } }
前述のように、一時的な遅延バッファ設定を使用してキュー上のMADメカニズムを無効にして、遅延バッファのサイズを制限することができます。ただし、一時的なキューの有効なバッファー遅延は、バッファー サイズの値だけでなく、関連するドロップ プロファイルによっても制限されます。ドロップ プロファイルがフィルレベルでドロップ確率 100% を 100% 未満に指定した場合、有効な最大バッファー遅延はバッファー サイズ設定よりも小さくなります。これは、ドロッププロファイルが、キューの遅延バッファが100%フルである前にキュードロップパケットを指定するためです。
このような設定は、次の例のようになります。
class-of-service { drop-profiles { plp-high { fill-level 70 drop-probability 100; } plp-low { fill-level 80 drop-probability 100; } } schedulers { sched { buffer-size temporal 500000; drop-profile-map loss-priority low protocol any drop-profile plp-low; drop-profile-map loss-priority high protocol any drop-profile plp-high; transmit-rate percent 20; } } }