キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

Catalyst 6500 シリーズにおけるQoS、キューイング及びスケジューリングについて

[toc:faq]

※記載のある事項と、Cisco.com に記載のある事項に矛盾があった場合、Cisco.com にある情報を優先してください。

キューイング (Queueing)

Catalyst6500ではラインカードによって Rx/Tx それぞれにおいて、キューの数やプライオリティキューの有無などが異なります。

例として、1p3q4t という表記は p がpriority queueで優先キューの数、q はqueueでキューの数、t はthresholdで閾値の数を表します。

ラインカード

RX 

TX 

VS-2T-10G 

2q4t 

1p3q4t 

WS-X6708-10G 

3q4t 

1p7q4t 

WS-X6716-10G 

1p7q2t

1p7q4t 

WS-X6716-10T 

1p7q2t

1p7q4t 

WS-X6748-GE-TX 

1q8t 

1p3q8t 

WS-X6748-SFP 

2q8t 

1p3q8t 

WS-X6724-SFP 

2q8t 

1p3q8t 


以下は6500のキュー配置の一例です。共通して全てのラインカードのTXにはPriorityQueueがあり、これ以外のキューでスケジューリング (DWRR など)が実施されます。

 キューイング イメージ図

実際にどのような配置になっているかは以下のコマンドで確認できます。デフォルト状態で最適化されていますが、キューの配置を任意に変更することも可能です。

以下の例では PQを含めてキューが4つ、NormalキューにそれぞれThresholdが8つあることを示しています。

Cat6500#show queueing interface GiX/Y

-- snip --

Transmit queues [type = 1p3q8t]:
Queue Id Scheduling Num of thresholds
---------------------------------
01 WRR 08
02 WRR 08
03 WRR 08
04 Priority 01
-- snip --

WRRスケジューリング

6500のスケジューリングは主にDWRR ( Defict Weighted Round Robin ) が採用されています。
WRRはラウンドロビン方式で各キューの重み付けを行う最低保証帯域方式です。

デフォルトでは 絶対優先キュー (priority-queue) 以外の3つのキューでそれぞれ重み付けがされており、帯域幅をそれぞれのキューで重み付けに従い出力を行うという方式です。重みの大きなキューほどフレームを送信する権利を多く与えられます。

重みについては show queueing interface の以下の部分で確認可能です。

※ラインカードによってデフォルト値が異なります。

Cat6500#show queueing interface GiX/Y

-- snip --
WRR bandwidth ratios: 1[queue 1] 2[queue 2] 4[queue 3]

WRR Scheduling イメージ図

Q1 = weight1 / ( weight1 + weight2 + weight3 ) = 1 / ( 1+2+4 ) = 1/7 ≒ 143M
Q2 = weight2 / ( weight1 + weight2 + weight3 ) = 2 / ( 1+2+4 ) = 2/7 ≒ 286M

Q3 = weight3 / ( weight1 + weight2 + weight3 ) = 4 / ( 1+2+4 ) = 4/7 ≒ 571M

※1Gbps(1000Mbps)  Interfaceでの帯域保証の例

これらの値を任意に変更する場合はauto qos defaultが有効となっている必要があり、以下のように設定を実施します。( 値は一例です。 ) 

また、スケジューリング/キューイングはPort-Channelインターフェイスがあっても

それに適用することは出来ず必ず物理インターフェイスに 適用します

(config)# interface GigabitEthernetX/Y
(config-if)# wrr
-queue bandwidth 10 20 30


Weighted Round Robin の詳細については こちらのURL も参照ください。

Tail Drop (テールドロップ)

キューにそれ以上フレームを蓄積できなくなると、破棄が始まります。キューが一杯になって、以後そのキューに入ろうとするフレームをキューの入り口で破棄することをテールドロップと呼びます。内部優先度とは無関係にキュー単位で破棄が行われます。

threshold.png

※ Threshold 値と CoS の対比map は ラインカードによって異なります。

※ Threshold 値は設定変更が可能です。

Trail Drop の 閾値は以下のコマンドで確認できます。キューやThresholdの数はラインカードによって異なります。

6500#show queueing interface tenX/Y

queue tail-drop-thresholds
   --------------------------
   1     70[1] 100[2] 100[3] 100[4]
   2     70[1] 100[2] 100[3] 100[4]
   3     100[1] 100[2] 100[3] 100[4]
   4     100[1] 100[2] 100[3] 100[4]
   5     100[1] 100[2] 100[3] 100[4]
   6     100[1] 100[2] 100[3] 100[4]
   7     100[1] 100[2] 100[3] 100[4]

これらの閾値を任意に変更するには以下のコマンドで変更を行います。

(config)# interface TengigabitEthernetX/Y
(config-if)# wrr-queue threshold 1 100 100 100 100
(config-if)# wrr-queue threshold 2 100 100 100 100
(config-if)# wrr-queue threshold 3 100 100 100 100
(config-if)# wrr-queue threshold 4 100 100 100 100
(config-if)# wrr-queue threshold 5 100 100 100 100
(config-if)# wrr-queue threshold 6 100 100 100 100
(config-if)# wrr-queue threshold 7 100 100 100 100

Tail Dropによる影響

キューに余裕があるうちは問題なくパケットを送信出来ますが、キューが一杯になった時点でパケットの破棄が始まるので、突然全てのパケットが同時に破棄の対象となり、アプリケーションやプロトコルが同時に急ブレーキをかけたような状態になります。この結果、複数のアプリケーションが急激にレスポンス低下することが発生します。

WRED (Weighted Random Early Detection)

Tail Drop によるアプリケーションのレスポンス低下を緩和するため、キューが溢れる前に優先度に応じて破棄を行う WRED ( Weighted Random Early Detection) があります。

WREDはキューが溢れる前に、フレームの優先度別にキューに蓄積できるフレームの量(キューの長さ)を指定し、その指定値を超えるとフレームを破棄します。

フレームがランダムに間引かれることによって、アプリケーションやプロトコルは輻輳の可能性を事前に検知し、徐々にブレーキをかけることが可能です。

また、優先度の低いフレームほど早く破棄が始まるので、優先度が高いアプリケーションは影響を受け難くなります。

WRED

RED for Congestion Avoidance (参考URL)

http://www.cisco.com/c/en/us/support/docs/switches/catalyst-6000-series-switches/10582-60.html#randomearly

以下の例では PQを除く各キュー毎に WRED用の8つの閾値が設定されています。8という数字はラインカードにより異なります。

min-thresholdsとはパケットが破棄され始める値で、max- thresholdsはこの値を下回るまで全てのパケットが破棄という値になります。

6500# show queueing interface GiX/Y

 -- snip --

queue random-detect-min-thresholds
----------------------------------
1 40[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 70[8]
2 40[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 70[8]
3 70[1] 70[2] 70[3] 70[4] 70[5] 70[6] 70[7] 70[8]

queue random-detect-max-thresholds
----------------------------------
1 70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8]
2 70[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8]
3 100[1] 100[2] 100[3] 100[4] 100[5] 100[6] 100[7] 100[8]

 -- snip --


WREDの閾値を任意に変更するに は以下のコマンドを実施します。

thresholdの次の数字がキューを表し、それ以降の値が閾値です

(config)# interface gig x/y
(config-if)# wrr-queue random-detect min-threshold 1 50 80 80 80 80 80 80 80
(config-if)# wrr-queue random-detect min-threshold 2 50 80 80 80 80 80 80 80
(config-if)# wrr-queue random-detect max-threshold 1 100 100 100 100 100 100 100 100
(config-if)# wrr-queue random-detect max-threshold 2 100 100 100 100 100 100 100 100


QoS Troubleshooting

キューイングでDropされたパケットは以下のキューイングコマンドで確認できます。(出力結果の最後の方)

TX Drop Counter

6500#$show queueing int tenGig 2/2/1 | b dropped on Transmit
Packets dropped on Transmit:
    BPDU packets:  0

    queue thresh             dropped  [cos-map]
    ------------------------------------------------------------------

    1     1                   110  [0 ] <-- Cos0 パケットがTx でDrop
    1     2                  1321  [1 ] <-- Cos1 パケットがTx でDrop
    2     1                     0  [2 ]
    2     2                     0  [3 4 ]
    3     1                     0  [6 7 ]
    8     1                     0  [5 ]

RX Drop Counter

6500#$show queueing int tenGig 2/2/1 | b dropped on Rece
Packets dropped on Receive:
    BPDU packets:  0

    queue thresh            dropped  [cos-map]
    ------------------------------------------------------------------
    1     1                     11  [0 ] <-- Cos0 パケットがRx で Drop
    1     2                    100  [1 ] <-- Cos1 パケットがRx で Drop
    2     1                      0  [2 ]
    2     2                      0  [3 4 ]
    3     1                      0  [6 7 ]
    8     1                      0  [5 ]

Troubleshooting の際、以下のコマンドを取得いただくと解析を行う場合に有用です。

QoSの設定、Policymap、Queuing関連の show command (SUP720)

show mls qos detailed
show queueing interface x/x detailed
show policy-map interface x/x detailed
show mls qos aggregate-policer

QoSの設定、Policymap、Queuing関連の show command (SUP2T)

show platform qos detailed
show queueing interface x/x detailed
show policy-map interface x/x detailed

 

参考資料

トラブルシューティング:Catalyst 6500 スイッチの QoS


Catalyst 6500 Sup2T システムの QOS アーキテクチャ

Understanding Quality of Service on the Catalyst 6500 Switch

バージョン履歴
改訂番号
1/1
最終更新:
‎01-11-2016 08:16 PM
更新者:
 
ラベル(1)