キューイングおよびスケジューリングの設定

キューイングおよびスケジューリングについて

トラフィックのキューイングとは、パケットの順序を設定して、データの入力と出力の両方に適用することです。デバイス モジュールでは複数のキューをサポートできます。これらのキューを使用することで、さまざまなトラフィック クラスでのパケットのシーケンスを制御できます。また、重み付けランダム早期検出(WRED)およびテール ドロップしきい値を設定することもできます。デバイスでは、設定したしきい値を超えた場合にだけパケットがドロップされます。

トラフィックのスケジューリングとは、トラフィックの一貫したフローを実現するために、パケットを必要な頻度で定期的に出力することです。トラフィックのスケジューリングをさまざまなトラフィック クラスに適用することで、プライオリティによってトラフィックに重み付けを行うことができます。

キューイングおよびスケジューリングのプロセスによって、トラフィック クラスに割り当てられる帯域幅を制御することができるので、ネットワークにおけるスループットと遅延の望ましいトレードオフを実現できます。

クラス マップの変更

システム定義のキューイング クラス マップが提供されます。


(注)  


提供されるシステム定義のキューイング クラス マップを変更することはできません。


輻輳回避

次の方式を使用して、デバイス上のトラフィックの輻輳を予防的に回避できます。

  • TCP または非 TCP トラフィックに WRED を適用します。

  • TCP または非 TCP トラフィックにテール ドロップを適用します。

輻輳管理

出力パケットについては、次のいずれかの輻輳管理方式を選択できます。

  • 最小データ レートをキューに割り当てる帯域幅を指定する方式。

  • トラフィックのクラスに対して最小および最大データ レートを強制する方式。これにより、余分なパケットがキューに保持され、出力レートがシェーピングされます。

  • トラフィックのクラスに対するすべてのデータをプライオリティ キューに割り当てる方式。残りの帯域幅は、デバイスによって他のキュー間で分配されます。

輻輳管理の設定の詳細については、「出力キューでの WRED の設定」 の項を参照してください。

明示的な混雑通知(ECN)(Explicit Congestion Notification)

ECN は WRED の拡張で、平均キュー長が特定のしきい値を超えた場合にパケットをドロップせずにマーキングします。WRED ECN 機能を設定すると、ルータとエンド ホストは、このマーキングをネットワークの輻輳によってパケットの送信速度が低下していることを示す警告として使用します。


(注)  


ECN 機能は、Cisco Nexus 9508 スイッチ(NX-OS 7.0(3)F3(3))ではサポートされていません。



(注)  


network-qos ポリシー クラスの WRED および ECN をイネーブルにすると、システムのすべてのポートで WRED および ECN がイネーブルにされることを意味します。



(注)  


拡張出力キュー(EOQ)では、帯域幅管理用の Approximate Fair-Drop(AFD)機能は常にイネーブルです。WRED の設定は EOQ では無視されます。EOQ の設定はポート ポリシー別ではなく、システム キューイング ポリシーに基づいています。


Approximate Fair Drop


(注)  


Cisco Nexus 9508 スイッチ(Cisco NX-OS Release NX-OS 7.0(3)F3(3))では、近似フェア ドロップはサポートされていません。


近似フェア ドロップ(AFD)は、輻輳時に長寿命の大規模フロー(エレファント フロー)に作用するアクティブ キュー管理(AQM)アルゴリズムで、短フロー(マウス フロー)には影響しません。

輻輳が発生すると、AFD アルゴリズムは、大規模なエレファント フローから確率的にパケットをドロップし、小規模なマウス フローには影響を与えずに、設定されたキューの望ましい値でキューの占有率を維持します。

パケットをドロップする確率は、入力時のフローの着信レート計算によって異なります。これは、エレファント トラップ(ETrap)によって計算されます。

明示的輻輳通知機能(ECN)は、パケットをドロップする代わりに輻輳状態をマーキングするために、特定のトラフィック クラスで AFD を使用できます。

エレファント トラップ(ETrap)

エレファント トラップ(ETrap)はフローを識別してハッシュし、ドロップ確率の計算のためにフローごとの到着レートを AFD に転送します。フローで受信したバイト数が Elephant trap byte-count-threshold で指定されたバイト数を超えると、フローはエレファント フローと見なされます。

AFD アルゴリズムは、エレファント フローとして認定されたフローにのみ適用できます。マウス フローは保護されており、AFD ドロップの影響を受けません。

フローが引き続きエレファント フローであるためには、設定されたタイマー期間に設定された bw_threshold のバイト数を受信する必要があります。それ以外の場合、フローは ETrap ハッシュ テーブルから削除されます。

すべてのエレファント フローの入力レートが計算され、AFD アルゴリズムが消費する出力に転送されます。

ECN が AFD で使用可能(イネーブル)になっている場合、パケットはドロップされるのではなく、輻輳を通知するようにマークされます。

ETrap には、設定可能な 3 つのパラメータがあります。

  • Byte-count

    Byte-count は、エレファント フローを識別するために使用されます。フローで受信したバイト数が byte-count-threshold で指定されたバイト数を超えると、そのフローはエレファント フローと見なされます。(デフォルトの byte-count は 1 MB 以下です)。

  • Age-period および Bandwidth-threshold

    Age-period および Bandwidth-threshold は、エレファント フローのアクティブ性を追跡するために一緒に使用されます。

    エージング期間中の平均帯域幅が設定された帯域幅しきい値よりも低い場合、エレファント フローは非アクティブと見なされ、タイムアウトになり、エレファント フロー テーブルから削除されます。(デフォルトの経過時間は 50 マイクロ秒です。デフォルトの bandwidth-threshold は 500 バイトです。

例:


switch (config)# hardware qos etrap age-period 50 usec
switch (config)# hardware qos etrap bandwidth-threshold 500 bytes
switch (config)# hardware qos etrap byte-count 1048555

AFD ユーザ プロファイル

AFD では次の 3 つのユーザ プロファイルが提供されます。

  • メッシュ(アグレッシブ)

    AFD および ETRAP タイマーはアグレッシブに設定されているため、キューの深さはそれほど大きくなく、キューの望ましい値の近くに維持されます。

  • バースト(デフォルト)

    AFD および ETRAP タイマーはアグレッシブでもコンサバティブでもないため、キューの深さがキューの望ましい値の近くにあることが確認できます。

  • ウルトラバースト(コンサバティブ)

    AFD タイマーと ETRAP タイマーはコンサバティブに設定されているため、より多くのバーストが吸収され、キューの深さの変動がキューの望ましい値の周辺で確認されます。

これらのプロファイルは、ETrap および AFD タイマーを、非常にバースト性のあるトラフィックまたはそれほどバースト性のないトラフィックなど、さまざまなトラフィック プロファイルに対して事前に設定された値に設定します。設定の柔軟性を高めるために、プロファイルで設定された ETrap period は、hardware qos etrap コマンドで ETrap age-period を設定することで上書きできます。ただし、AFD タイマーは変更できません。

次に、ETrap age-period の設定例を示します。

switch(config)# hardware qos etrap age-period 50 usec

次に、AFD ユーザ プロファイルの設定例を示します。

  • Mesh(Aggressive with ETrap age-period:20 µsec and AFD period:10 µsec)

    switch(config)# hardware qos afd profile mesh
    
    
  • Burst (Default with ETrap age-period: 50 µsec and AFD period: 25 µsec)

    switch(config)# hardware qos afd profile burst
    
    
  • Ultra-burst (Conservative with ETrap age-period: 100 µsec and AFD period: 50 µsec)

    switch(config)# hardware qos afd profile ultra-burst
    
    

AFD の注意事項と制約事項

AFD 設定時の注意事項と制約事項は次のとおりです。

  • Cisco NX-OS リリース 9.3(3) 以降、Cisco Nexus 9300-GX プラットフォーム スイッチは AFD および ETrap 機能をサポートしています。

  • AFD ポリシーがすでにシステム QoS に適用されており、2 つの一意の AFD キューイング ポリシーを設定している場合は、同じスライス上のポートにそれぞれ一意の AFD ポリシーを適用する必要があります。

    次に、同じスライスで一意の AFD ポリシーを作成して適用しない場合のシステム エラーの例を示します。

    Eth1/50    1a006200 1    0    40    255   196   -1    1     0     0    <<<slice 1
        Eth1/51    1a006400 1    0    32    255   200   -1    0     32    56   <<<slice 0
        Eth1/52    1a006600 1    0    64    255   204   -1    1     24    48   <<<slice 1
        Eth1/53    1a006800 1    0    20    255   208   -1    0     20    40   <<<slice 0
    
    switch(config)# interface ethernet 1/50
        switch(config-if)# service-policy type queuing output LM-out-40G
        switch(config)# interface ethernet 1/51
        switch(config-if)#service-policy type queuing output LM-out-100G
        switch(config)# interface ethernet 1/52
        switch(config-if)# service-policy type queuing output LM-out-100G
        Unable to perform the action due to incompatibility:  Module 1 returned status "Max profiles reached for unique values of queue management parameters (alpha, beta, max-threshold) in AFD config"
    
  • システム QoS に AFD ポリシーがすでに適用されていない場合は、異なるスライスのポートに同じ AFD ポリシーを設定するか、同じスライスのポートに異なる AFD ポリシーを設定できます。


    (注)  


    後でシステム QoS で AFD キューイングを設定することはできません。


    次に、AFD キューイングがすでにシステムに設定されている場合のシステム エラーの例を示します。

    interface Ethernet1/50
          service-policy type queuing output LM-out-40G
        interface Ethernet1/51
          service-policy type queuing output LM-out-40G
        interface Ethernet1/52
          service-policy type queuing output LM-out-100G
        interface Ethernet1/53
          service-policy type queuing output LM-out-100G
        interface Ethernet1/54
          service-policy type queuing output LM-out-100G
        
        (config-sys-qos)# service-policy type queuing output LM-out
        Unable to perform the action due to incompatibility:  Module 1 returned status "Max profiles reached for unique values of queue management parameters (alpha, beta, max-threshold) in AFD config"
    

WRED と AFD の違い

WRED と AFD はどちらも AQM アルゴリズムですが、輻輳の管理に役立つさまざまなアプローチがあります。

  • WRED はランダムなドロップ確率を計算し、トラフィック クラスのすべてのフローでパケットを無差別にドロップします。

  • AFD は、着信フローの到着レートに基づいてドロップ確率を計算し、計算された適正レートと比較し、マウス フローに影響を与えずに、エレファント フローからのパケットをドロップします。


(注)  


AFD と WRED を同時に適用することはできません。システムで使用できるのは 1 つだけです。


トラフィック シェーピング

トラフィック シェーピングでは、インターフェイスから出力されるトラフィックを制御して、リモート ターゲット インターフェイスの速度にフローを合わせ、指定されているポリシーにトラフィックを準拠させることができます。ダウンストリーム要件を満たすために、特定のプロファイルに適合するトラフィックをシェーピングすることができます。トラフィック シェーピングは、データ レートの不一致があるトポロジのボトルネックを解消します。

トラフィック シェーピングは、各ポートの出力キューに最大トラフィック レートを強制することで、パケット フローを制御および均一化します。しきい値を超えたパケットはキューに配置され、後で送信されます。トラフィック シェーピングはトラフィック ポリシングと似ていますが、パケットはドロップされません。パケットがバッファに入れられるため、トラフィック シェーピングでは、(キュー長に基づく)パケット損失が最小限に抑えられ、TCP トラフィックに対してより優れたトラフィック動作が実現します。

トラフィック シェーピングを使用して、使用可能な帯域幅へのアクセスの制御、トラフィックに対して設定されたポリシーへのトラフィックの確実な準拠、およびトラフィックのフロー規制を実施することにより、出力トラフィックがそのリモート インターフェイスやターゲット インターフェイスのアクセス速度を超過したときに発生する可能性のある、輻輳を回避することができます。たとえば、ポリシーによって、アクセス レートがインターフェイス速度を上回っていても、そのインターフェイスのレートが(平均で)特定のレートを上回るべきではないとされている場合に、帯域幅へのアクセスを制御できます。

キュー長のしきい値は、WRED 設定を使用して設定されます。


(注)  


トラフィック シェーピングは、ALE 対応デバイスの 40G 前面パネル ポートではサポートされません。システム レベルでトラフィック シェーピングが設定されている場合、この設定は無視され、エラー メッセージが表示されません。ポート レベルでトラフィック シェーピング コマンドが設定されている場合、この設定は拒否され、エラー メッセージが表示されます。


キューイングおよびスケジューリングの前提条件

キューイングおよびスケジューリングの前提条件は、次のとおりです。

  • モジュラ QoS CLI について理解している。

  • デバイスにログインしている。

キューイングとスケジュール設定のガイドラインおよび制約事項

キューイングおよびスケジューリングの設定に関する注意事項および制約事項は、次のとおりです。


(注)  


スケールの情報については、リリース特定の『Cisco Nexus 9000 Series NX-OS Verified Scalability Guide』を参照してください。


  • show コマンド(internal キーワード付き )はサポートされていません。

  • デバイスは、システム レベルのキューイング ポリシーをサポートしているため、キューイング ポリシーを設定する場合は、システムのすべてのポートに影響を与えます。

  • type queuing ポリシーは、システムまたは入力/出力トラフィックの個別のインターフェイスだけに結合できます。

  • 変更には中断が伴います。指定したポート タイプのポートを通過するトラフィックでは、短期間のトラフィック損失が発生する可能性があります。指定したタイプのポートがすべて影響を受けます。

  • パフォーマンスに影響が出ることがあります。1 つまたは複数の指定されたタイプのポートが、新規キューの動作を定義するために適用されたキューイング ポリシーが存在しない場合、そのキューに対するトラフィック マッピングはパフォーマンスの低下が発生する可能性があります。

  • トラフィック シェーピングは、パケットがキューイングされると、ストアアンドフォワード モードにフォール バックするため、キューイングによるパケットの遅延が大きくなる可能性があります。

  • トラフィック シェーピングは、Cisco Nexus 9300 ALE 40G のポートではサポートされません。ALE 40G アップリンク ポートの詳細については、『Cisco Nexus 9000 シリーズ スイッチの ALE 40G アップリンクポートの制限』を参照してください。

  • 1 個のクラス マップ キュー(SPQ)のプライオリティを設定する場合、QoS グループ 3 のプライオリティを設定してください。複数のクラス マップ キュー(SPQ)のプライオリティを設定する場合、これよりも大きな番号の QoS グループのプライオリティを設定してください。また、QoS グループは相互に隣接している必要があります。たとえば、2 個の SPQ を使用する場合は、QoS グループ 3 と QoS グループ 2 のプライオリティを設定する必要があります。

  • 100G 対応デバイス(N9K-M4PC-CFP2 GEM を搭載した Cisco Nexus 9300 プラットフォーム スイッチなど)のキュー制限について:

    • 動的キュー制限の最大アルファ値は、8 より大きくすることができます。ただし、サポートされる最大アルファ値は 8 です。アルファ値を 8 より大きい値に設定すると、上書きされて最大値に設定されます。

      アルファ値が上書きされても、メッセージは発行されません。

    • 静的キュー制限の最大セル数は 20,000 です。最大 20,000 セル制限を超える値を指定すると、20,000 セル制限で上書きされます。

      セル制限が上書きされても、メッセージは発行されません。

  • 100G 対応デバイス(N9K-M4PC-CFP2 GEM を搭載した Cisco Nexus 9300 シリーズ スイッチなど)では、WRED しきい値の最大セル数は 20,000 です。最大 20,000 セル制限を超える値を指定すると、20,000 セル制限で上書きされます。

    セル制限が上書きされても、メッセージは発行されません。

  • FEX のサポート対象:

    • NIF トラフィックに対する HIF のシステム入力(入力)レベル キューイング。

    • NIF から HIF へのトラフィックおよび HIF から HIF へのトラフィックのシステム出力(出力)レベル キューイング。

  • スイッチがサポートするシステム キューイング ポリシーが設定されている場合、FEX はデフォルト ポリシーを使用します。

  • FEX QoS システム レベル キューイング ポリシーは、WRED、キュー制限、シェーピング、またはポリシング機能をサポートしません。

  • FEX QoS システム レベル キューイング ポリシーは、複数のプライオリティ レベルをサポートしていません。

  • Cisco Nexus 9200 プラットフォームスイッチで高い alpha 値を割り当てると、使用可能なバッファ領域の予想される 50% を超える値が使用されます。

    低いアルファ値(7 以下)を割り当てると、予想される使用可能なバッファ領域の 50% が確実に使用されます。

  • Cisco Nexus 9200 プラットフォーム スイッチでは、静的制限がキューに設定されている場合、静的制限と動的制限の両方が動的しきい値(アルファ値)を使用して計算されます。

  • リーフ スパイン エンジン(LSE)対応スイッチの最大キュー占有率は、64K セル(最大 13 MB)に制限されています。

  • 次の Cisco Nexus シリーズ スイッチおよびライン カードの場合、出力シェーパーがキューごとに管理できる最小値は 100 Mbps です。

    • Cisco Nexus 9200 プラットフォーム スイッチ

    • Cisco Nexus 9300-EX/FX/FX2/GX プラットフォーム スイッチ

    • Cisco Nexus 9700-EX/FX ライン カード

  • Cisco NX-OS リリース 10.1(2) 以降、スケジュール設定 は N9K-X9624D-R2 および N9K-C9508-FM-R2 プラットフォーム スイッチでサポートされます。

  • R2 では、さまざまなプライオリティ レベルを CLI で設定できますが、キューイングポリシーではプライオリティ レベル 1 のみがサポートされます。

バッファ ブースト

バッファ ブースト機能により、ラインカードで追加バッファが使用できるようになります。この機能は Cisco Nexus 9564PX などのライン カードではデフォルトでイネーブルです。

  • バッファブースト機能をイネーブル化にするコマンドは、次のとおりです。buffer-boost

  • バッファブースト機能を無効にするコマンドは、次のとおりです。no buffer-boost

一般に、バッファブースト機能をディセーブルにしないことを推奨します。ただし、Cisco Nexus 9636PQ ベースのライン カードおよび Cisco Nexus 9564PX ベースのライン カードから、2 つの異なるメンバー ポートをポート チャネリングする必要がある場合には、バッファブーストをディセーブルにする必要があります。ただし、ACI 対応リーフ ライン カードとスタンドアロン ライン カードの間でこのような設定をポート チャネリングすることは推奨されません。


(注)  


Cisco Nexus 9636PQ などのライン カードは、バッファブースト機能を提供しません。


解決の順序

次に、一時停止バッファ設定の解決順序とプライオリティ グループのキュー制限について説明します。

  • バッファ設定の一時停止

    一時停止バッファの設定は、次の順序で解決されます。

    • インターフェイス入力キューイング ポリシー(適用されている場合、そのクラスにポーズ バッファ設定が指定されている場合)。

    • システム入力キューイング ポリシー(適用され、一時停止バッファ設定がそのクラスに指定されている場合)。

    • システム ネットワーク QoS ポリシー(適用されている場合、そのクラスのポーズ バッファ設定)。

    • ポートの速度に関するデフォルト値。

  • プライオリティ グループのキュー制限

    プライオリティ グループのキュー制限は、次の順序で解決されます。

    • インターフェイス入力キューイング ポリシー(適用され、そのクラスに queue-limit 設定が指定されている場合)。

    • システム入力キューイング ポリシー(適用され、そのクラスに queue-limit 設定が指定されている場合)。

    • hardware qos ing-pg-share 設定で指定された値。

    • システムのデフォルト値。

入力キューイング

入力キューイングに関する注意事項を次に示します。

  • デフォルトのシステム入力キューイング ポリシーはありません。

  • 入力キューイング ポリシーは、指定されたポーズ バッファ設定を上書きするために使用されます。

  • Cisco Nexus 9000 NX-OS の以前のリリースにダウングレードする場合は、すべての入力キューイング設定を削除する必要があります。

  • 入力キューイング機能は、プライオリティ フロー制御がサポートされているプラットフォームでのみサポートされます。

  • 入力キューイングは、100G ポートを備えたデバイスではサポートされません。

  • 入力キューイング ポリシーは、Cisco Nexus 9732C-EX ライン カードおよび Cisco Nexus 93108TC-EX および 93180YC-EX スイッチを搭載した Cisco Nexus 9508 スイッチでは、システム レベルでのみサポートされます(インターフェイス レベルではサポートされません)。

  • Cisco Nexus 9636C-R および 9636Q-R ライン カードと Cisco Nexus 9508-FM-R ファブリック モジュール(Cisco Nexus 9508 スイッチ内)は、入力キューイングをサポートします。

キューイングおよびスケジューリングの設定

キューイングおよびスケジューリングを設定するには、出力インターフェイスに適用する、タイプ キューイングのポリシー マップを作成します。ポリシー マップ内で使用し、ポリシーの適用先となるトラフィックのクラスを定義する、システム定義のクラス マップを変更することはできません。

システム定義のクラス マップの一致は、タイプ qos ポリシーを使用してカスタマイズできる QoS グループに基づきます。デフォルトでは、タイプ QoS ポリシーはなく、すべてのトラフィックが qos-group 0 に一致します。1 つの結果は、すべてのトラフィックがタイプ network-qos およびタイプ キューイング(qos-group 0 に 100% 帯域幅を割り当てる)のシステム定義のデフォルトクラスにヒットすることです。タイプ キューイングおよびタイプ ネットワーク QoS のシステム定義クラスは、異なる QoS グループに基づいて一致するように事前定義されており、変更できないため、トラフィックが特定のタイプキューイング/ネットワーク QoS クラスにヒットするようにするには、そのトラフィックに対応する QoS グループを設定するポリシータイプ QoS を設定します。0 以外の qos-group でシステム定義のクラス マップの一致に分類されるトラフィックの場合は、QoS グループを設定するタイプ QoS ポリシーを作成します。トラフィックがマッピングされると、デフォルト タイプの network-qos およびデフォルト以外の qos-group X(X!= 0) で動作するタイプ キューイング ポリシーに従います。必要なアクションを確保するために、これらのタイプ キューイングおよびタイプ network-qos ポリシーをさらにカスタマイズする必要がある場合があります(帯域幅の再割り当てなど)。qos-group の設定の詳細については、「モジュラ QoS CLI の使用」の章の「Example of set qos-groups」を参照してください。

ポリシー マップとクラス マップの設定の詳細については、「モジュラ QoS コマンドライン インターフェイス(CLI)の使用」の章を参照してください。

任意のキューで、輻輳回避機能(テール ドロップおよび WRED が含まれる)を設定できます。

出力キューでは、いずれかの出力輻輳管理機能(プライオリティ、トラフィック シェーピング、帯域幅など)を設定できます。


(注)  


WRED は、ALE 対応デバイスの前面パネルの 40G アップリンク ポートではサポートされません。システム レベルで WRED が設定されている場合、この設定は無視され、エラー メッセージは表示されません。ポート レベルで WRED が設定されている場合、この設定は拒否され、エラー メッセージが表示されます。


システム定義ポリシー マップである default-out-policy は、キューイング ポリシー マップを適用しないすべてのポートに付加されます。デフォルト ポリシー マップは設定できません。

タイプ キューイング ポリシーの設定

出力の type queuing ポリシーを使用して、特定のシステム クラスのトラフィックをスケジューリングおよびバッファリングします。type queuing ポリシーは QoS グループ で識別され、システムまたは入力または出力トラフィックの個別のインターフェイスに結合できます。


(注)  


入力キューイング ポリシーは、一時停止バッファのしきい値を設定するために使用されます。詳細については、「プライオリティ フロー制御」の項を参照してください。


手順の概要

  1. configure terminal
  2. policy-map type queuing policy-name
  3. class type queuing class-name
  4. priority
  5. no priority
  6. shape min Target-bit-rate [ kbps | mbps | gbps | mbps | pps] max Target-bit-rate [ kbps | mbps | gbps | mbps | pps]
  7. bandwidth percent percentage
  8. no bandwidth percent percentage
  9. priority level level
  10. queue-limit queue size [dynamic dynamic threshold]

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

グローバル コンフィギュレーション モードを開始します。

ステップ 2

policy-map type queuing policy-name

トラフィック クラスのセットに適用されるポリシーのセットを表す名前付きオブジェクトを作成します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuing class-name

クラス マップをポリシー マップに関連付け、指定されたシステム クラスのコンフィギュレーション モードを開始します。

ステップ 4

priority

このクラスの該当するトラフィックが完全プライオリティ キューにマッピングされるよう指定します。

ステップ 5

no priority

(任意)このクラスのトラフィックから完全プライオリティ キューイングを削除します。

ステップ 6

shape min Target-bit-rate [ kbps | mbps | gbps | mbps | pps] max Target-bit-rate [ kbps | mbps | gbps | mbps | pps]

キューの最小および最小シェイプ サイズを指定します。

ステップ 7

bandwidth percent percentage

クラスに重みを割り当てます。完全プライオリティ キューがない場合、クラスはインターフェイス帯域幅に割り当てられたパーセンテージを受け取ります。ただし、完全プライオリティ キューが存在する場合は、それが帯域幅の共有を最初に受け取ります。残りの帯域幅は、帯域幅のパーセンテージで設定されたクラス間の重み付けに基づいて共有されます。たとえば、完全プライオリティ キューが帯域幅の 90 パーセントを占めている状況で、あるクラスに 75 パーセントの重み付けが設定されている場合、そのクラスは帯域幅の残りの 10 パーセントのうちの 75 パーセントを受け取ることになります。

(注)  

 

まず class-default と class-fcoe のデフォルトの帯域幅設定を小さくすれば、そのクラスに帯域幅を正常に割り当てることができます。

ステップ 8

no bandwidth percent percentage

(任意)このクラスから帯域の指定を削除します。

ステップ 9

priority level level

(任意)Cisco Nexus 9000 シリーズ スイッチに、完全プライオリティ レベルを指定します。これらのレベルは 1 〜 7 です。

ステップ 10

queue-limit queue size [dynamic dynamic threshold]

(任意)Cisco Nexus 9000 シリーズ スイッチのキューで利用できる静的または動的な共有制限を指定します。静的なキュー制限は、増大するキューに固定のサイズを定義します。

(注)  

 

最小キューサイズ は 50 KB 以上である必要があります。

動的なキュー制限は、アルファ値の観点から利用可能なフリー セルの検出数によってキューのしきい値サイズを決定します。

(注)  

 

Cisco Nexus 9200 シリーズ スイッチは、アルファ値に関してクラス レベルの動的しきい値設定のみをサポートします。これは、クラス内のすべてのポートが同じアルファ値を共有することを意味します。

輻輳回避の設定

テール ドロップまたは WRED の機能を使用して輻輳回避を設定できます。どちらの機能も、出力のポリシー マップで使用できます。


(注)  


WRED およびテール ドロップを同じクラス内で設定することはできません。


出力キューでのテール ドロップの設定

しきい値を設定することにより、出力キューでテール ドロップを設定できます。しきい値を超えるパケットはすべて、デバイスによってドロップされます。しきい値は、キューで使用されるキュー サイズまたはバッファ メモリに基づいて指定できます。

手順の概要

  1. configure terminal
  2. hardware qos q-noise percent value
  3. policy-map [type queuing] [match-first] [policy-map-name]
  4. class type queuing class-name
  5. queue-limit {queue-size [bytes | kbytes | mbytes] | dynamic value}
  6. (任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。
  7. show policy-map [type queuing [policy-map-name | default-out-policy]]
  8. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:
switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します。

ステップ 2

hardware qos q-noise percent value

例:
switch(config)# hardware qos q-noise percent 30

ランダムノイズパラメータを調整します。デフォルト値は 20 パーセントです。

このコマンドは、Cisco Nexus 9200 および 9300-EX シリーズ スイッチの Cisco NX-OS リリース 7.0(3)I4(4) 以降)向けにサポートされています。

ステップ 3

policy-map [type queuing] [match-first] [policy-map-name]

例:
switch(config)# policy-map type queuing shape_queues
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 4

class type queuing class-name

例:
switch(config-pmap-que)# class type queuing c-out-q1
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 5

queue-limit {queue-size [bytes | kbytes | mbytes] | dynamic value}

例:
switch(config-pmap-c-que)# queue-limit 1000 mbytes

バイト、キロバイト、メガバイト単位のキュー サイズに基づいてテール ドロップしきい値を割り当てるか、使用可能な空きセルの数に応じてキューのしきい値サイズを動的に決定できるようにします。指定したしきい値を超えるパケットは、デバイスによってドロップされます。

バイトベースのキュー サイズの有効な値は 1 ~ 83886080 です。ダイナミック キューのサイズの有効な値は次の 0 ~ 10 です。

alpha の値

Network Forwarding Engine(NFE)対応スイッチ

リーフスパインエンジン(LSE)対応スイッチ

定義

キューごとの最大レート(%)

定義

キューごとの最大レート(%)

ASIC 値

0

1/128

~ 0.8 %

1/8

~ 11 %

0

1

1/64

~ 1.5 %

1/4

~ 20 %

1

2

1/32

~ 3 %

1/2

~ 33 %

3

3

1/16

~ 6 %

3/4

~ 42 %

5

4

1/8

~ 11 %

1 1/8

~ 53 %

8

5

1/4

20%

1 3/4

~ 64 %

14

6

1/2

~ 33 %

3

~ 75 %

16

7

1

50 %

5

~ 83 %

18

8

2

~ 66 %

8

~ 89 %

21

9

4

~ 80 %

14

~ 92.5

27

10

8

~ 89 %

18

~ 95 %

31

たとえば、ダイナミック キュー サイズとして 6 を設定すると、alpha 値は ½ です。ダイナミック キュー サイズとして 7 を設定すると、alpha 値は 1 です。

queue-limit を計算する際には、以下の点を考慮してください。

queue-limit = (alpha/(1 + alpha)) x バッファ合計数

たとえば、ダイナミック キュー サイズに 7 を使用して queue-limit を設定する場合、queue-limit の最大値は「(1/(1+1)) x 合計バッファ数」になります。つまり、「queue-limit = ½ x 合計バッファ数」となります。

(注)  

 

上記の計算によって最大キュー占有率が決定されますが、Application Spine Engine(ASE2、ASE3)およびリーフ スパイン エンジン(LSE)対応スイッチの場合、すべてのケースで最大キュー占有率は 64K セルに制限されます。

(注)  

 

ALE 対応デバイスでのしきい値の設定は、システム レベルでのみサポートされます。ポート レベルではサポートされません。

ステップ 6

(任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。

ステップ 7

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:
switch(config-pmap-c-que)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 8

copy running-config startup-config

例:
switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

出力キューでの WRED の設定

出力キューで WRED を設定し、最小および最大のパケット ドロップしきい値を設定できます。キュー サイズが最小しきい値を超えるにつれて、ドロップされるパケットの頻度が高くなります。最大しきい値を超えると、キューに対するすべてのパケットがドロップされます。


(注)  


WRED およびテール ドロップを同じクラス内で設定することはできません。



(注)  


AFD と WRED を同時に適用することはできません。システムで使用できるのは 1 つだけです。


手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuing class-name
  4. random-detect [minimum-threshold min-threshold {packets | bytes | kbytes | mbytes} maximum-threshold max-threshold {packets | bytes | kbytes | mbytes} drop-probability value weight value] [threshold {burst-optimized | mesh-optimized}] [ecn | non-ecn]
  5. (任意) 他のキューイング クラスに対する WRED を設定するには、ステップ 3 ~ 4 を繰り返します。
  6. (任意) congestion-control random-detect forward-nonecn

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:
switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:
switch(config)# policy-map type queuing p1
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuing class-name

例:
switch(config-pmap-que)# class type queuing c-out-q1
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

random-detect [minimum-threshold min-threshold {packets | bytes | kbytes | mbytes} maximum-threshold max-threshold {packets | bytes | kbytes | mbytes} drop-probability value weight value] [threshold {burst-optimized | mesh-optimized}] [ecn | non-ecn]

例:
switch(config-pmap-c-que)# random-detect
minimum-threshold 10 mbytes
maximum-threshold 20 mbytes
例:
switch(config-pmap-c-que)# random-detect non-ecn
minimum-threshold 1000 kbytes
maximum-threshold 4000 kbytes 
drop-probability 100
switch(config-pmap-c-que)# show queuing interface eth 1/1 | grep WRED
WRED Drop Pkts 		0
WRED Non ECN Drop Pkts	0 
switch(config-pmap-c-que)#

指定されたキューイング クラスの WRED を設定します。パケットをキューからドロップするのに使用する最小および最大のしきい値を指定できます。これらのしきい値は、パケット数、バイト数、キロバイト数、またはメガバイト数で設定できます。最小および最大のしきい値は同じタイプにする必要があります。しきい値は 1 ~ 52428800 です。

代わりに、バーストまたはメッシュ トラフィック用に最適化されたしきい値を指定するか、または明示的輻輳通知(ECN)に基づいてパケットをドロップするように WRED を設定できます。Cisco NX-OS Release 7.0(3)I6(1) 以降では、Network Forwarding Engine(NFE)プラットフォームは、非 ECN フローのドロップしきい値を設定するための non-ecn オプションをサポートしています。

(注)  

 

minimum-threshold および maximum-threshold パラメータは、Cisco Nexus 9300 プラットフォームスイッチおよび Cisco Nexus 9564TX および 9564PX ライン カードではサポートされていません。

random-detect が policy-map で設定されている場合、デフォルトのしきい値とドロップ確率は次のようになります。

  1. 新しいプラットフォームでは、しきい値は 0 であり、バッファ使用率に関係なくドロップ確率が適用されます。

  2. 古いプラットフォームでは、しきい値は最小 100 KB、最大 120 KB です。

ドロップ確率は、すべてのプラットフォームでバースト最適化とメッシュ最適化でそれぞれ 10% と 90% で一貫しています。

ステップ 5

(任意) 他のキューイング クラスに対する WRED を設定するには、ステップ 3 ~ 4 を繰り返します。

(任意)

ステップ 6

(任意) congestion-control random-detect forward-nonecn

例:
switch(config-pmap-c-que)# congestion-control random-detect forward-nonecn
(任意)

これはグローバル CLI コマンドです。非 ECN 対応トラフィックが WRED しきい値をバイパスし、出力キュー制限とテールドロップが発生するまで拡張できます。このコマンドは、WRED+ECN 設定で使用することを目的としており、非 ECN 対応トラフィックの WRED ドロップを回避することを意図しています。このオプションは、Cisco NX-OS リリース 7.0(3)I4(2) 以降で使用でき、Cisco Nexus 9200 プラットフォーム スイッチ、Cisco Nexus 93108TC-EX および 93180YC-EX スイッチ、および Cisco Nexus 9732C-EX ライン カードを搭載した Cisco Nexus 9508 スイッチでのみサポートされます。

Cisco NX-OS リリース 7.0(3)I4(5) 以降、この機能は Cisco Nexus 9636PQ ライン カードを搭載した Cisco Nexus 9508 スイッチおよび Cisco Nexus 3164Q スイッチでサポートされます。

出力キューでの AFD の設定

AFD は、出力キューイング ポリシー用に設定できます。


(注)  


Cisco Nexus 9508 スイッチ(NX-OS 7.0(3)F3(3))では、概算のフェア ドロップはサポートされていません。



(注)  


AFD と WRED を同時に適用することはできません。システムで使用できるのは 1 つだけです。



(注)  


さまざまなポート速度に対するの推奨値は次のとおりです。queue-desired

ポート速度

キューの値

10G

150 kbytes

40G

600 kbytes

100 G

1500 kbytes

キューの値はユーザが設定できます。



(注)  


AFD の設定後、次のようにポリシーをシステムまたはインターフェイスに適用できます。

  • システム

    
    switch(config)# system qos 
    switch(config-sys-qos)# service-policy type queuing output afd_8q-out
    
    
  • インターフェイス

    
    switch(config)# int e1/1
    switch(config-if)# service-policy type queuing output afd_8q-out 
    

手順の概要

  1. configure terminal
  2. policy-map type queuing afd_8q-out
  3. class type queuing c-out-8q-q3
  4. afd queue-desired <number> [bytes | kbytes | mbytes] [ecn]

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing afd_8q-out

タイプキューイングのポリシーマップを設定します。

ステップ 3

class type queuing c-out-8q-q3

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。

ステップ 4

afd queue-desired <number> [bytes | kbytes | mbytes] [ecn]

目的のキューを指定します。

  • ECN を使用しない AFD の設定

    
    switch(config)# policy-map type queuing afd_8q-out 
    switch(config-pmap-que)# class type queuing c-out-8q-q3
    switch(config-pmap-c-que)# afd queue-desired 600 kbytes 
    
  • ECN を使用した AFD の設定

    
    switch(config)# policy-map type queuing afd-ecn_8q-out 
    switch(config-pmap-que)# class type queuing c-out-8q-q3
    switch(config-pmap-c-que)# afd queue-desired 150 kbytes ecn 
    

輻輳管理の設定

次の輻輳管理方式のうちいずれか 1 つだけをポリシー マップで設定できます。

  • bandwidth および bandwidth remaining コマンドを使用して、最小のデータ レートをキューに割り当てる方式。

  • priority コマンドを使用して、トラフィックのクラスに対するすべてのデータをプライオリティ キューに割り当てる方式。bandwidth remaining コマンドを使用して、残りのトラフィックを非プライオリティ キュー間で分配できます。デフォルトでは、残りの帯域幅はシステムによって非プライオリティ キュー間で均等に分配されます。

  • shape コマンドを使用して、最小および最大のデータ レートをキューに割り当てる方式。

選択する輻輳管理機能に加えて、次のいずれかのキュー機能をポリシー マップの各クラスで設定できます。

  • キュー サイズとキュー制限の使用に基づくテール ドロップしきい値。詳細については、出力キューでのテール ドロップの設定を参照してください。

  • 優先パケットのドロップに対する WRED。詳細については、「出力キューでの WRED の設定」の項を参照してください。


    (注)  


    WRED は Cisco Nexus 9508 スイッチ(NX-OS 7.0(3)F3(3))ではサポートされません。


帯域幅および帯域幅の残量の設定

最小のインターフェイス帯域幅(%)をキューに割り当てるように、出力キューの帯域幅および残りの帯域幅を設定できます。


(注)  


保証帯域幅が設定されている場合、プライオリティ キューは同じポリシー マップでディセーブルにする必要があります。


手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuingclass-name
  4. インターフェイス帯域幅の最小レートを割り当てるか、または残りの帯域幅の割合を割り当てます。
    • 帯域幅の割合:

      bandwidth {percent percent}
    • 残りの帯域幅の割合:

      bandwidth remaining percent percent
  5. (任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。
  6. exit
  7. show policy-map [type queuing [policy-map-name | default-out-policy]]
  8. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:

switch(config)# policy-map type queuing shape_queues
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuingclass-name

例:

switch(config-pmap-que)# class type queuing c-out-q1
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

インターフェイス帯域幅の最小レートを割り当てるか、または残りの帯域幅の割合を割り当てます。

  • 帯域幅の割合:

    bandwidth {percent percent}
  • 残りの帯域幅の割合:

    bandwidth remaining percent percent

例:

  • 帯域幅の割合:

    switch(config-pmap-c-que)# bandwidth percent 25
  • 残りの帯域幅の割合:

    switch(config-pmap-c-que)# bandwidth remaining percent 25
  • 帯域幅の割合:

    基になるインターフェイスのリンク レートの割合としてインターフェイス帯域幅の最小レートを出力キューに割り当てます。範囲は 0 ~ 100 です。

    この例では、帯域幅を基になるリンク レートの最小 25% に設定しています。

  • 残りの帯域幅の割合:

    残りの帯域幅の割合をこのキューに割り当てます。範囲は 0 ~ 100 です。

    この例では、このキューの帯域幅を残りの帯域幅の 25% に設定しています。

ステップ 5

(任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。

ステップ 6

exit

例:

switch(config-cmap-que)# exit
switch(config)#

ポリシー マップ キュー モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 7

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:

switch(config-pmap-c-que)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 8

copy running-config startup-config

例:

switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

FEX の帯域幅および帯域幅の残量の設定

入力キューおよび出力キューの両方で帯域幅および帯域幅の残量を設定して、インターフェイス帯域幅の最小の割合をキューに割り当てることができます。


(注)  


保証帯域幅が設定されている場合、プライオリティ キューは同じポリシー マップでディセーブルにする必要があります。


始める前に

FEX を設定する前に、feature-set fex をイネーブルにします。

手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuingclass-name
  4. インターフェイス帯域幅の最小レートを割り当てるか、または残りの帯域幅の割合を割り当てます。
    • 帯域幅の割合:

      bandwidth {percent percent}
    • 残りの帯域幅の割合:

      bandwidth remaining percent percent
  5. (任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。
  6. exit
  7. show policy-map [type queuing [policy-map-name | default-out-policy]]
  8. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:

switch(config)# policy-map type queuing shape_queues
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuingclass-name

例:

switch(config-pmap-que)# class type queuing c-out-q1
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

インターフェイス帯域幅の最小レートを割り当てるか、または残りの帯域幅の割合を割り当てます。

  • 帯域幅の割合:

    bandwidth {percent percent}
  • 残りの帯域幅の割合:

    bandwidth remaining percent percent

例:

  • 帯域幅の割合:

    switch(config-pmap-c-que)# bandwidth percent 25
  • 残りの帯域幅の割合:

    switch(config-pmap-c-que)# bandwidth remaining percent 25
  • 帯域幅の割合:

    基になるインターフェイスのリンク レートの割合としてインターフェイス帯域幅の最小レートを出力キューに割り当てます。範囲は 0 ~ 100 です。

    この例では、帯域幅を基になるリンク レートの最小 25% に設定しています。

  • 残りの帯域幅の割合:

    残りの帯域幅の割合をこのキューに割り当てます。範囲は 0 ~ 100 です。

    この例では、このキューの帯域幅を残りの帯域幅の 25% に設定しています。

ステップ 5

(任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。

ステップ 6

exit

例:

switch(config-cmap-que)# exit
switch(config)#

ポリシー マップ キュー モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 7

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:

switch(config-pmap-c-que)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 8

copy running-config startup-config

例:

switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

次に、インターフェイスの帯域幅を設定する例を示します。


switch(config)# policy-map type queuing inq
switch(config-pmap-que)# class type queuing c-in-q3
switch(config-pmap-c-que)# bandwidth percent 30
switch(config-pmap-que)# class type queuing c-in-q2
switch(config-pmap-c-que)# bandwidth percent 20
switch(config-pmap-que)# class type queuing c-in-q1
switch(config-pmap-c-que)# bandwidth percent 10
switch(config-pmap-que)# class type queuing c-in-q-default
switch(config-pmap-c-que)# bandwidth percent 40

プライオリティの設定

プライオリティを指定しない場合、システム定義の出力 pq キューは標準キューと同様に動作します。システム定義のタイプ キューイング クラス マップについては、「モジュラ QoS コマンドライン インターフェイス(MQC)の使用」の項を参照してください。

出力プライオリティ キューで設定できるプライオリティのレベルは 1 レベルだけです。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のプライオリティ キュー クラスを使用します。

非プライオリティ キューについては、各キューに割り当てる残りの帯域幅の量を設定できます。デフォルトでは、デバイスは残りの帯域幅を非プライオリティ キューに均等に配分します。


(注)  


プライオリティ キューが設定されている場合、もう一方のキューは、同じポリシー マップで残りの帯域幅しか使用できません。



(注)  


1 個のクラス マップ キュー(SPQ)のプライオリティを設定する場合、QoS グループ 3 のプライオリティを設定する必要があります。複数のクラス マップ キュー(SPQ)のプライオリティを設定する場合、これよりも大きな番号の QoS グループのプライオリティを設定する必要があります。また、QoS グループは、相互に隣接している必要があります。たとえば、2 個の SPQ を使用する場合は、QoS グループ 3 と QoS グループ 2 のプライオリティを設定する必要があります。


手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuing class-name
  4. priority [level value]
  5. class type queuingclass-name
  6. bandwidth remaining percent percent
  7. (任意)他の非プライオリティ キューに対する残りの帯域幅を割り当てるには、ステップ 5 ~ 6 を繰り返します。
  8. exit
  9. show policy-map [type queuing [policy-map-name | default-out-policy]]
  10. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:

switch(config)# policy-map type queuing priority_queue1
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuing class-name

例:

switch(config-pmap-que)# class type queuing c-out-q1
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

priority [level value]

例:

switch(config-pmap-c-que)# priority

このキューをプライオリティ キューとして選択します。サポートされているプライオリティ レベルは 1 レベルだけです。

ステップ 5

class type queuingclass-name

例:

switch(config-pmap-que)# class type queuing c-out-q2
switch(config-pmap-c-que)#

(任意)タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

残りの帯域幅を設定する非プライオリティ キューを選択します。デフォルトでは、残りの帯域幅はシステムによって非プライオリティ キュー間で均等に分配されます。

ステップ 6

bandwidth remaining percent percent

例:

switch(config-pmap-c-que)# bandwidth remaining percent 25

(任意)残りの帯域幅の割合をこのキューに割り当てます。範囲は 0 ~ 100 です。

ステップ 7

(任意)他の非プライオリティ キューに対する残りの帯域幅を割り当てるには、ステップ 5 ~ 6 を繰り返します。

ステップ 8

exit

例:

switch(config-cmap-que)# exit
switch(config)#

ポリシー マップ キュー モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 9

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:

switch(config)# show policy-map type queuing priority_queue1

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 10

copy running-config startup-config

例:

switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

FEX のプライオリティの設定


(注)  


FEX のプライオリティは、Cisco Nexus 9508 スイッチ(NX-OS 7.0(3)F3(3))ではサポートされません。


プライオリティを指定しない場合、システム定義の出力 pq キューは標準キューと同様に動作します。システム定義のタイプ キューイング クラス マップについては、「モジュラ QoS コマンドライン インターフェイス(MQC)の使用」の項を参照してください。

出力プライオリティ キューで設定できるプライオリティのレベルは 1 レベルだけです。ポリシー マップの適用先となるモジュールのタイプに対応した、システム定義のプライオリティ キュー クラスを使用します。

非プライオリティ キューについては、各キューに割り当てる残りの帯域幅の量を設定できます。デフォルトでは、デバイスは残りの帯域幅を非プライオリティ キューに均等に配分します。


(注)  


プライオリティ キューが設定されている場合、もう一方のキューは、同じポリシー マップで残りの帯域幅しか使用できません。



(注)  


1 個のクラス マップ キュー(SPQ)のプライオリティを設定する場合、QoS グループ 3 のプライオリティを設定する必要があります。複数のクラス マップ キュー(SPQ)のプライオリティを設定する場合、これよりも大きな番号の QoS グループのプライオリティを設定する必要があります。また、QoS グループは、相互に隣接している必要があります。たとえば、2 個の SPQ を使用する場合は、QoS グループ 3 と QoS グループ 2 のプライオリティを設定する必要があります。


始める前に

FEX を設定する前に、feature-set fex をイネーブルにします。

手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuing class-name
  4. priority [level value]
  5. class type queuing class-name
  6. bandwidth remaining percent percent
  7. (任意)他の非プライオリティ キューに対する残りの帯域幅を割り当てるには、ステップ 5 ~ 6 を繰り返します。
  8. exit
  9. show policy-map [type queuing [policy-map-name | default-out-policy]]
  10. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:

switch(config)# policy-map type queuing priority_queue1
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuing class-name

例:

switch(config-pmap-que)# class type queuing c-out-q3
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

priority [level value]

例:

switch(config-pmap-c-que)# priority

このキューをプライオリティ キューとして選択します。サポートされているプライオリティ レベルは 1 レベルだけです。

(注)  

 

FEX QoS プライオリティは、c-out-q3 クラス マップでのみサポートされます。

ステップ 5

class type queuing class-name

例:

switch(config-pmap-que)# class type queuing c-out-q3
switch(config-pmap-c-que)#

(任意)タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

残りの帯域幅を設定する非プライオリティ キューを選択します。デフォルトでは、残りの帯域幅はシステムによって非プライオリティ キュー間で均等に分配されます。

ステップ 6

bandwidth remaining percent percent

例:

switch(config-pmap-c-que)# bandwidth remaining percent 25

(任意)残りの帯域幅の割合をこのキューに割り当てます。範囲は 0 ~ 100 です。

ステップ 7

(任意)他の非プライオリティ キューに対する残りの帯域幅を割り当てるには、ステップ 5 ~ 6 を繰り返します。

ステップ 8

exit

例:

switch(config-cmap-que)# exit
switch(config)#

ポリシー マップ キュー モードを終了し、グローバル コンフィギュレーション モードを開始します。

ステップ 9

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:

switch(config)# show policy-map type queuing priority_queue1

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 10

copy running-config startup-config

例:

switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

次に、プライオリティ レベルを設定する例を示します。


switch(config)# policy-map type queuing inq_pri
switch(config-pmap-que)# class type queuing c-in-q3
switch(config-pmap-c-que)# priority
switch(config-pmap-que)# class type queuing c-in-q2
switch(config-pmap-c-que)# bandwidth remaining percent 20
switch(config-pmap-que)# class type queuing c-in-q1
switch(config-pmap-c-que)# bandwidth remaining percent 40
switch(config-pmap-que)# class type queuing c-in-q-default
switch(config-pmap-c-que)# bandwidth remaining percent 40

トラフィック シェーピングの設定

出力キューでトラフィック シェーピングを設定し、出力キューに最小および最大レートを強制できます。


(注)  


キューのトラフィック シェーピング設定は、同じポリシー マップ内でプライオリティや帯域幅に依存しません。



(注)  


システム キューイング ポリシーは、内部ポートおよび前面パネル ポートの両方に適用されます。トラフィック シェーピングがシステムのキューイング ポリシーでイネーブルの場合、トラフィック シェーピングは内部ポートにも適用されます。ベスト プラクティスとして、システム キューイング ポリシーでトラフィック シェーピングをイネーブルにしないでください。



(注)  


トラフィック シェーピングは、Cisco Nexus 9300 40 G のポートではサポートされません。



(注)  


出力シェーパーがキューごとに管理できる最小値は、Cisco Nexus 9200 シリーズ、9300-EX/FX/FX2//GX、および 9700-EX/FX スイッチで 100 Mbps です。


始める前に

パケットのランダム検出の下限および上限しきい値を設定します。

手順の概要

  1. configure terminal
  2. policy-map type queuing {[match-first] policy-map-name}
  3. class type queuing class-name
  4. shape min value {bps | gbps | kbps | mbps | pps} max value {bps | gbps | kbps | mbps | pps}
  5. (任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。
  6. show policy-map [type queuing [policy-map-name | default-out-policy]]
  7. copy running-config startup-config

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

policy-map type queuing {[match-first] policy-map-name}

例:

switch(config)# policy-map type queuing shape_queues
switch(config-pmap-que)#

タイプ キューイングのポリシー マップを設定し、指定したポリシー マップ名のポリシー マップ モードを開始します。ポリシー マップ名は、最大 40 文字の英字、ハイフン、または下線文字を使用でき、大文字と小文字が区別されます。

ステップ 3

class type queuing class-name

例:

switch(config)# class type queuing c-out-q-default
switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名は、前述の「システム定義のタイプ キューイング クラス マップ」表に示されています。

ステップ 4

shape min value {bps | gbps | kbps | mbps | pps} max value {bps | gbps | kbps | mbps | pps}

例:

switch(config-pmap-c-que)# shape min 100 mbps max 150 mbps

出力キューの最小および最大ビット レートを割り当てます。デフォルトのビット レートは bps です。

この例では、最小レート 100 メガビット(メガビット/秒)および最大レート 150 mbps にトラフィックをシェーピングしています。

(注)  

 

トラフィック シェーピングが必要なほとんどのシナリオでは、max shaper 値のみの設定が必要です。たとえば、トラフィックをシェーピングし、必要な最大レートに制限する場合は、最小シェーパー値を 0 に、最大シェーパー値を最大必要レートに設定します。

最小シェーパー値は、保証レートが必要な特定のシナリオにのみ設定する必要があります。たとえば、トラフィックに保証レートを設定する場合は、最小シェーパー値を保証レートとして設定し、最大値を保証レート(またはポート速度レートの最大値)よりも大きい値に設定します。

ステップ 5

(任意)他のキュー クラスに対するテール ドロップしきい値を割り当てるには、ステップ 3 および 4 を繰り返します。

ステップ 6

show policy-map [type queuing [policy-map-name | default-out-policy]]

例:

switch(config)# show policy-map type queuing shape_queues

(任意)設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

ステップ 7

copy running-config startup-config

例:

switch(config)# copy running-config
startup-config

(任意)実行コンフィギュレーションをスタートアップ コンフィギュレーションに保存します。

システムでのキューイング ポリシーの適用

システムのキューイング ポリシーをグローバルに適用します。

手順の概要

  1. configure terminal
  2. system qos
  3. service-policy type queuing output {policy-map-name | default-out-policy}

手順の詳細

  コマンドまたはアクション 目的

ステップ 1

configure terminal

例:

switch# configure terminal
switch(config)#

グローバル コンフィギュレーション モードを開始します

ステップ 2

system qos

例:

switch (config)# system qos
switch (config-sys-qos)#

システム qos モードを開始します。

ステップ 3

service-policy type queuing output {policy-map-name | default-out-policy}

例:

switch (config-sys-qos)# service-policy type queuing map1

ポリシー マップをシステムの入力パケットまたは出力パケットに追加します。

(注)  

 

output キーワードは、そのポリシー マップがインターフェイスの送信トラフィックに適用される必要があることを示します。

(注)  

 

システムをデフォルトのキューイング サービス ポリシーに戻すには、このコマンドの no 形式を使用します。

キューイングおよびスケジューリングの設定の確認

キューイングおよびスケジューリングの設定を確認するには、次のコマンドを使用します:

コマンド

目的

show class-map [type queuing [ class-name]]

設定済みのすべてのクラス マップ、すべてのタイプ キューイングのクラス マップ、または選択したタイプ キューイングのクラス マップについて、情報を表示します。

show policy-map [type queuing [policy-map-name | default-out-policy]]

設定済みのすべてのポリシー マップ、すべてのタイプ キューイングのポリシー マップ、または選択したタイプ キューイングのポリシー マップ、またはデフォルトの出力キューイング ポリシーについて、情報を表示します。

show policy-map system

システムの設定済みのすべてのポリシー マップに関する情報を表示します。

QoS 共有バッファの制御

QoS バッファは、ポート/キューおよび共有スペースごとにサポートします。予約をディセーブルまたは制限することで、すべてのフローで共有される QoS バッファを制御できます。

このコマンドは、QoS 共有バッファを制御するために使用されます。hardware qos min-buffer

hardware qos min-buffer [all|default|none]

  • all

    すべての予約が有効になっている現在の動作(ON)。

  • default

    qos-group-0 に対してのみ予約をイネーブルにします。

  • none

    すべての qos-group の予約をディセーブルにします。

このコマンドは、現在のバッファ設定を表示するために使用されます。show hardware qos min-buffer

ダイナミックバッファ共有の管理

NX-OS 7.0(3)I7(4)以降では、スライス間でのダイナミックバッファ共有(出力バッファリング)が hardware qos dynamic-buffer-sharing コマンドで設定されます。コマンドの後に、スイッチをリロードしてダイナミックバッファリングをイネーブルにする必要があります。

バッファ共有は、ダイナミックバンク割り当て(1 バンク= 4k セル、1 セル= 416 バイト)によって有効になり、スライスに分散されるバンクを管理するグローバルコントローラ(eCPU)によって制御されます。ダイナミックバッファ共有では、各スライスに 6 個の予約済みバンク(10MB)が提供され、スライス間で共有用に 12 個のバンク(20MB)が提供されます。


(注)  


ダイナミックバッファ共有は、Nexus 9300-FX2 プラットフォームスイッチでのみサポートされます。「Nexus スイッチプラットフォームサポートマトリックス」を参照してください。


QoS パケット バッファのモニタリング

Cisco Nexus 9000 シリーズ デバイスには、ポートおよびダイナミック共有メモリごとに専用として区切られた 12 MB のメモリ バッファがあります。各前面パネル ポートの出力には、4 個のユニキャスト キューと 4 個のマルチキャスト キューがあります。バーストまたは輻輳シナリオでは、各出力ポートはダイナミック共有メモリからバッファを消費します。

共有バッファのリアルタイムおよびピーク ステータスをポートごとに表示できます。セルの数に関して、すべてのカウンタが表示されます。各セルは 208 バイトです。また消費量と使用可能なセルの数に関して、グローバル レベル バッファの消費を表示できます。


(注)  


ALE 対応デバイスの共有バッファのモニタリングは、ポート レベルではサポートされていません。



(注)  


ここで紹介する例では、ポート番号は Broadcom ASIC のポートです。


次に、システム バッファ最大セル使用量カウンタをクリアする例を示します。

switch# clear counters buffers
Max Cell Usage has been reset successfully

次に、特定のモジュールのバッファ使用率のしきい値を設定する例を示します。

switch(config)# hardware profile buffer info port-threshold module 1 threshold 10
Port threshold changed successfully


(注)  


バッファしきい値機能は、no-drop クラスを設定している場合(PFC)、ポートでイネーブルになっていません。



(注)  


設定されたしきい値のバッファ カウントは、ポートのすべてのキューにおいて、そのポートに使用されるすべてのバッファに対して、5 秒ごとにチェックされます。



(注)  


すべてのモジュールまたは特定のモジュールのすべてのポートに適用される、しきい値の割合を設定できます。デフォルトのしきい値は、共有プール SP-0 スイッチのセル数の 90% です。この設定は、イーサネット(前面パネル)ポートおよび内部(HG)ポートの両方に適用されます。



(注)  


バッファしきい値機能は、ACI 対応デバイス ポートではサポートされません。


次に、インターフェイス ハードウェア マッピングを表示する例を示します。

switch# show interface hardware-mappings 
Legends:
       SMod  - Source Mod. 0 is N/A
       Unit  - Unit on which port resides. N/A for port channels
       HPort - Hardware Port Number or Hardware Trunk Id:
       FPort - Fabric facing port number. 255 means N/A
       NPort - Front panel port number
       VPort - Virtual Port Number. -1 means N/A

--------------------------------------------------------------------
Name       Ifindex  Smod Unit HPort FPort NPort VPort
--------------------------------------------------------------------
Eth2/1     1a080000 4    0    13    255   0     -1   
Eth2/2     1a080200 4    0    14    255   1     -1   
Eth2/3     1a080400 4    0    15    255   2     -1   
Eth2/4     1a080600 4    0    16    255   3     -1   
Eth2/5     1a080800 4    0    17    255   4     -1   
Eth2/6     1a080a00 4    0    18    255   5     -1   
Eth2/7     1a080c00 4    0    19    255   6     -1   
Eth2/8     1a080e00 4    0    20    255   7     -1   
Eth2/9     1a081000 4    0    21    255   8     -1   
Eth2/10    1a081200 4    0    22    255   9     -1   
Eth2/11    1a081400 4    0    23    255   10    -1   
Eth2/12    1a081600 4    0    24    255   11    -1   
Eth2/13    1a081800 4    0    25    255   12    -1   
Eth2/14    1a081a00 4    0    26    255   13    -1   
Eth2/15    1a081c00 4    0    27    255   14    -1   
Eth2/16    1a081e00 4    0    28    255   15    -1   
Eth2/17    1a082000 4    0    29    255   16    -1   
Eth2/18    1a082200 4    0    30    255   17    -1   
Eth2/19    1a082400 4    0    31    255   18    -1   
Eth2/20    1a082600 4    0    32    255   19    -1   
Eth2/21    1a082800 4    0    33    255   20    -1   
Eth2/22    1a082a00 4    0    34    255   21    -1   
Eth2/23    1a082c00 4    0    35    255   22    -1   
Eth2/24    1a082e00 4    0    36    255   23    -1 

キューイングおよびスケジューリングの設定例

ここでは、キューイングおよびスケジューリングの設定例を示します。


(注)  


デフォルトのシステム クラスは、qos-group に基づいてキューイング一致を入力します(デフォルトでは、qos-group 0 にすべてのトラフィックが一致し、このデフォルト キューは 100%の帯域幅を取得します)。タイプ キューイング クラスおよびポリシーに適切に一致するように、最初に qos-group を設定するタイプ QoS ポリシーを作成します。


例:出力キューでの WRED の設定

次に、出力キューの WRED 機能を設定する例を示します。

configure terminal
  class-map type queuing match-any c-out-q1
    match qos-group 1
  class-map type queuing match-any c-out-q2
    match qos-group 1
  policy-map type queuing wred
    class type queuing c-out-q1
      random-detect minimum-threshold 10 bytes maximum-threshold 1000 bytes
    class type queuing c-out-q2
      random-detect threshold burst-optimized ecn

例:トラフィック シェーピングの設定

次に、各クラスに 500 mbps と 1000 mbps を使用してトラフィック シェーピングを設定する例を示します。

configure terminal
  class-map type queuing match-any c-out-q1
    match qos-group 1
  class-map type queuing match-any c-out-q2
    match qos-group 1
policy-map type queuing pqu
  class type queuing c-out-8q-q3
    bandwidth percent 20
    shape min 100 mbps max 500 mbps
  class type queuing c-out-8q-q2
    bandwidth percent 30
    shape min 200 mbps max 1000 mbps
  class type queuing c-out-8q-q-default
    bandwidth percent 50
  class type queuing c-out-8q-q1
    bandwidth percent 0
  class type queuing c-out-8q-q4
    bandwidth percent 0
  class type queuing c-out-8q-q5
    bandwidth percent 0
  class type queuing c-out-8q-q6
    bandwidth percent 0
  class type queuing c-out-8q-q7
    bandwidth percent 0
system qos
  service-policy type queuing output pqu