2016-01-11 08:16 PM
[toc:faq]
※記載のある事項と、Cisco.com に記載のある事項に矛盾があった場合、Cisco.com にある情報を優先してください。
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 --
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]
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 も参照ください。
キューにそれ以上フレームを蓄積できなくなると、破棄が始まります。キューが一杯になって、以後そのキューに入ろうとするフレームをキューの入り口で破棄することをテールドロップと呼びます。内部優先度とは無関係にキュー単位で破棄が行われます。
※ 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による影響
キューに余裕があるうちは問題なくパケットを送信出来ますが、キューが一杯になった時点でパケットの破棄が始まるので、突然全てのパケットが同時に破棄の対象となり、アプリケーションやプロトコルが同時に急ブレーキをかけたような状態になります。この結果、複数のアプリケーションが急激にレスポンス低下することが発生します。
Tail Drop によるアプリケーションのレスポンス低下を緩和するため、キューが溢れる前に優先度に応じて破棄を行う WRED ( Weighted Random Early Detection) があります。
WREDはキューが溢れる前に、フレームの優先度別にキューに蓄積できるフレームの量(キューの長さ)を指定し、その指定値を超えるとフレームを破棄します。
フレームがランダムに間引かれることによって、アプリケーションやプロトコルは輻輳の可能性を事前に検知し、徐々にブレーキをかけることが可能です。
また、優先度の低いフレームほど早く破棄が始まるので、優先度が高いアプリケーションは影響を受け難くなります。
RED for Congestion Avoidance (参考URL)
以下の例では 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
キューイングで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
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます