スイッチ : Cisco Catalyst 6500 シリーズ スイッチ

Cisco IOS システム ソフトウェアが稼働している Catalyst 6500/6000 シリーズ スイッチの QoS 出力スケジューリング

2015 年 11 月 26 日 - 機械翻訳について
その他のバージョン: PDFpdf | ライター翻訳版 (2010 年 11 月 15 日) | 英語版 (2015 年 9 月 19 日) | フィードバック


目次


概要

出力スケジューリングを使用すると、加入超過が過剰に発生した場合に重要なトラフィックが廃棄されなくなります。 このドキュメントは、Catalyst 6500/6000 スイッチでの出力スケジューリングに関連するすべてのテクニックとアルゴリズムについて包括的に説明します。 この資料にまた Cisco IOS を実行する Catalyst 6500/6000 の出力スケジューリングのオペレーションを設定し確認する方法を説明されていますか。 ソフトウェア。

Weighted Random Early Detection(WRED; 重み付けランダム早期検出)、Weighted Round Robin(WRR; 重み付けラウンドロビン)、テール ドロップの詳細は、『CatOS システム ソフトウェアが稼働している Catalyst 6500/6000 シリーズ スイッチの QoS 出力スケジューリング』を参照してください。

前提条件

要件

このドキュメントに関する特別な要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

背景説明

出力キューでの廃棄

出力キューでの廃棄はインターフェイスの輻輳によって発生します。 通常、この原因としては、高帯域幅リンクからのトラフィックが低帯域幅リンクにスイッチングされるか、あるいは複数の着信リンクからのトラフィックが単一の発信リンクにスイッチングされることが考えられます。

たとえば、バースト トラフィックが大量にギガビット インターフェイスに流れ込み、それが 100 Mbps インターフェイスにスイッチングされると、100 Mbps インターフェイスの出力廃棄が増加する場合があります。 これは、着信側の帯域幅と発信側の帯域幅との間で速度のミスマッチがあるため、インターフェイスの出力キューが過度のトラフィックによってあふれるためです。 発信インターフェイスのトラフィック レートでは、発信する必要があるすべてのパケットを受け入れられません。

この問題の最適の解決方法は、回線速度を上げることです。 ただし、回線速度を上げたくない場合に、出力の廃棄を防止、減少、または制御する方法があります。 出力廃棄の防止は、短時間のデータ バーストの結果として出力廃棄が発生している場合にだけ可能です。 恒常的な高レートのフローによって出力の廃棄が引き起こされている場合、廃棄を防ぐことはできません。 ただし、出力廃棄を制御することはできます。

Catalyst 6500/6000 のさまざまなラインカードの出力キューイング機能

ポートのキューイング機能がはっきりわからない場合は、show queueing interface {gigabitethernet | fastethernet} mod/port コマンドを発行して確認します。 次に示すのは、show queueing interface コマンド出力の始めの部分です。 ポートは Supervisor Engine 1A ラインカード上にあります。

cosmos#show queueing interface gigabitethernet 1/1
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 

  QoS is disabled globally 
  Trust state: trust DSCP 
  Default COS is 0 
  Transmit group-buffers feature is enabled 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

!--- Output suppressed.

出力は、このポートに 1p2q2t という出力キューイング タイプがあることを示しています。

特定のポートで利用可能なキューイングのタイプを確認するもう 1 つの方法は、show interface capabilities コマンドを発行することです。

la-orion#show interface gigabitethernet 6/2 capabilities 
GigabitEthernet6/2
? Model:???????????????? WS-SUP720-BASE
? Type:????????????????? No GBIC
? Speed:???????????????? 1000
? Duplex:??????????????? full
? Trunk encap. type:???? 802.1Q,ISL
? Trunk mode:??????????? on,off,desirable,nonegotiate
? Channel:?????????????? yes
? Broadcast suppression: percentage(0-100)
? Flowcontrol:?????????? rx-(off,on,desired),tx-(off,on,desired)
? Membership:??????????? static
? Fast Start:??????????? yes
? QOS scheduling:??????? rx-(1p1q4t), tx-(1p2q2t)
? CoS rewrite:?????????? yes
? ToS rewrite:?????????? yes
? Inline power:????????? no
? SPAN:????????????????? source/destination
? UDLD?????????????????? yes
? Link Debounce:???????? yes
? Link Debounce Time:??? yes
? Ports on ASIC:???????? 1-2

ポートのキューの機能について

Catalyst 6500/6000 スイッチでは、いくつかのタイプのキューを利用できます。 次の表には、ポート QoS アーキテクチャの表記法が説明されています。

- - - - - - - -
送信(Tx)/受信(Rx) キュー表記 キューの数 優先キュー WRR キューの数 WRR キューのしきい値のタイプと数
Tx 2q2t 2 2 2 つの設定可能なテール ドロップ
Tx 1p2q2t 3 1 2 2 つの設定可能な WRED
Tx 1p3q1t 4 1 3 1 つの設定可能な WRED
Tx 1p2q1t 3 1 2 1 つの設定可能な WRED
Rx 1q4t 1 4 つの設定可能なテール ドロップ
Rx 1p1q4t 2 1 1 4 つの設定可能なテール ドロップ
Rx 1p1q0t 2 1 1 設定不可
Rx 1p1q8t 2 1 1 8 つの設定可能な WRED
Tx 1p3q8t 4 1 3 8 つの設定可能な WRED またはテール ドロップ
Tx 1p7q8t 8 1 7 8 つの設定可能な WRED またはテール ドロップ
Rx 1q2t 1 設定可能な 1 か。テール ドロップ = 設定不可能な 1
Rx 1q8t 1 8 設定可能なテール ドロップ
Rx 2q8t 2 2 8 設定可能なテール ドロップ

次の表には、いくつかのモジュールと、インターフェイスやポートの Rx 側と Tx 側のキュー タイプがリストされています。 使用しているモジュールがこのリストにない場合、show interface capabilities コマンドを使用して利用可能なキューの機能を確認してください。 show interface capabilities コマンドの詳細は、「Catalyst 6500/6000 のさまざまなラインカードの出力キューイング機能」セクションを参照してください。

モジュール Rx キュー Tx キュー
WS-X6K-S2-PFC2 1p1q4t 1p2q2t
WS-X6K-SUP1A-2GE 1p1q4t 1p2q2t
WS-X6K-SUP1-2GE 1q4t 2q2t
WS-X6501-10GEX4 1p1q8t 1p2q1t
WS-X6502-10GE 1p1q8t 1p2q1t
WS-X6516-GBIC 1p1q4t 1p2q2t
WS-X6516-GE-TX 1p1q4t 1p2q2t
WS-X6416-GBIC 1p1q4t 1p2q2t
WS-X6416-GE-MT 1p1q4t 1p2q2t
WS-X6316-GE-TX 1p1q4t 1p2q2t
WS-X6408A-GBIC 1p1q4t 1p2q2t
WS-X6408-GBIC 1q4t 2q2t
WS-X6524-100FX-MM 1p1q0t 1p3q1t
WS-X6324-100FX-SM 1q4t 2q2t
WS-X6324-100FX-MM 1q4t 2q2t
WS-X6224-100FX-MT 1q4t 2q2t
WS-X6548-RJ-21 1p1q0t 1p3q1t
WS-X6548-RJ-45 1p1q0t 1p3q1t
WS-X6348-RJ-21 1q4t 2q2t
WS-X6348-RJ21V 1q4t 2q2t
WS-X6348-RJ-45 1q4t 2q2t
WS-X6348-RJ-45V 1q4t 2q2t
WS-X6148-RJ-45V 1q4t 2q2t
WS-X6148-RJ21V 1q4t 2q2t
WS-X6248-RJ-45 1q4t 2q2t
WS-X6248A-TEL 1q4t 2q2t
WS-X6248-TEL 1q4t 2q2t
WS-X6024-10FL-MT 1q4t 2q2t

Catalyst 6500/6000 の設定、監視、および出力スケジューリング サンプル

設定

このセクションでは、Cisco IOS ソフトウェアが稼働している Catalyst 6500/6000 で出力スケジューリングを設定するために必要なすべての手順について説明します。 Catalyst 6500/6000 のデフォルト設定については、このドキュメントの「ケース 1: QoS がイネーブルになり、デフォルト パラメータが使用される」セクションを参照してください。

Catalyst 6500/6000 の設定には、次の 5 つのステップがあります。

  1. qos を有効にします。

  2. それぞれの可能な Class of Service(CoS; サービス クラス)値をキューとしきい値にマップする(オプション)

  3. WRR の重み付けを設定する(オプション)

  4. それぞれのキューに割り当てられるバッファを設定する(オプション)

  5. それぞれのキューにしきい値レベルを設定する(オプション)

注: これらのステップは、ステップ 1 以外はオプションです。 1 つ以上のパラメータをデフォルト値のままにしておくことができます。

ステップ 1: qos を有効にします。

まず、QoS をイネーブルにします。 QoS はデフォルトでは無効になっていることに注意してください。 QoS がディセーブルのときは、設定済みの CoS マッピングは結果に影響しません。 First In First Out(FIFO; 先入れ先出し)方式のキューが 1 つあり、すべてのパケットはそこで廃棄されます。

cosmos#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z. 
cosmos(config)#mls qos

QoS is enabled globally 
  Microflow policing is enabled globally 
  
QoS global counters: 
    Total packets: 552638 
    IP shortcut packets: 0 
    Packets dropped by policing: 0 
    IP packets with TOS changed by policing: 0 
    IP packets with COS changed by policing: 0 
    Non-IP packets with CoS changed by policing: 0

ステップ 2: それぞれの可能な Class of Service(CoS; サービス クラス)値をキューとしきい値にマップする

すべてのキュー タイプに対して、キューとしきい値に CoS を割り当てます。 2q2t タイプのポートに対して定義されるマッピングは、1p2q2t ポートには適用されません。 また、2q2t 用のマッピングは、2q2t のキューイング メカニズムを備えたすべてのポートに適用されます。 次の cos-map コマンドをインターフェイスの下で発行します。

wrr-queue  cos-map Q_number_(1-2) threshold_number_(1-2) cos_value_1 
 cos_value_2

priority-queue cos-map Q_number_(always 1) cos_value_1 cos_value_2

注: これらの各コマンドは 1 行に収める必要があります。

WRR キューは独立して設定できます。 優先キューが存在する場合は、priority-queue コマンドで設定できます。

注: キューには、優先順位が最も低いキューから始まり、利用可能な完全優先キューで終わる番号が常に付けられます。 次に、例を示します。

  • queue 1 は、低優先度 WRR キューです。

  • queue 2 は、高優先度 WRR キューです。

  • queue 3 は、完全優先キューです。

この操作をすべてのタイプのキューで繰り返します。操作を行わない場合は、デフォルトの CoS 割り当てのままになります。 次に示すのは、1p2q2t の設定例です。

cosmos#configure terminal 
cosmos(config)#interface gigabitethernet 1/1 
cosmos(config-if)#priority-queue cos-map 1 5   

!--- Assign a CoS of 5 to priority queue.

  cos-map configured on:  Gi1/1 Gi1/2 
cosmos(config-if)#wrr-queue cos-map 1 1 0 1

!--- Assign CoS 0 and 1 to the first threshold of low-priority WRR queue.

  cos-map configured on:  Gi1/1 Gi1/2 
cosmos(config-if)#wrr-queue cos-map 1 2 2 3

!--- Assign CoS 2 and 3 to the second threshold of low-priority WRR queue.

  cos-map configured on:  Gi1/1 Gi1/2 
cosmos(config-if)#wrr-queue cos-map 2 1 4 6

!--- Assign CoS 4 and 6 to the first threshold of high-priority WRR queue.

  cos-map configured on:  Gi1/1 Gi1/2 
cosmos(config-if)#wrr-queue cos-map 2 2 7 

!--- Assign CoS 7 to the second threshold of high-priority WRR queue.

  cos-map configured on:  Gi1/1 Gi1/2

設定の確認:

cosmos#show queueing interface gigabitethernet 1/1 

!--- Output suppressed.

 
queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 6 
    2     2      7 
    3     1      5 

!--- Output suppressed.

ステップ 3: WRR の重み付けを設定する

WRR の重み付けを 2 つの WRR キューに設定します。 次のインターフェイス コマンドを発行します。

wrr-queue bandwidth weight_for_Q1 weight_for_Q2

weight 1 は queue 1 に関連します。このキューは低優先度の WRR キューである必要があります。 この重み付けは、weight 2 よりも常に 1 レベル低く保ちます。 重み付けは、1 から 255 までの任意の値にできます。 次の式を使用してパーセンテージを割り当てます。

  • queue 1 に対して:[weight 1 / (weight 1 + weight 2)]

  • 2 を並べるため— [(重量 2/重量 1 + 重量 2)]

すべてのタイプのキューに対して、重み付けを定義する必要があります。 これらの重量のタイプは同じである必要はありません。 これは 2q2t 用の例であり、この場合、queue 1 には時間の 20% が使用され、queue 2 には時間の 80% が使用されます。

cosmos#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z. 
cosmos(config)#interface gigabitethernet 1/1 
cosmos(config-if)#wrr-queue bandwidth ? 
  <1-255>  enter bandwidth weight between 1 and 255 
cosmos(config-if)#wrr-queue bandwidth 20 80

!--- Queue 1 is served 20% of the time, and queue 2 is served
!--- 80% of the time.

cosmos(config-if)#

設定の確認:

cosmos#show queueing interface gigabitethernet 1/1
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Port is untrusted 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:   20[queue 1]  80[queue 2] 
    queue-limit ratios:     90[queue 1]   5[queue 2] 

!--- Output suppressed.

注: CatOS ソフトウェアを使用できないときに、それぞれのインターフェイスに対して異なる WRR の重み付けを設定できます。

ステップ 4: それぞれのキューに割り当てられるバッファを設定する

転送キュー率を定義する必要があります。 これによって、さまざまなキューでのバッファの分割方法が決定されます。

wrr-queue queue-limit percentage_WRR_Q1 percentage_WRR_Q2

cosmos(config)#interface gigabitethernet 1/2 
cosmos(config-if)#wrr-queue queue-limit 70 15     

!--- Queue 1 has 70% of the buffers.
!--- Queues 2 and 3 both have 15% of the buffers.

  queue-limit configured on:  Gi1/1 Gi1/2

注: ギガビット ポートのキューイング機能が 1p1q2t である場合、完全優先キューと高優先度 WRR キューに同じレベルを使用する必要があります。 これらのレベルはハードウェアのために異なるものにはできません。 2 つの WRR キュー用の帯域幅だけが設定されます。 高優先度 WRR キューと完全優先キューが存在する場合、それらには自動的に同じ値を使用します。

調整可能なキュー サイズのないキューイング タイプもあります。 1p3q1t はその例であり、WS-X6548RJ45 で利用可能です。 これらのキュー タイプは固定であり、ユーザは変更できません。

設定の確認:

cosmos#show queueing interface gigabitethernet 1/2
Interface GigabitEthernet1/2 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Port is untrusted 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:    5[queue 1] 255[queue 2] 
    queue-limit ratios:     70[queue 1]  15[queue 2]

注: バッファの最大部分を低優先度 WRR キューに残しておくことは最適の選択です。 これが、追加のバッファリングをイネーブルにする必要のあるキューです。 他のキューは高い優先順位で使用されます。

ステップ 5: それぞれのキューにしきい値レベルを設定する

最後のステップとして、WRED キューまたはテール ドロップ キューにしきい値レベルを設定します。 次にコマンドを示します。

  • しきい値の廃棄メカニズムとして WRED を使用するキューに対しては、次のコマンドを発行します。

    wrr-queue random-dtect min-threshold Q_number 
     threshold_1_value threshold_2_value
    
    wrr-queue random-dtect max-threshold Q_number 
     threshold_1_value threshold_2_value
    
    

    注: これらの各コマンドは 1 行に収める必要があります。

  • 廃棄メカニズムとしてテール ドロップを使用するキューに対しては、次のコマンドを発行します。

    wrr-queue threshold Q_number 
     threshold_1_value threshold_2_value
    
    

    注: このコマンドは 1 行で指定する必要があります。

WRED キューの設定:

cosmos(config)#interface gigabitethernet 1/1
cosmos(config-if)#wrr-queue random-detect min-threshold  1 20 50 

!--- This sets the threshold of queue 1 to 20 and 50% minimum threshold 
!--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect min-threshold  2 20 50 

!--- This sets the threshold of queue 2 to 20 and 50% minimum threshold 
!--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect max-threshold  1 50 80 

!--- This sets the threshold of queue 1 to 50 and 80% maximum threshold 
!--- configured on Gi1/1 Gi1/2.

cosmos(config-if)#wrr-queue random-detect max-threshold  2 40 60 

!--- This sets the threshold of queue 2 to 49 and 60% maximum threshold 
!--- configured on Gi1/1 Gi1/2.

テール ドロップ キューの設定:

cosmos(config)#interface fastethernet 3/1 
cosmos(config-if)#wrr-queue threshold ? 
  <1-2> enter threshold queue id (1-2) 
cosmos(config-if)#wrr-queue threshold 1 ? 
  <1-100>  enter percent of queue size between 1 and 100 
cosmos(config-if)#wrr-queue threshold 1 50 100      

!--- This sets the tail drop threshold for this 2q2t interface for  
!--- queue 1 (low-priority) to 50 and 100% of the buffer.

threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 
 Fa3/9 Fa3/10 Fa3/11 Fa3/12 
cosmos(config-if)# 
cosmos(config-if)# 
cosmos(config-if)#wrr-queue threshold 2 40 100     

!--- This sets the tail drop threshold for this 2q2t interface for  
!--- queue 2 (high-priority) to 40 and 100% of the buffer.
   
threshold configured on: Fa3/1 Fa3/2 Fa3/3 Fa3/4 Fa3/5 Fa3/6 Fa3/7 Fa3/8 
 Fa3/9 Fa3/10 Fa3/11 Fa3/12 
cosmos(config-if)#

設定の確認:

cosmos#show queueing interface gigabitethernet 1/1
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Port is untrusted 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:   20[queue 1]  80[queue 2] 
    queue-limit ratios:     70[queue 1]  15[queue 2] 


    queue random-detect-min-thresholds 
??? ----------------------------- 
      1    20[1] 50[2] 
      2    20[1] 50[2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    50[1] 80[2] 
      2    40[1] 60[2] 

cosmos#show queueing interface fastethernet 3/1 
Interface FastEthernet3/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Port is untrusted 
  Default cos is 0 
  Transmit queues [type = 2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 

    WRR bandwidth ratios:  100[queue 1] 255[queue 2] 
    queue-limit ratios:     90[queue 1]  10[queue 2] 

    queue tail-drop-thresholds 
    -------------------------- 
    1     50[1] 100[2] 
    2     40[1] 100[2]

しきい値を設定して、ポートごとのキューに CoS を割り当てることはできません。 すべての変更は一連の連続したポートに適用されます。

  • ギガビット ラインカード用の 4 つのポート:ポート 1 から 4 までがまとめられ、ポート 5 から 8 までがまとめられます。

  • 10/100 のポートのための 12 のポートはか 100 つのファイバーポート並べる on?1q4t/2q2t を— 1 から 12、13 から 24、25 から 36、および 36 から 48 基づかせていました。

  • 同じ ASIC に属しているポートを判断するには、show interface capabilities コマンドを使用します。

出力スケジューリングの監視と設定の確認

出力スケジューリングを考慮してポートに対する現在のランタイム設定を確認するために発行する最も簡単なコマンドは、show queueing interface {gigabitethernet | fastethernet} slot/port コマンドです。 このコマンドによって、ポートのキューイングのタイプ、さまざまなキューやしきい値への CoS のマッピング、バッファ共有、WRR の重み付けが表示されます。 ここでは、重み付けは queue 1 に対しては 20% の WRR、queue 2 に対しては 80% の WRR になります。 また、出力スケジューリング用の設定済みのすべての情報と、各しきい値用の各キューに廃棄されるパケット数も表示されます。

cosmos#show queueing interface gigabitethernet 1/1
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Port is untrusted 
  Default COS is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 
    WRR bandwidth ratios:   20[queue 1]  80[queue 2] 
    queue-limit ratios:     70[queue 1]  15[queue 2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    50[1] 80[2] 
      2    40[1] 60[2] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 6 
    2     2      7 
    3     1      5 

  Receive queues [type = 1p1q4t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         Standard            4 
       2         Priority            1 
  

    queue tail-drop-thresholds 
    -------------------------- 
    1     100[1] 100[2] 100[3] 100[4] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    1     3      4 
    1     4      6 7 
    2     1      5 
  

  Packets dropped on Transmit: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1               0  [0 1 ] 
    1     2               0  [2 3 ] 
    2     1               0  [4 6 ] 
    2     2               0  [7 ] 
    3     1               0  [5 ] 

  Packets dropped on Receive: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1               0  [0 1 ] 
    1     2               0  [2 3 ] 
    1     3               0  [4 ] 
    1     4               0  [6 7 ] 
    2     1               0  [5 ]

出力スケジューリングの例

次のトラフィックは Catalyst 6500/6000 にインジェクトされます。

  • ポート ギガビット 1/2 内: 優先順位 0 の 1 ギガビット トラフィック

  • ポートギガビット 5/2:

    • 優先順位 7 の 133MB トラフィック

    • 優先順位 6 の 133MB トラフィック

    • 優先順位 5 の 133MB トラフィック

    • 優先順位 4 の 133MB トラフィック

    • 優先順位 3 の 133MB トラフィック

    • 優先順位 2 の 133MB トラフィック

    • 優先順位 1 の 133MB トラフィック

すべてのユニキャスト トラフィックは、ポート ギガビット 1/1 ごとでスイッチに存在し、かなりの加入超過になります。

ケース 1: QoS がイネーブルになり、デフォルト パラメータが使用される

show queueing interface gigabitethernet 1/1 コマンドは、この例ですべての出力を設定しています。 このコマンドは、入力スケジューリングについての追加情報を提供します。 ただし、このドキュメントは出力スケジューリングだけを対象にしているので、その出力は示していません。

QoS がグローバルにイネーブルになり、すべてのデフォルト パラメータが使用中である場合、2、3 分後に次の出力が生成されます。

nelix#show queueing interface gigabitethernet 1/1 
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Trust state: trust DSCP 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:  100[queue 1] 255[queue 2] 
    queue-limit ratios:     90[queue 1]   5[queue 2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    40[1] 100[2] 
      2    40[1] 100[2] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 
    2     2      6 7 
    3     1      5 

  Packets dropped on Transmit: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1       149606424  [0 1 ] 
    1     2               0  [2 3 ] 
    2     1        16551394  [4 ] 
    2     2         4254446  [6 7 ] 
    3     1               0  [5 ]

この出力で、デフォルト値は次のようになります。

  • queue 1 用の WRR の重み付け:100 / (100 + 255) = 28%

  • キュー 2 — 255/(のための WRR 重量 255 + 100) = 72%

  • バッファ共有: queue 1 に対しては 90%、queue 2 に対しては 5%、完全優先キューに対しては 5%

低優先度 WRR キューのほとんどのパケットは廃棄されますが、両方のしきい値に対して高優先度 WRR キューでもいくつかは廃棄されます。 合計で 170,412,264 の廃棄(149,606,424 + 16,551,394 + 4,254,446)があります。 これらの廃棄は次のように分割されます。

  • queue 1 の 149,606,424 / 170,412,264 = 88% のドロップ(CoS 0 および 1 の 1 番目のしきい値パケット)

  • queue 2 の 16,551,394 / 170,412,264 = 10% のドロップ(CoS 4 の 1 番目のしきい値パケット)

  • queue 2 の 4,254,446 / 170,412,264 = 2% のドロップ(CoS 6 または 7 の 2 番目のしきい値パケット)

注: 完全優先キューでは廃棄は確認されません。

ケース 2: WRR の重み付けの変更

ケース 1: QoS がイネーブルになり、デフォルト パラメータが使用される」セクションでも説明したように、queue 2 のパケットは引き続き廃棄されます。 queue 2 より多くの帯域幅を提供するために、WRR の重み付けを変更します。 ここで、queue 1 は時間の 4% を空にされ、queue 2 は時間の 96% を空にされます。

show run interface gigabitethernet 1/1 
interface GigabitEthernet1/1 
 no ip address 
 wrr-queue bandwidth 10 255 
 mls qos trust dscp 
 switchport 
 switchport mode access 
end 
  
nelix#show queueing interface gigabitethernet 1/1 
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Trust state: trust DSCP 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:   10[queue 1] 255[queue 2] 
    queue-limit ratios:     90[queue 1]   5[queue 2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    40[1] 100[2] 
      2    40[1] 100[2] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 
    2     2      6 7 
    3     1      5 

  Packets dropped on Transmit: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1         2786205  [0 1 ] 
    1     2               0  [2 3 ] 
    2     1           11363  [4 ] 
    2     2              69  [6 7 ] 
    3     1               0  [5 ]

この出力でわかるように、queue 2 の廃棄の割合はかなり低くなっています。 合計で 2,797,637 の廃棄が次のように分割されています。

  • queue 1 の 2,786,205 / 2,797,637 = 99.591% のドロップ(CoS 0 および 1 のパケットで)

  • queue 2 の 11,363 / 2,797,637 = 0.408% のドロップ(パケット CoS 4 の 1 番目のしきい値)

  • queue 2 の 69 / 2,797,637 = 0.001% のドロップ(CoS 6 および 7 のパケットの 2 番目のしきい値)

さまざまな WRR の重み付けを使用する場合、queue 2 の QoS はさらに多くなります。

ケース 3: その他の WRR の重み付けの変更

さらにアグレッシブな WRR の重み付けをすることもできます。 次の出力例では、重み付けの 0.39% だけが queue 1 に提供されています。

show run interface gigabitethernet 1/1 
interface GigabitEthernet1/1 
 no ip address 
 wrr-queue bandwidth 1 255 
 mls qos trust dscp 
 switchport 
 switchport mode access 
end 

nelix#show queueing interface gigabitethernet 1/1 
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Trust state: trust DSCP 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:    1[queue 1] 255[queue 2] 
    queue-limit ratios:     90[queue 1]   5[queue 2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    40[1] 100[2] 
      2    40[1] 100[2] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 
    2     2      6 7 
    3     1      5 
  
  Packets dropped on Transmit: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1         2535315  [0 1 ] 
    1     2               0  [2 3 ] 
    2     1             705  [4 ] 
    2     2              73  [6 7 ] 
    3     1               0  [5 ]

アグレッシブな WRR 重み付けがあったとしても、パケットは queue 2 に引き続き廃棄されています。 ただし、比較すると、そのパケット数は多くはありません。 queue 2 でのパケット廃棄は 0.03% だけになっています。

ケース 4: キュー制限バッファ割り当ての変更

ケース 2: WRR の重み付けの変更」セクションおよび「ケース 3: その他の WRR の重み付けの変更」セクションで説明しているように、パケットは queue 2 に引き続き廃棄されていますが、WRR の割合で廃棄を最小限にすることが保証されています。 ただし、queue 2 で 2 番目のしきい値(100% に設定されるもの)に到達すると、いくつかのパケットは引き続き廃棄されます。

これを改善するために、キュー制限(各キューに割り当てられるバッファのサイズ)を変更します。 次の例で、キュー制限は queue 1 に対しては 70%、queue 2 に対しては 15%、完全優先キューに対しては 15% に設定されています。

show run gigabitethernet 1/1
interface GigabitEthernet1/1 
 no ip address 
 wrr-queue bandwidth 1 255 
 wrr-queue queue-limit 70 15 
 mls qos trust dscp 
 switchport 
 switchport mode access 
end 

nelix#show queueing interface gigabitethernet 1/1 
Interface GigabitEthernet1/1 queueing strategy:  Weighted Round-Robin 
  Port QoS is enabled 
  Trust state: trust DSCP 
  Default cos is 0 
  Transmit queues [type = 1p2q2t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         WRR low             2 
       2         WRR high            2 
       3         Priority            1 

    WRR bandwidth ratios:    1[queue 1] 255[queue 2] 
    queue-limit ratios:     70[queue 1]  15[queue 2] 

    queue random-detect-max-thresholds 
    ---------------------------------- 
      1    40[1] 100[2] 
      2    40[1] 100[2] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    2     1      4 
    2     2      6 7 
    3     1      5 

  Receive queues [type = 1p1q4t]: 
    Queue Id    Scheduling  Num of thresholds 
    ----------------------------------------- 
       1         Standard            4 
       2         Priority            1 
  
    queue tail-drop-thresholds 
    -------------------------- 
    1     100[1] 100[2] 100[3] 100[4] 

    queue thresh cos-map 
    --------------------------------------- 
    1     1      0 1 
    1     2      2 3 
    1     3      4 
    1     4      6 7 
    2     1      5 
 
  Packets dropped on Transmit: 
    BPDU packets:  0 

    queue thresh    dropped  [cos-map] 
    --------------------------------------------------- 
    1     1       154253046  [0 1 ] 
    1     2               0  [2 3 ] 
    2     1               0  [4 ] 
    2     2               0  [6 7 ] 
    3     1               0  [5 ]

これで、廃棄は queue 1 だけで発生します。

出力スケジューリングを使用した遅延とジッタの削減

出力スケジューリングの例」セクションで示している事例では、出力ポートで加入超過が発生したときに VoIP やミッションクリティカルなトラフィックの廃棄を避けるために、出力スケジューリングを実装するメリットを示しています。 加入超過はそれほど頻繁にではありませんが、正常なネットワーク(特にギガビット リンク)で発生します。 加入超過が発生するのは、トラフィックのピーク時またはごく短時間内に発生するトラフィックのバーストの間だけです。

加入超過がない場合でも、出力スケジューリングは、QoS がエンド ツー エンドで実装されたネットワークではきわめて有効です。 このセクションでは、出力スケジューリングが遅延およびジッタを減らす方法についての例を紹介しています。

遅延の削減

パケットの遅延は、送信を待機しているときに各スイッチのバッファで「消失した」時間によって増加します。 たとえば、CoS 5 の小さい音声パケットが、大きいバックアップかファイル転送の間にポートから送られます。 出力ポートに QoS がなく、小さい音声パケットが 10 個の大きい 1500 バイト パケットの後でキューに入ると仮定します。 この場合、次のように、10 個の大きいパケットの送信に必要なギガビット速度の時間を簡単に計算できます。

  • (10 x 1500 x 8) = 120,000 ビットが 120 マイクロ秒の間に転送されます。

このパケットがネットワークを通過する間に 8 つか 9 つのスイッチを経由する必要がある場合、約 1 ミリ秒の遅延が生じる可能性があります。 これでカウントされているのは、ネットワーク内で経由するスイッチの出力キューでの遅延だけです。

注: 同じ 10 個の大きいパケットを、10 MB のインターフェイス(IP 電話と PC が接続されている場合など)でキューに入れる必要がある場合、発生する遅延は次のようになります。

  • (10 x 1500 x 8) = 120,000 ビットが 12 ミリ秒の間に転送されます。

出力スケジューリングの実装によって、5 の CoS を備えた音声パケットが完全優先キューに入れられ、5 未満の CoS のパケットの前に送信されます。 これによって遅延が削減されます。

ジッタの削減

出力スケジューリングのもう 1 つの重要なメリットは、ジッタの削減です。 ジッタとは、同じフロー内のパケットの遅延がばらついていることです。 次のサンプルのシナリオは、出力スケジューリングがジッタを削減できるしくみを示しています。

http://www.cisco.com/c/dam/en/us/support/docs/switches/catalyst-6000-series-switches/10587-73a.gif

このシナリオでは、同じ出力ポートで 2 つのストリームを送信する必要があります。

  • 1 つの入力音声ストリームは 10MB のイーサネット ポート上にあります。

  • 1 つの入力 FTP ストリームは 1 ギガビット イーサネット アップリンク ポートにあります。

どちらのストリームも、同じ出力ポートでスイッチから送信されます。 この例では、出力スケジューリングを使用しない場合に何が発生するかが示されます。 すべての大きなデータ パケットは、2 つの音声パケットの間でインターリーブされる可能性があります。 これにより、同じストリームからの音声パケットの受信でジッタが生成されます。 スイッチから大きいデータ パケットが送信されると、パケット 1 とパケット n + 1 の受信の間には比較的大きな遅延が伴います。 一方、n + 1 と n + 2 の間の遅延は無視できる程度です。 その結果、音声トラフィック ストリームのジッタが発生します。 完全優先キューを使用すると、この問題を容易に回避できます。 音声パケットの CoS 値を必ず完全優先キューにマップしてください。

結論

このドキュメントでは、Cisco IOS ソフトウェアが稼働している Catalyst 6500/6000 で出力キュー スケジューリングを設定してトラブルシューティングする方法の事例を説明しました。 また、音声トラフィックのあるほとんどのネットワークでの出力スケジューリングの次のメリットも確認しました。

  • 出力ポートで加入超過が発生した場合、重要なトラフィックの廃棄を避ける。

  • 遅延を削減する。

  • ジッタを削減する。

関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 10587