Cisco Nexus 9000 シリーズ NX-OS QoS コンフィギュレーション ガイド リリース 6.x
キューイングおよびスケジューリングの設定
キューイングおよびスケジューリングの設定
発行日;2014/01/21 | 英語版ドキュメント(2013/11/21 版) | ドキュメントご利用ガイド | ダウンロード ; この章pdf , ドキュメント全体pdf (PDF - 1MB) | フィードバック

目次

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

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

クラス マップの変更

輻輳回避

輻輳管理

明示的輻輳通知について

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

キューイングおよびスケジューリングのライセンス要件

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

注意事項と制約事項

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

QoS グループのキューイング クラス マップの変更

輻輳回避の設定

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

出力キューでの WRED の設定

輻輳管理の設定

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

プライオリティの設定

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

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

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

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

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

例:QoS グループのキューイング クラス マップの変更およびプライオリティおよびキュー制限の設定

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

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

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

この章では、Cisco NX-OS デバイス上で QoS のキューイングおよびスケジューリング機能を設定する方法について説明します。この章は、次の項で構成されています。

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

「キューイングおよびスケジューリングのライセンス要件」

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

「注意事項と制約事項」

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

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

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

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

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

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

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

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

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

この項では、次のトピックについて取り上げます。

「クラス マップの変更」

「輻輳回避」

「輻輳管理」

「明示的輻輳通知について」

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

クラス マップの変更

システム定義のキューイング クラス マップによって照合される QoS グループを変更できます。QoS グループはそれぞれ、同じタイプのキュー内に 1 回だけ出現します。

システムのデフォルトのキューイング クラス マップを変更するには、キューイング クラス マップでのすべての変更がトラフィックの中断やパケットの廃棄を招く可能性があるため、インターフェイスに適用されるポリシーも変更する必要があります。


注意 システム定義のキューイング クラス マップを変更すると、ただちに変更が行われます。そのため、トラフィックが中断されることがあります。


) CoS とキューとのマッピングは事前に決定され、変更できません。


クラス マップの設定については、「QoS グループのキューイング クラス マップの変更」を参照してください。

輻輳回避

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

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

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

輻輳管理

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

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

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

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

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

明示的輻輳通知について

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


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


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

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

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

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

トラフィック シェーピング レートはキロビット/秒(kbps)またはパケット/秒(pps)で設定でき、ユニキャストのキューに適用されます。キュー長のしきい値は、WRED 設定を使用して設定されます。

キューイングおよびスケジューリングのライセンス要件

次の表に、この機能のライセンス要件を示します。

 

製品
ライセンス要件

Cisco NX-OS

QoS 機能にライセンスは必要ありません。ライセンス パッケージに含まれていない機能は NX-OS イメージにバンドルされており、無料で提供されます。Cisco NX-OS のライセンス スキームの詳細については、『 Cisco NX-OS Licensing Guide 』を参照してください。

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

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

「モジュラ QoS コマンドライン インターフェイス(MQC) の使用」に精通している。

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

注意事項と制約事項

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

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

システム クラス マップへの変更はすぐに反映されます。指定した QoS グループは、新しいキューにすぐにマッピングされます。

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

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

デフォルトでは、未使用のキューにはバッファが割り当てられていません。これらのキューにバッファを割り当てることで、テール ドロップを防止します。

システム定義のクラス マップを設定する際は注意が必要です。ただちに変更が行われるため、トラフィックが中断される可能性があります。

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

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

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

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

任意のキューで、輻輳回避機能(テール ドロップおよび WRED が含まれる)を設定できます。出力キューでは、いずれかの出力輻輳管理機能(プライオリティ、トラフィック シェーピング、帯域幅など)を設定できます。

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

この項では、次のトピックについて取り上げます。

「QoS グループのキューイング クラス マップの変更」

「輻輳回避の設定」

「輻輳管理の設定」

QoS グループのキューイング クラス マップの変更

システム定義のクラス マップによって照合される QoS グループを変更できます。変更はただちに実行され、変更されたクラス マップを使用しているすべてのポートに適用されます。

デバイスでは、ユーザが他のキュー内で設定した QoS グループが自動的に変更されます。そのため、QoS グループはそれぞれ、同じタイプのキュー内に 1 回だけ出現します。

手順の概要

1. configure terminal

2. class-map type queuing match-any class-name

3. match qos-group value-range

4. (任意)他のキューの QoS グループを変更するには、ステップ 2 および 3 を繰り返します。

5. (任意) show class-map [type queuing [ class-name ]]

6. (任意)copy running-config startup-config

手順の詳細

 

コマンド
目的

ステップ 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

class-map type queuing match-any class-name

 

Example:

switch(config)# class-map type queuing match-any c-out-q1

switch(config-cmap-que)#

タイプ キューイングのクラス マップを設定し、クラス マップ キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 3

match qos-group value-range

 

Example:

switch(config-cmap-que)# match qos-group 0-1,3

このキューによって照合される QoS グループの範囲を設定します。値の範囲を指定するには、開始値と終了値をハイフンでつなぎ、値どうしをカンマで区切ります。範囲は 0 ~ 3 です。

ステップ 4

(任意)他のキューの QoS グループを変更するには、ステップ 2 および 3 を繰り返します。

--

ステップ 5

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

 

Example:

switch(config)# show class-map type queuing

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

ステップ 6

copy running-config startup-config

 

Example:

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

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

輻輳回避の設定

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


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


この項では、次のトピックについて取り上げます。

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

「出力キューでの WRED の設定」

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

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

手順の概要

1. configure terminal

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

3. class type queuing class-name

4. queue-limit { queue-size [ bytes | k bytes | mbytes ] | dynamic value}

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

6. (任意) show policy-map [type queuing [ policy-map-name | default-out-policy ]]

7. (任意)copy running-config startup-config

手順の詳細

 

コマンド
目的

ステップ 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

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

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

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

ステップ 3

class type queuing class-name

 

Example:

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

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 4

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

 

Example:

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

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

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

0:1/128

1:1/64

2:1/32

3:1/16

4:1/8

5:1/4

6:1/2

7:1

8:2

9:4

10:8

ステップ 5

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

--

ステップ 6

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

 

Example:

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

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

ステップ 7

copy running-config startup-config

 

Example:

switch(config-pmap-c-que)# copy running-config startup-config

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

出力キューでの WRED の設定

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


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


手順の概要

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 ]

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

手順の詳細

 

コマンド
目的

ステップ 1

configure terminal

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

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

 

Example:

switch(config)# policy-map type queuing p1

switch(config-pmap-que)#

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

ステップ 3

class type queuing class-name

 

Example:

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

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 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 ]

 

Example:

switch(config-pmap-c-que)# random-detect minimum-threshold 10 mbytes maximum-threshold 20 mbytes

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

代わりに、バーストまたはメッシュ トラフィック用に最適化されたしきい値を指定するか、または明示的輻輳通知(ECN)に基づいてパケットをドロップするように WRED を設定できます。

ステップ 5

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

--

輻輳管理の設定

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

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

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

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

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

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

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

この項では、次のトピックについて取り上げます。

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

「プライオリティの設定」

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

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

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


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


手順の概要

1. configure terminal

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

3. class type queuing class-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

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

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

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

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

ステップ 3

class type queuing class-name

 

Example:

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

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 4

bandwidth { percent percent }

 

Example:

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

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

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

bandwidth remaining percent percent

 

Example:

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

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

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

ステップ 5

(任意)他のキューイング クラスに対する帯域幅および帯域幅の残量を割り当てるには、ステップ 3 ~ 4 を繰り返します。

--

ステップ 6

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

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

ステップ 7

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

 

Example:

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

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

ステップ 8

copy running-config startup-config

 

Example:

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

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

プライオリティの設定

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

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

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


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


手順の概要

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

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

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

 

Example:

switch(config)# policy-map type queuing priority_queue1

switch(config-pmap-que)#

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

ステップ 3

class type queuing class-name

 

Example:

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

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 4

priority [level value ]

 

Example:

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

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

ステップ 5

class type queuing class-name

 

Example:

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

(任意)タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

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

ステップ 6

bandwidth remaining percent percent

 

Example:

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

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

ステップ 7

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

--

ステップ 8

exit

 

Example:

switch(config-cmap-que)# exit

switch(config)#

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

ステップ 9

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

 

Example:

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

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

ステップ 10

copy running-config startup-config

 

Example:

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

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

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

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


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



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


はじめる前に

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

手順の概要

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 | mps | 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

 

Example:

switch# configure terminal

switch(config)#

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

ステップ 2

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

 

Example:

switch(config)# policy-map type queuing shape_queues

switch(config-pmap-que)#

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

ステップ 3

class type queuing class-name

 

Example:

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

switch(config-pmap-c-que)#

タイプ キューイングのクラス マップを設定し、ポリシー マップ クラス キューイング モードを開始します。クラス キューイング名については、 表 2-3 を参照してください。

ステップ 4

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

 

Example:

switch(config-pmap-c-que)# shape min 100 bps max 1000 bps

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

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

ステップ 5

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

--

ステップ 6

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

 

Example:

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

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

ステップ 7

copy running-config startup-config

 

Example:

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

 

Example:

switch# configure terminal

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

ステップ 2

system qos

 

Example:

switch (config)# system qos

switch (config-sys-qos)#

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

ステップ 3

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

 

Example:

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

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

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

形式を使用します。

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

キューイングおよびスケジューリングを設定するには、次の作業のいずれかを行います

 

コマンド
目的

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

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

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

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

show policy-map system

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

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

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

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


) ここで紹介する例では、ポート番号は Broadcom ASIC のポートです。
次に、dpid が Broadcom ASIC ポート 19 およびユニット番号が ASIC インスタンス番号 0 を示す場合、前面パネルのインターフェイスの Broadcome ASIC ポートを設定する例を示します。
switch# show system internal ethpm info interface ethernet 4/7 | inc IF_STATIC_INFO
IF_STATIC_INFO:
port_name=Ethernet4/7,if_index:0x1a180c00,ltl=2587,slot=3,
nxos_port=6,dmod=10,dpid=19,unit=0,queue=16,xbar_unitbmp=0x1 dev_id=223


次に、出力でポート単位の共有バッファのリアルタイム ステータスを表示する例を示します。

switch(config)# show hardware internal buffer info pkt-stats module 4 instance 0
INSTANCE: 0
============
|----------------------------------------------------------------------------------------|
Output Shared Service Pool Buffer Utilization (in cells)
SP-0 SP-1 SP-2 SP-3
 
Total Instant Usage 0 0 0 0
Remaining Instant Usage 50356 0 0 7136
Peak/Max Cells Used 0 0 0 165
Switch Cell Count 50356 0 0 7136
 

) データ/スイッチング トラフィックおよびプールは SP-0 で表されます。スーパーバイザへの制御トラフィックは SP-3 で表されます。



module および instance キーワードはオプションです。これらを使用して、特定のモジュール、特定のインスタンス、または両方を出力で表示するようにコマンドを制限できます。これらのオプションのキーワードを使用しない場合は、コマンドはすべてのモジュールのすべてのインスタンスの出力を表示します。


使用方法の詳細は次のとおりです。

Total Instant Usage:グローバル ベースでセル数に関する現在の共有プール バッファの使用量。

Remaining Instant Usage:最後にクリアされるまでに検出された最大バッファ使用量。

Peak/Max Cells Used:最後にクリアされるまでに検出された最大バッファ使用量。

Switch Cell Count:グローバル ベースでセル数に関してプラットフォームで利用可能な合計グローバル共有プール バッファ スペース。

次に、入力でポート単位の共有バッファのリアルタイム ステータスを表示する例を示します。

switch(config-pmap-c-que)# show hardware internal buffer info pkt-stats input module 6
INSTANCE: 0
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 0 0 0 0
Remaining Instant Usage 31879 0 0 4997
Peak/Max Cells Used 0 0 0 133
Switch Cells Count 31879 0 0 4997
 
INSTANCE: 1
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 0 0 0 0
Remaining Instant Usage 31879 0 0 4997
Peak/Max Cells Used 0 0 0 133
Switch Cells Count 31879 0 0 4997
 
INSTANCE: 2
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 25512 0 0 135
Remaining Instant Usage 6367 0 0 4862
Peak/Max Cells Used 38952 0 0 295
Switch Cells Count 31879 0 0 4997
 
|------------------------------------------------------------------------------------|
| Per Port Per PG: Input Instant Buffer utilization |
| Each line displays the number of cells utilized for a given |
| port for each pg |
| One cell represents approximately 208 bytes |
|--------------------+-------+-------+-------+-------+-------+-------+-------+------+|
|Port/Buffer Stat PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 |
|--------------------+-------+-------+-------+-------+-------+-------+-------+------+|
 
 
[ 3]
Min Count 0 0 270 0 0 0 0 0
Shared Count 0 0 6377 0 0 0 0 0
Headroom Count 0 0 77 0 0 0 0 0
Global Headroom Cnt 0 0 0 0 0 0 0 0
ServicePool: Min=45 Shared=6377
 
 
[ 4]
Min Count 0 0 270 270 270 0 0 0
Shared Count 0 0 6359 6376 6390 0 0 0
Headroom Count 0 0 0 3 0 0 0 0
Global Headroom Cnt 0 0 0 0 0 0 0 0
ServicePool: Min=45 Shared=19126
 

次に、オプションの peak キーワードを使用して、入力でポート単位の共有バッファのピーク バッファ使用状況の表示例を示します。

switch(config-pmap-c-que)# show hardware internal buffer info pkt-stats input module 6 peak
INSTANCE: 0
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 0 0 0 0
Remaining Instant Usage 31879 0 0 4997
Peak/Max Cells Used 0 0 0 133
Switch Cells Count 31879 0 0 4997
 
INSTANCE: 1
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 0 0 0 0
Remaining Instant Usage 31879 0 0 4997
Peak/Max Cells Used 0 0 0 133
Switch Cells Count 31879 0 0 4997
 
INSTANCE: 2
============
|------------------------------------------------------------------------------------|
| Input Shared Service Pool Buffer Utilization (in cells) |
| SP-0 SP-1 SP-2 SP-3 |
|------------------------------------------------------------------------------------|
Total Instant Usage 25504 0 0 85
Remaining Instant Usage 6375 0 0 4912
Peak/Max Cells Used 38952 0 0 295
Switch Cells Count 31879 0 0 4997
 
|------------------------------------------------------------------------------------|
| Per Port Per PG: Input Peak Buffer utilization |
| Each line displays the number of cells utilized for a given |
| port for each pg |
| One cell represents approximately 208 bytes |
|--------------------+-------+-------+-------+-------+-------+-------+-------+------+|
|Port/Buffer Stat PG0 PG1 PG2 PG3 PG4 PG5 PG6 PG7 |
|--------------------+-------+-------+-------+-------+-------+-------+-------+------+|
 
 
[ 3]
Shared Peak Count 17198 0 15314 12318 15940 0 0 0
Headroom Peak Count 0 0 146 135 136 0 0 0
ServicePool: Shared Peak Count=24736
 
 
[ 4]
Shared Peak Count 20149 0 15940 10368 15940 0 0 0
Headroom Peak Count 0 0 104 103 103 0 0 0
ServicePool: Shared Peak Count=25516
 
 
[ 7]
Shared Peak Count 1621 0 6745 6627 11052 0 0 0
Headroom Peak Count 0 0 103 103 103 0 0 0
ServicePool: Shared Peak Count=13371
 
 
[ 8]
Shared Peak Count 16237 0 7591 6276 9037 0 0 0
Headroom Peak Count 0 0 103 103 103 0 0 0
ServicePool: Shared Peak Count=16237
 
 
[11]
Shared Peak Count 9683 0 11575 8778 5692 0 0 0
Headroom Peak Count 0 0 135 103 139 0 0 0
ServicePool: Shared Peak Count=14803
 
 
[12]
Shared Peak Count 12639 0 11039 5549 10084 0 0 0
Headroom Peak Count 0 0 103 103 103 0 0 0
ServicePool: Shared Peak Count=12639
 

次に、オプションの peak キーワードを使用して、出力でポート単位の共有バッファのピーク バッファ使用状況の表示例を示します。

switch(config-pmap-c-que)# show hardware internal buffer info pkt-stats module 6 peak
INSTANCE: 0
============
 
|---------------------------------------------------------------------|
Output Shared Service Pool Buffer Utilization (in cells)
SP-0 SP-1 SP-2 SP-3
|---------------------------------------------------------------------|
 
Total Instant Usage 0 0 0 0
Remaining Instant Usage 46396 0 0 6344
Peak/Max Cells Used 0 0 0 165
Switch Cell Count 46396 0 0 6344
|---------------------------------------------------------------------|
 
|--------------------------------------------------------------------------|
| Peak Buffer utilization per queue per port |
| Each line displays the number of cells utilized for a given |
| port for each QoS queue |
| One cell represents approximately 208 bytes |
|--------------+---------+---------+---------+---------+---------+--------+|
|ASIC Port Q1 Q2 Q3 Q4 CPU SPAN |
|--------------+---------+---------+---------+---------+---------+--------+|
 
[ 3]
UC(OOBFC)-> 0 0 0 0
UC-> 0 0 0 0 45 0
MC-> 0 0 0 0 0 0
[ 8]
UC(OOBFC)-> 0 0 0 0
UC-> 0 0 0 0 1 0
MC-> 0 0 0 0 0 0
[11]
UC(OOBFC)-> 0 0 0 0
UC-> 0 0 0 0 45 0
MC-> 0 0 0 0 0 0
[13]
UC(OOBFC)-> 0 0 0 0
UC-> 0 0 0 0 8 0
MC-> 0 0 0 0 0 0
 

) 使用カウントがゼロかどうかにかかわらず、コマンドの末尾にオプションの detail キーワードを追加して、すべてのポートを表示できます。このオプションのキーワードを使用しない場合は、コマンドはゼロ以外のポートのみの出力を表示します。Cisco Nexus 9000 シリーズ スイッチのポート数は、他の Cisco Nexus デバイスとは出力が異なります。具体的には、「UC(OOBFC)」が無視されます。


次に、オプションの cpu キーワードを使用して、出力でポート単位の共有バッファのピーク バッファ使用状況の表示例を示します。

switch(config-pmap-c-que)# show hardware internal buffer info pkt-stats module 6 instance 0 cpu

INSTANCE: 0
============
 
|--------------------------------------------------------------------------|
| Instant Buffer utilization for CPU port queues (total 48) |
| Each line displays cells utilized for 8 consectuive queues |
| First line display for Q0-Q7, second line for Q8-Q15, so on |
| One cell represents approximately 208 bytes |
|--------------+---------+---------+---------+---------+---------+--------+|
 
[Q00-07] 0 0 0 0 0 0 0 0
[Q08-15] 0 0 0 0 0 0 0 0
[Q16-23] 0 0 0 0 0 0 0 0
[Q24-31] 0 0 0 0 0 0 0 0
[Q32-39] 0 0 0 0 0 0 0 0
[Q40-47] 0 0 0 0 0 0 0 0


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

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)ポートの両方に適用されます。


次に、現在すべてのポートに適用されているしきい値設定を表示する例を示します。

switch(config)# show hardware internal buffer info pkt-stats threshold
slot 6
=======
 
INSTANCE: 0
============
 
Module 5 Instance 0 Port 1 Threshold 90 Cells 25926
 
Module 5 Instance 0 Port 2 Threshold 90 Cells 25926
 
Module 5 Instance 0 Port 3 Threshold 90 Cells 25926
 
Module 5 Instance 0 Port 4 Threshold 90 Cells 25926

 

) ポートのバッファ使用量が設定されたしきい値またはデフォルトのしきい値を超えると、Syslog メッセージが生成されます。メッセージのレートは、ポートごとに 1 分あたり 1 つの Syslog メッセージに限定されます。


次に、バッファ使用状況がすべてのポートに設定されたしきい値を超えた、最後の 5 回分を表示する例を示します。

switch(config)# show hardware internal buffer info pkt-stats port-log
slot 6
=======
 
INSTANCE: 0
============
 
INSTANCE: 1
============
 
INSTANCE: 2
============
 
[ BCM PORT 53 ]
10-22-2013 15:31:53.288058 Module 6 Instance 2 Port 53 buffer threshold 30893 cells[107.2% - ~6.1MB] exceeded 25926[90%]
10-22-2013 15:31:48.276873 Module 6 Instance 2 Port 53 buffer threshold 30908 cells[107.3% - ~6.1MB] exceeded 25926[90%]
10-22-2013 15:31:43.267519 Module 6 Instance 2 Port 53 buffer threshold 30895 cells[107.2% - ~6.1MB] exceeded 25926[90%]
10-22-2013 15:31:38.259104 Module 6 Instance 2 Port 53 buffer threshold 30843 cells[107.1% - ~6.1MB] exceeded 25926[90%]
10-22-2013 15:31:33.247011 Module 6 Instance 2 Port 53 buffer threshold 30988 cells[107.6% - ~6.1MB] exceeded 25926[90%]
 
 
slot 7
=======
 
INSTANCE: 0
============
 
INSTANCE: 1
============
 
INSTANCE: 2
============
 
 
 
slot 8
=======
 
INSTANCE: 0
============
 
INSTANCE: 1
============
 
 
 
slot 22
=======
 
INSTANCE: 0
============
 
INSTANCE: 1
============
 
[ BCM PORT 18 ]
10-22-2013 15:31:52.629807 Module 22 Instance 1 Port 18 buffer threshold 33572 cells[116.5% - ~6.7MB] exceeded 25926[90%]
10-22-2013 15:31:47.619395 Module 22 Instance 1 Port 18 buffer threshold 33553 cells[116.5% - ~6.7MB] exceeded 25926[90%]
10-22-2013 15:31:42.599171 Module 22 Instance 1 Port 18 buffer threshold 33625 cells[116.7% - ~6.7MB] exceeded 25926[90%]
10-22-2013 15:31:37.579255 Module 22 Instance 1 Port 18 buffer threshold 33582 cells[116.6% - ~6.7MB] exceeded 25926[90%]
10-22-2013 15:31:32.569250 Module 22 Instance 1 Port 18 buffer threshold 33562 cells[116.5% - ~6.7MB] exceeded 25926[90%]

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

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

この項では、次のトピックについて取り上げます。

「例:QoS グループのキューイング クラス マップの変更およびプライオリティおよびキュー制限の設定」

「例:出力キューの WRED の設定」

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

例:QoS グループのキューイング クラス マップの変更およびプライオリティおよびキュー制限の設定

次に、QoS グループのキューイング クラス マップの変更、およびプライオリティおよびキュー制限の機能の設定例を示します。

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 priority_queue1
class type queuing c-out-q1
priority
class type queuing c-out-q2
queue-limit 1 mbytes
show policy-map type queuing priority_queue1

例:出力キューの 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

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

次に、200000 パケット/秒(pps)でトラフィック シェーピングを設定する例を示します。

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-q1
shape min 100 pps max 500 pps
class type queuing c-out-q2
shape min 200 pps max 1000 pps
show policy-map type queuing pqu