はじめに
このドキュメントでは、show policy-map interface の出力を理解し、Quality of Service(QoS)サービスポリシーの結果を監視する方法について説明します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。
注:Cisco IOS®ソフトウェアリリース12.1Tでは、このドキュメントに記載されているコマンドの出力にあるパケットには、特定のクラスに一致するすべてのパケットが含まれています。ただし、Cisco IOS ソフトウェア リリース 12.1 では、輻輳中にキューに格納されたパケットだけが、これらの同じコマンドの出力でカウントされ、表示されます。
表記法
ドキュメントの表記法の詳細は、「シスコ テクニカル ティップスの表記法」を参照してください。
輻輳の定義
show policy-map interface コマンドの解釈方法を理解するには、まず輻輳について理解する必要があります。
概念的には、輻輳は「輻輳管理の概要」で、「発信インターフェイスでは、パケットはインターフェイスが送信できるよりも速く到着する」と定義されています。
つまり、輻輳は一般的に、高速な入力インターフェイスから、比較的低速な出力インターフェイスに送信されると発生します。共通の輻輳ポイントは、LANに面したイーサネットポートとWANに面したシリアルポートを持つブランチオフィスルータです。LAN セグメントのユーザが 10 Mbps のトラフィックを生成すると、それが 1.5 Mbps の帯域幅を持つ T1 に入力されます。
輻輳は、機能的には、インターフェイスの送信リングがいっぱいになったときに発生します。リングとは、特殊なバッファ制御構造です。すべてのインターフェイスは、受信パケット用の受信リングと送信パケット用の送信リングの一対のリングをサポートしています。リングのサイズは、インターフェイス コントローラやインターフェイスまたは Virtual Circuit(VC; 仮想回線)の帯域幅によって異なります。たとえば、PA-A3 ATMポートアダプタの送信リングの値を表示するには、 show atm vc <vcd>コマンドを使用します。
7200-1#show atm vc 3
ATM5/0.2: VCD: 3, VPI: 2, VCI: 2
VBR-NRT, PeakRate: 30000, Average Rate: 20000, Burst Cells: 94
AAL5-LLC/SNAP, etype:0x0, Flags: 0x20, VCmode: 0x0
OAM frequency: 0 second(s)
PA TxRingLimit: 10
InARP frequency: 15 minutes(s)
Transmit priority 2
InPkts: 0, OutPkts: 0, InBytes: 0, OutBytes: 0
InPRoc: 0, OutPRoc: 0
InFast: 0, OutFast: 0, InAS: 0, OutAS: 0
InPktDrops: 0, OutPktDrops: 0
CrcErrors: 0, SarTimeOuts: 0, OverSizedSDUs: 0
OAM cells received: 0
OAM cells sent: 0
Status: UP
Cisco IOSはレイヤ3(L3)プロセッサとも呼ばれ、インターフェイスドライバはパケットが物理メディアに移動されるときに送信リングを使用します。これら 2 つのプロセッサは、次のように連携します。
-
インターフェイスは、インターフェイス レートまたはシェーピング レートに応じてパケットを送信します。
-
インターフェイスは、物理ワイヤへの送信を待機するパケットの格納場所であるハードウェア キューまたは送信リングを維持します。
-
ハードウェア キューまたは送信リングがいっぱいになると、インターフェイスは L3 プロセッサ システムへの明示的なバック プレッシャを提供します。インターフェイスは、送信リングがいっぱいになっているためインターフェイスの送信リングへのパケットのデキューを停止するよう L3 プロセッサに通知します。L3 プロセッサは、超過パケットを L3 キューに格納するようになります。
-
インターフェイスが送信リング上のパケットを送信してリングを空にすると、パケットを格納するために十分なバッファが再び利用可能になります。これで、バック プレッシャが解放され、L3 プロセッサは、インターフェイス宛ての新しいパケットを取り出します。
この通信システムの最も重要な側面は、インターフェイスが送信リングがいっぱいであることを認識し、L3 プロセッサ システムからの新しいパケットの受信を制限するということです。したがって、インターフェイスが輻輳状態になった場合、廃棄の決定は、送信リングの first in, first out(FIFO; 先入れ先出し)キュー内のランダムな後入れ先廃棄決定から、L3 プロセッサによって実装される IP レベルのサービス ポリシーに基づいた差別化サービスに移行されます。
パケットと一致するパケットの違い
サービスポリシーはレイヤ3キューに格納されたパケットだけに適用されるため、ルータがいつL3キューを使用するかを理解する必要があります。
次の表は、パケットがL3キューに入れられるタイミングを示しています。ローカルに生成されたパケットは常にプロセス スイッチングされ、最初に L3 キューに渡された後、インターフェイス ドライバに渡されます。ファスト スイッチイングされたパケットおよび Cisco Express Forwarding(CEF)スイッチイングされたパケットは、送信リングに直接送信され、送信リングがいっぱいになったときにだけレイヤ 3 キューに入れられます。
パケット タイプ |
Congestion |
非輻輳時 |
ローカルに生成されたパケット(Telnet パケットおよび ping を含む) |
Yes |
Yes |
プロセス交換された他のパケット |
Yes |
Yes |
CEF またはファースト スイッチングされたパケット |
Yes |
いいえ |
次の例は、show policy-map interface の出力に適用された前述のガイドラインを示しています(4つのキーカウンタは太字で示されています)。
7206#show policy-map interface atm 1/0.1
ATM1/0.1: VC 0/100 -
Service-policy output: cbwfq (1283)
Class-map: A (match-all) (1285/2)
28621 packets, 7098008 bytes
5 minute offered rate 10000 bps, drop rate 0 bps
Match: access-group 101 (1289)
Weighted Fair Queueing
Output Queue: Conversation 73
Bandwidth 500 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 28621/7098008
(depth/total drops/no-buffer drops) 0/0/0
Class-map: B (match-all) (1301/4)
2058 packets, 148176 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: access-group 103 (1305)
Weighted Fair Queueing
Output Queue: Conversation 75
Bandwidth 50 (kbps) Max Threshold 64 (packets)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
Class-map: class-default (match-any) (1309/0)
19 packets, 968 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any (1313)
次の表に、太字のカウンタの定義を示します。
カウンタ |
説明 |
28621 packets, 7098008 bytes |
クラスの基準に一致するパケットの数。このカウンタは、インターフェイスで輻輳が発生してしなくても増加します。 |
(pkts matched/bytes matched) 28621/7098008 |
インターフェイスが輻輳した際の、クラスの基準に一致したパケットの数。つまり、インターフェイスの送信リングがいっぱいになり、ドライバと L3 プロセッサ システムが連携して、サービス ポリシーが適用される L3 キューに超過パケットを入れました。プロセス交換されたパケットは常に L3 キューイング システムを通過するため、「一致したパケット」カウンタが増分することになります。 |
クラスマップ:B(match-all)(1301/4) |
これらの番号は、CISCO-CLASS-BASED-QOS-MIB Management Information Base(MIB; 管理情報ベース)で使用される内部 ID を定義します。Cisco IOS の現在のリリースでは、これらが、show policy-map の出力に表示されなくなっています。 |
5 minute offered rate 0 bps, drop rate 0 bps load-interval |
コマンドを使用して、この値を変更し、より瞬間的な値にします。最小値は30秒ですが、 show policy-map interface の出力に表示される統計情報は、10秒ごとに更新されます。このコマンドは、特定の時点でのスナップショットを効果的に提供するため、統計情報にはキューサイズの一時的な増加は反映されません。 |
輻輳がない場合、超過パケットをキューイングする必要はありません。輻輳が発生している場合、CEFおよびファーストスイッチングされたパケットを含むパケットは、L3キューに入れられます。『Cisco輻輳管理の概要』では、輻輳について、インターフェイスにパケットが溜まり、インターフェイスがパケットを送信できるようになるまでキューに入れられるような方法で定義しています。この場合、パケットは、割り当てられた優先順位とインターフェイスに設定されたキューメカニズムに基づいてスケジューリングされます。
通常、packetsカウンタはpackets matchedカウンタよりもはるかに大きくなります。2つのカウンタの値がほぼ等しい場合、インターフェイスは現在大量のプロセススイッチパケットを受信しているか、または輻輳しています。最適なパケット転送を確実に行うためには、これらの条件の両方を調べる必要があります。
カンバセーション番号の割り当て
この項では、サービス ポリシーが適用された場合に作成されるキューに対してルータがカンバセーション番号を割り当てる方法を説明します。
Router#show policy-map interface s1/0.1 dlci 100
Serial1/0.1: DLCI 100 -
output : mypolicy
Class voice
Weighted Fair Queueing
Strict Priority
Output Queue: Conversation 72
Bandwidth 16 (kbps) Packets Matched 0
(pkts discards/bytes discards) 0/0
Class immediate-data
Weighted Fair Queueing
Output Queue: Conversation 73
Bandwidth 60 (%) Packets Matched 0
(pkts discards/bytes discards/tail drops) 0/0/0
mean queue depth: 0
drops: class random tail min-th max-th mark-prob
0 0 0 64 128 1/10
1 0 0 71 128 1/10
2 0 0 78 128 1/10
3 0 0 85 128 1/10
4 0 0 92 128 1/10
5 0 0 99 128 1/10
6 0 0 106 128 1/10
7 0 0 113 128 1/10
rsvp 0 0 120 128 1/10
Class priority-data
Weighted Fair Queueing
Output Queue: Conversation 74
Bandwidth 40 (%) Packets Matched 0 Max Threshold 64 (packets)
(pkts discards/bytes discards/tail drops) 0/0/0
Class class-default
Weighted Fair Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 64 Max Threshold 20 (packets)
ポリシー マップで定義済みのポリシーを持つ他のクラスの一致基準をトラフィックが満たしていない場合は、class-default クラスがそのトラフィックの宛先のデフォルト クラスになります。fair-queueコマンドを使用すると、IPフローをソートして分類するダイナミックキューの数を指定できます。または、ルータが、インターフェイスまたは VC の帯域幅から取得したデフォルトのキュー数を割り当てます。いずれの場合も、サポートされている値は、2 の累乗(16 〜 4096 の範囲)です。
次の表に、インターフェイスおよび ATM Permanent Virtual Circuit(PVC; 相手先固定接続)のデフォルト値を示します。
インターフェイス帯域幅の関数としてのデフォルトのダイナミック キュー数
帯域幅範囲 |
ダイナミック キューの数 |
64 kbps 以下 |
16 |
64 kbps より大きく 128 kbps 以下 |
32 |
128 kbps より大きく 256 kbps 以下 |
64 |
256 kbps より大きく 512 kbps 以下 |
128 |
512 kbps より大きい |
256 |
ATM PVC 帯域幅の関数としてのデフォルトのダイナミック キュー数
帯域幅範囲 |
ダイナミック キューの数 |
128 kbps 以下 |
16 |
128 kbps より大きく 512 kbps 以下 |
32 |
512 kbps より大きく 2000 kbps 以下 |
64 |
2000 kbps より大きく 8000 kbps 以下 |
128 |
8000 kbps より大きい |
256 |
重み付け均等化キューイング用に予約されているキューの数に基づいて、Cisco IOS は、次の表に示すように、カンバセーションまたはキュー番号を割り当てます。
カンバセーション/キュー番号 |
トラフィックのタイプ |
1 ~ 256 |
汎用フローベース トラフィック キュー。ユーザ作成クラスに一致しないトラフィックは、class-defaultおよびいずれかのフローベースキューに一致する可能性があります。 |
257 ~ 263 |
Cisco Discovery Protocol(CDP)用および内部の高優先順位フラグでマークされているパケット用に予約されています。 |
264 |
プライオリティ クラス(priority コマンドで設定されたクラス)用のキューとして予約されています。show policy-map interface 出力でクラスに関する Strict Priority 値を探します。プライオリティ キューでは、ダイナミック キューの数に 8 を加算した値に等しいカンバセーション ID を使用します。 |
265 以降 |
ユーザ作成クラス用のキュー。 |
サービスポリシーの確認
packets matchedカウンタとサービスポリシーをテストする必要がある場合は、次の手順を実行します。
-
大きなpingサイズと多数のpingを使用して拡張pingで輻輳をシミュレートします。また、ファイル転送プロトコル(FTP)サーバから、大きなファイルをダウンロードします。このファイルは悲惨なデータを構成し、インターフェイスの帯域幅を満たします。
tx-ring-limit
-
コマンドを使用して、インターフェイスの送信リングのサイズを小さくします。この値を小さくすると、Cisco IOS ソフトウェアでの QoS の使用が高速化されます。
interface ATMx/y.z point-to-point
ip address a.b.c.d M.M.M.M
PVC A/B
tx-ring-limit <size>
service-policy output test
-
サイズを、パケットの数(2600 および 3600 シリーズ ルータの場合)またはメモリ パーティクルの数(7200 および 7500 シリーズ ルータの場合)として指定します。
-
トラフィック フローが、ポリシーの入力または出力パラメータに一致するようにしてください。たとえば、FTP サーバからファイルをダウンロードすると、受信方向に輻輳が発生します。これは、サーバが、大きい MTU サイズのフレームを送信し、クライアント PC が、小さい確認応答(ACK)を返すためです。
関連情報