内容

はじめに

前提条件

要件

使用するコンポーネント

背景説明

確認

影響を受けるインターフェイスの特定

着信インターフェイスと発信インターフェイスの特定

バッファ割り当て

トラブルシュート

バッファ割り当ての変更

キュー単位バッファの変更

Wireshark を使用した出力ドロップの分析

代替アプローチ

関連情報

はじめに

このドキュメントでは、UADP ASICベースのCatalyst 9000シリーズプラットフォームで高速インターフェイスの出力廃棄をトラブルシューティングする方法について説明します。

前提条件

要件

次の項目に関する知識があることが推奨されます。

- 標準 QoS の概念

- モジュラ QoS コマンド ライン インターフェイス（CLI）

- Wireshark

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づいています。

- UADP 2.0およびUADP 3.0 ASICタイプ

- Catalyst 9200

- Catalyst 9300

- Catalyst 9400

- Catalyst 9500

- Catalyst 9600

- Cisco IOS® XE 16.Xまたは17.Xソフトウェア

注：シスコの他のプラットフォームでこれらの機能を有効にするために使用されるコマンドについては、該当するコンフィギュレーション ガイドを参照してください。

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな（デフォルト）設定で作業を開始しています。本稼働中のネットワークでは、各コマンドによって起こる可能性がある影響を十分確認してください。

背景説明

高速インターフェイスでの出力廃棄は、あらゆるネットワーク環境で発生する可能性のある問題で、特に10 Gbps以上のデータ転送速度をサポートするインターフェイスを扱う場合に発生します。出力ドロップは、パケットがネットワークに送信される前にインターフェイスによってドロップされると発生します。

出力廃棄が使用率の低いレベルで発生した場合に、インターフェイス使用率がどのように解釈されるかは、誤って理解されることがよくあります。

- 単一のインターフェイスから送信されるトラフィックが多すぎると、そのインターフェイスのバッファが過負荷になり、出力廃棄が発生する可能性があります。バッファが少なすぎるインターフェイスでも、出力廃棄の可能性が高くなります。

- 出力ドロップは、インターフェイスの速度と接続されたデバイスの速度の不一致によっても発生する可能性があります。たとえば、10 Gbpsインターフェイスが1 Gbpsのデータ転送速度だけをサポートするデバイスに接続されている場合、デバイスの機能に合わせてデータレートを低下させることができない場合、インターフェイスはパケットをドロップできます。

ただし、ほとんどの場合、出力廃棄は、ポートバッファを使い果たしたマイクロバーストトラフィックによって引き起こされます。

- マイクロバーストとは、大量のトラフィックが非常に短時間で送信される現象を指し、通常は数ミリ秒しか続かず、インターフェイスの使用可能な帯域幅を超えます。

- マイクロバーストが発生すると、ネットワークデバイスはネットワークに送信できるようになるまでトラフィックをバッファリングする必要があります。バッファサイズを超えると、パケットはドロップされます。

ネットワークトラフィックは、通常、リンクの平均使用率で測定されます（設定に応じて30秒～ 5分で測定）。 この平均は安定した比較的均一なフローを示していますが、ミリ秒スケールで見ると、インターフェイス使用率は非常に高いバースト性を持つことが多くなります。

図 1. は、高速インターフェイスでの出力廃棄の根本的な原因を視覚的に示したものです。

図に従って、次のようになります。

1. パケットフローA、B、およびCは、フロー内のビットのグループを表します。

2. フローA、B、およびCは100Gインターフェイスを介して送信され、ネクストホップスイッチで受信されます。

3. A および一部のBビットが10G出力インターフェイスから正常に転送されることを確認します。

- ただし、フローCが到着すると、到着と同時にビットをデキューできないため、スイッチはフローBのビットの一部をバッファリングしました。

- バッファがいっぱいになり、パケットCの残りのBビットとすべてのビットを保持できなくなります。

- 入力分類子は、次のフレームの1ビットにも対応する余裕がないと判断すると、パケット全体を廃棄します。

4. フローAと一部のBは、10Gインターフェイスを介して送信されます。

インターフェイスの速度と帯域幅は、次の理由から、どちらかというと誤った呼び方をします。

- 帯域幅=データ（ビット）/時間

- 10G > 100G > 10Gの範囲を通過するビットは「物理的に高速」ではありません

速度の差は、インターリーブ機能、レーン数、時間間隔当たりのパルス数、エンコーディングメカニズムなどで、メディア（光/電子）の速度とは異なります。

ヒント：ロードインターバルの遅延を秒単位で変更するには、インターフェイスコンフィギュレーションモードでload-interval <30-600>コマンドを使用します。（ロード間隔は、スイッチがインターフェイスカウンタをポーリングする頻度を表します）。

確認

高速インターフェイスでの出力ドロップのトラブルシューティングは複雑なプロセスになる場合がありますが、問題の特定と解決に役立つ一般的な手順がいくつかあります。

ステップ 1：影響を受けるインターフェイスを特定します。

- 最初に、出力廃棄が発生しているインターフェイスを絞り込みます。

- show interfaces | include is up|Total output dropsコマンドの出力を使用するか、または監視ツールを使用して、問題が発生しているインターフェイスを特定します。

ステップ 2：着信インターフェイスと発信インターフェイスの特定:

- インターフェイスとASICのマッピングを確認するには、show platform software fed <switch|active> ifm mappingsコマンドを実行します。

ステップ 3：バッファ割り当ての確認:

- 影響を受けるインターフェイスのバッファ割り当てとインターフェイス設定を確認することが重要です。

ステップ 4：Wiresharkでマイクロバーストを確認します。

- 高速インターフェイスでの出力廃棄は、多くの場合、トラフィックのマイクロバーストによって発生します。

- Wiresharkなどのトラフィック分析ツールを使用して、トラフィックパターンを監視し、マイクロバーストの可能性を特定します。

ステップ 5：ハードウェアのアップグレードを検討してください。

- 上記の手順で問題が解決しない場合は、インターフェイス、デバイス、ネットワークインフラストラクチャなどのハードウェアをアップグレードして、増加したトラフィックを処理する必要があります。

影響を受けるインターフェイスの特定

出力ドロップが発生している影響を受けるインターフェイスを特定するには、show interfacesコマンドを使用します。

- このコマンドは、入出力エラー、ドロップされたパケット、およびその他の重要な情報に関する統計情報を含む、各インターフェイスに関する詳細情報を提供します。

インターフェイスのリストを絞り込み、影響を受けるインターフェイスを迅速に特定するには、show interfaces | include is up|Total output dropsコマンドを使用してインターフェイスのダウンまたはadmin downをフィルタリングし、アクティブでドロップのあるインターフェイスのみを表示します。

- たとえば、このコマンドを使用して、出力廃棄が発生したインターフェイスだけを表示できます。

Cat9k(config)#show interfaces | in is up|Total output drops

HundredGigE1/0/1 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 54845

HundredGigE1/0/10 is up, line protocol is up (connected)

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 1540231

--snip--

ヒント:show interfacesコマンドを使用し、該当するインターフェイスをすばやく簡単に特定するために適切な基準で出力をフィルタリングします。問題を解決するために必要な手順を実行します。

Catalyst 9000シリーズスイッチでは、デフォルトで、出力パケットドロップがパケットではなくバイトで示されます。検出された出力廃棄の量が実際に影響を与えたのか、あるいは一時的なバーストトラフィックが原因なのかを判断することが重要です。

インターフェイスで送信された出力バイトのうち、廃棄されたものの割合を計算するには、次のコマンドを実行します。

- インターフェイスから出力ドロップ数の合計を収集します。

- インターフェイスから出力バイト数の合計を収集します。

- 出力廃棄のパーセンテージを計算します。出力ドロップ数を出力バイト数の合計で除算し、100を乗算します。

これは、インターフェイスで廃棄された出力バイトのパーセンテージを示します。これは、対処が必要な輻輳やバッファ割り当ての問題があるかどうか、または出力の廃棄が一時的なマイクロバストラフィックによって発生したかどうかを判断するのに役立ちます。

showinterface <interface> コマンドを使用して情報を収集します。

Cat9k#show interfaces twentyFiveGigE 1/0/41

TwentyFiveGigE1/0/41 is up, line protocol is up (connected)

Hardware is Twenty Five Gigabit Ethernet, address is dc77.4c8a.4289 (bia dc77.4c8a.4289)

MTU 1500 bytes, BW 25000000 Kbit/sec, DLY 10 usec,

reliability 255/255, txload 3/255, rxload 1/255

Encapsulation ARPA, loopback not set

Keepalive set (10 sec)

Full-duplex, 10Gb/s, link type is auto, media type is SFP-10GBase-AOC1M

input flow-control is on, output flow-control is off

ARP type: ARPA, ARP Timeout 04:00:00

Last input 00:00:06, output 00:00:10, output hang never

Last clearing of "show interface" counters 6w1d

Input queue: 0/2000/0/0 (size/max/drops/flushes); Total output drops: 299040207

Queueing strategy: Class-based queueing

Output queue: 0/40 (size/max)

30 second input rate 767000 bits/sec, 155 packets/sec

30 second output rate 14603000 bits/sec, 1819 packets/sec

931864194 packets input, 572335285416 bytes, 0 no buffer

Received 933005 broadcasts (933005 multicasts)

0 runts, 0 giants, 0 throttles

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

0 watchdog, 0 multicast, 0 pause input

0 input packets with dribble condition detected

1067891106 packets output, 5930422327799 bytes, 0 underruns

--snip--

Total output drops: 299040207

出力バイトの合計： 5930422327799

出力廃棄のパーセンテージ= 299040207/5930422327799 x 100 = 0.005%

この例では、出力ドロップの合計は過去6週間にこのインターフェイスで送信された総バイト量の0.005%を表しています（カウンタ6w1dの最後のクリア）。

- パケットの総数とドロップされたパケットの数の差は小さく、影響はありません。

着信インターフェイスと発信インターフェイスの特定

Catalyst 9000シリーズスイッチで柔軟なバッファをより適切に割り当て、トラフィックを管理するには、異なるASICで着信インターフェイスと発信インターフェイスを選択することを検討してください。

ソフトバッファは、ダイナミックバッファまたは共有バッファとも呼ばれ、輻輳またはトラフィックの高負荷時にパケットを一時的に保存するために動的に割り当てられるメモリの部分を指します。

ヒント:Catalyst 9000シリーズスイッチでのバッファ割り当ての詳細については、『Catalyst 9000スイッチのキューバッファ割り当てについて』を参照してください。

Catalyst 9000スイッチの特定のモデルのアーキテクチャに基づいて、さまざまな機能を担う複数のASICが組み込まれていることが多いことに注意してください。

インターフェイスとASICのマッピングを確認するには、show platform software fed <switch|active> ifm mappingsコマンドを実行します。

この例では、インターフェイスとASICのマッピングを示しています。インターフェイス範囲TenGigabitEthernet1/0/1 ～ TenGigabitEthernet1/0/24はASIC 1にマッピングされ、残りはASIC 0にマッピングされます。

Cat9k#show platform software fed switch active ifm mappings

Interface                 IF_ID    Inst Asic Core Port SubPort Mac  Cntx LPN  GPN  Type Active

TenGigabitEthernet1/0/1   0x9        3   1   1    0      0      11   0    1    1    NIF  Y

TenGigabitEthernet1/0/2   0xa        3   1   1    1      0      10   1    2    2    NIF  Y

TenGigabitEthernet1/0/3   0xb        3   1   1    2      0      9    2    3    3    NIF  Y

TenGigabitEthernet1/0/4   0xc        3   1   1    3      0      8    3    4    4    NIF  Y

TenGigabitEthernet1/0/5   0xd        3   1   1    4      0      7    4    5    5    NIF  Y

TenGigabitEthernet1/0/6   0xe        3   1   1    5      0      6    5    6    6    NIF  Y

TenGigabitEthernet1/0/7   0xf        3   1   1    6      0      5    6    7    7    NIF  Y

TenGigabitEthernet1/0/8   0x10       3   1   1    7      0      4    7    8    8    NIF  Y

TenGigabitEthernet1/0/9   0x11       3   1   1    8      0      3    8    9    9    NIF  Y

TenGigabitEthernet1/0/10  0x12       3   1   1    9      0      2    9    10   10   NIF  Y

TenGigabitEthernet1/0/11  0x13       3   1   1    10     0      1    10   11   11   NIF  Y

TenGigabitEthernet1/0/12  0x14       3   1   1    11     0      0    11   12   12   NIF  Y

TenGigabitEthernet1/0/13  0x15       2   1   0    12     0      11   0    13   13   NIF  Y

TenGigabitEthernet1/0/14  0x16       2   1   0    13     0      10   1    14   14   NIF  Y

TenGigabitEthernet1/0/15  0x17       2   1   0    14     0      9    2    15   15   NIF  Y

TenGigabitEthernet1/0/16  0x18       2   1   0    15     0      8    3    16   16   NIF  Y

TenGigabitEthernet1/0/17  0x19       2   1   0    16     0      7    4    17   17   NIF  Y

TenGigabitEthernet1/0/18  0x1a       2   1   0    17     0      6    5    18   18   NIF  Y

TenGigabitEthernet1/0/19  0x1b       2   1   0    18     0      5    6    19   19   NIF  Y

TenGigabitEthernet1/0/20  0x1c       2   1   0    19     0      4    7    20   20   NIF  Y

TenGigabitEthernet1/0/21  0x1d       2   1   0    20     0      3    8    21   21   NIF  Y

TenGigabitEthernet1/0/22  0x1e       2   1   0    21     0      2    9    22   22   NIF  Y

TenGigabitEthernet1/0/23  0x1f       2   1   0    22     0      1    10   23   23   NIF  Y

TenGigabitEthernet1/0/24  0x20       2   1   0    23     0      0    11   24   24   NIF  Y

TenGigabitEthernet1/0/25  0x21       1   0   1    24     0      11   0    25   25   NIF  Y

TenGigabitEthernet1/0/26  0x22       1   0   1    25     0      10   1    26   26   NIF  Y

TenGigabitEthernet1/0/27  0x23       1   0   1    26     0      9    2    27   27   NIF  Y

TenGigabitEthernet1/0/28  0x24       1   0   1    27     0      8    3    28   28   NIF  Y

TenGigabitEthernet1/0/29  0x25       1   0   1    28     0      7    4    29   29   NIF  Y

TenGigabitEthernet1/0/30  0x26       1   0   1    29     0      6    5    30   30   NIF  Y

TenGigabitEthernet1/0/31  0x27       1   0   1    30     0      5    6    31   31   NIF  Y

TenGigabitEthernet1/0/32  0x28       1   0   1    31     0      4    7    32   32   NIF  Y

TenGigabitEthernet1/0/33  0x29       1   0   1    32     0      3    8    33   33   NIF  Y

TenGigabitEthernet1/0/34  0x2a       1   0   1    33     0      2    9    34   34   NIF  Y

TenGigabitEthernet1/0/35  0x2b       1   0   1    34     0      1    10   35   35   NIF  Y

TenGigabitEthernet1/0/36  0x2c       1   0   1    35     0      0    11   36   36   NIF  Y

TenGigabitEthernet1/0/37  0x2d       0   0   0    36     0      11   11   37   37   NIF  Y

TenGigabitEthernet1/0/38  0x2e       0   0   0    37     0      10   10   38   38   NIF  Y

TenGigabitEthernet1/0/39  0x2f       0   0   0    38     0      9    9    39   39   NIF  Y

TenGigabitEthernet1/0/40  0x30       0   0   0    39     0      8    8    40   40   NIF  Y

TenGigabitEthernet1/1/1   0x31       0   0   0    40     0      0    19   41   41   NIF  N

TenGigabitEthernet1/1/2   0x32       0   0   0    41     0      0    18   42   42   NIF  N

TenGigabitEthernet1/1/3   0x33       0   0   0    42     0      0    17   43   43   NIF  N

TenGigabitEthernet1/1/4   0x34       0   0   0    43     0      0    16   44   44   NIF  N

TenGigabitEthernet1/1/5   0x35       0   0   0    44     0      0    15   45   45   NIF  N

TenGigabitEthernet1/1/6   0x36       0   0   0    45     0      0    14   46   46   NIF  N

TenGigabitEthernet1/1/7   0x37       0   0   0    46     0      0    13   47   47   NIF  N

TenGigabitEthernet1/1/8   0x38       0   0   0    47     0      0    12   48   48   NIF  N

FortyGigabitEthernet1/1/1 0x39       0   0   0    48     0      4    4    49   49   NIF  N

FortyGigabitEthernet1/1/2 0x3a       0   0   0    49     0      0    0    50   50   NIF  N

バッファ割り当て

バッファの割り当ては、出力ドロップを回避するための重要な要素です。バッファは、輻輳やその他の変数が原因で転送できないトラフィックを一時的に保存するために使用されるためです。使用可能なバッファが十分にない場合、トラフィックはドロップされ、ネットワークパフォーマンスが低下し、中断が発生する可能性があります。この検証により、高いトラフィック負荷を処理するのに十分なバッファスペースがスイッチにあることを確認できます。

show platform hardware fed switch active qos queue stats interface <interface>コマンドを使用すると、インターフェイスのキューごとの統計情報を表示できます。この統計情報には、バッファにエンキューされたバイト数や、使用可能なバッファの不足によってドロップされたバイト数などが含まれます。

この例では、

- キュー0 ～ 4は現在、キューに入れられたトラフィックを保持しています。このインターフェイスで受信されたトラフィックは、送信可能になるまで一時的にバッファに保存されます。

- 廃棄または廃棄されたトラフィック(24010607バイト)が発生しているのは、Queue 2だけです。

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/41

----------------------------------------------------------------------------------------------

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

----------------------------------------------------------------------------------------------

High Watermark Soft Buffers:  Port Monitor Disabled

----------------------------------------------------------------------------------------------

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

----------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0             40588200              9368282                    0

1       0                    0             23584521               789524                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0            487852543                    0

4       0                    0                    0              5483512                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

--------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607 <-- (drops on Q2)  0                    0                    0

3                    0                    0                    0                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

トラブルシュート

バッファ割り当ての変更

インターフェイスで使用されるソフトバッファの値を増やすには、グローバルコンフィギュレーションモードでqos queue-softmax-multipliercommandを使用して、100 ～ 4800の範囲の値を指定します。デフォルト値は 100 です。

- このコマンドにより、マイクロバーストを吸収する単一のポートキューの機能が向上します。

- このコマンドは、ポートキューのしきい値を増やし、ポートキューが共有プールから追加のバッファユニットを消費できるようにします。

この設定は、すべてのインターフェイスに適用されます。

- バッファ割り当て自体は、マイクロバーストがスイッチ上のすべてのポートで同時に発生するわけではありません。

- マイクロバーストがランダムな瞬間に発生した場合、共有バッファは、それらを吸収するために追加のバッファユニットを割り当てることができます。

ソフトバッファ割り当てを変更するには、グローバルコンフィギュレーションモードでqos queue-softmax-multiplier<100 4800>コマンドを使用します。この値を使用可能な最大値に設定すると、出力廃棄を排除または削減できる可能性が最も高くなります。これは、可能な限り廃棄を避けるために一般的に推奨されるベストプラクティスです。

Cat9k(config)#qos queue-softmax-multiplier ?

<100-4800> multiplier(%)

show platform hardware fed active qos queue config interface <interface>コマンドを使用して、Catalyst 9000シリーズのソフトバッファの割り当てを確認します。

次の例は、Catalyst 9500で10 Gbpsの速度にネゴシエートされたインターフェイス上で割り当てられているデフォルトのソフトバッファを示しています。

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:5 - 4320 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

----- --------  --------  --------  --------  ---------  -------

0   1  6   480   8  1920  16   960   0     0   3  5760      En <-- 1920 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  11  2880  16  1440   8   720   3  5760      En <-- 2880 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   3  5760      En

3   1  5     0   6     0   0     0   0     0   3  5760      En

4   1  5     0   6     0   0     0   0     0   3  5760      En

5   1  5     0   6     0   0     0   0     0   3  5760      En

6   1  5     0   6     0   0     0   0     0   3  5760      En

7   1  5     0   6     0   0     0   0     0   3  5760      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

--------   -------------   ------  ------------   -------------

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

--------   -------------   ------  ------------

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

-----------   --------------   ----------  ------------

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

------- ------- ------- ------- ------- -------  ------- ------- ------

0       0    1912       0       0    2137       0       0    2400       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0    2295       0       0    2565       0       0    2880       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

次の例は、4800マルチプライヤが設定されたCatalyst 9500で10 Gbpsの速度にネゴシエートされたインターフェイスに割り当てられたソフトバッファを示しています。

Cat9k#show platform hardware fed active qos queue config interface twentyFiveGigE 1/0/41

Asic:0 Core:0 DATA Port:8 GPN:141 LinkSpeed:0x12

AFD:Disabled FlatAFD:Disabled QoSMap:0 HW Queues: 64 - 71

DrainFast:Disabled PortSoftStart:4 - 42000 BufferSharing:Disabled

DTS  Hardmax  Softmax   PortSMin  GlblSMin  PortStEnd   QEnable

----- --------  --------  --------  --------  ---------  -------

0   1  6   480  10 42000   1  1312   0     0   4 42000      En <-- 42000 is the total soft buffers allocated to queue 0 on interface twentyFiveGigE 1/0/41

1   1  5     0  10 42000   1  1312   1  1312   4 42000      En <-- 42000 is the total soft buffers allocated to queue 1 on interface twentyFiveGigE 1/0/41

2   1  5     0   6     0   0     0   0     0   4 42000      En

3   1  5     0   6     0   0     0   0     0   4 42000      En

4   1  5     0   6     0   0     0   0     0   4 42000      En

5   1  5     0   6     0   0     0   0     0   4 42000      En

6   1  5     0   6     0   0     0   0     0   4 42000      En

7   1  5     0   6     0   0     0   0     0   4 42000      En

Priority   Shaped/shared   weight  shaping_step  sharpedWeight

--------   -------------   ------  ------------   -------------

0      0     Shared            50           0           0

1      0     Shared            75           0           0

2      0     Shared         10000           0           0

3      0     Shared         10000           0           0

4      0     Shared         10000           0           0

5      0     Shared         10000           0           0

6      0     Shared         10000           0           0

7      0     Shared         10000           0           0

Port       Port            Port    Port

Priority   Shaped/shared   weight  shaping_step

--------   -------------   ------  ------------

2     Shaped          1023        1023

QPolicer     Refresh Credit   Max Credit  Interval Idx

-----------   --------------   ----------  ------------

0 Disabled                 0            0           0

1 Disabled                 0            0           0

2 Disabled                 0            0           0

3 Disabled                 0            0           0

4 Disabled                 0            0           0

5 Disabled                 0            0           0

6 Disabled                 0            0           0

7 Disabled                 0            0           0

Weight0 Max_Th0 Min_Th0 Weigth1 Max_Th1 Min_Th1  Weight2 Max_Th2 Min_Th2

------- ------- ------- ------- ------- -------  ------- ------- ------

0       0   33851       0       0   37833       0       0   42480       0 <-- Thresholds values in queue 0 on interface twentyFiveGigE 1/0/41

1       0   33468       0       0   37406       0       0   42000       0 <-- Thresholds values in queue 1 on interface twentyFiveGigE 1/0/41

2       0       0       0       0       0       0       0       0       0

3       0       0       0       0       0       0       0       0       0

4       0       0       0       0       0       0       0       0       0

5       0       0       0       0       0       0       0       0       0

6       0       0       0       0       0       0       0       0       0

7       0       0       0       0       0       0       0       0       0

注：柔軟なバッファの割り当ては異なります。割り当てが上記の出力と一致しない可能性があります。割り当て出力は、使用される特定のプラットフォーム、適用されるQoSポリシー、および対象となるインターフェイスのネゴシエートされた動作速度によって異なります。

キュー単位バッファの変更

SoftMax乗数を使用できないシナリオ、またはトラフィックプロファイルに合わせてバッファを微調整するシナリオでは、キュー単位のバッファ変更を利用できます。

- インターフェイスごとにスイッチのキューバッファ割り当てを変更するには、ポリシーマップを使用する必要があります。

- ほとんどの場合、インターフェイスの現在のポリシーマップを変更し、クラスごとにバッファを変更します。

この例のインターフェイスでは、twentyFiveGigE 1/0/1で出力ドロップが発生しています。コマンド出力に示されているように、このインターフェイスに適用されるegress policy-map。

show platform hardware fed switch active qos queue stats interface <interface>コマンドを使用すると、インターフェイスのキューごとの統計情報を表示できます。この統計情報には、バッファにキューイングされたバイト数や、使用可能なバッファの不足によって廃棄されたバイト数などが含まれます。

Cat9k#show platform hardware fed active qos queue stats interface twentyFiveGigE 1/0/1

----------------------------------------------------------------------------------------------

AQM Global counters

GlobalHardLimit: 16257   |   GlobalHardBufCount: 0

GlobalSoftLimit: 39039   |   GlobalSoftBufCount: 0

----------------------------------------------------------------------------------------------

High Watermark Soft Buffers:  Port Monitor Disabled

----------------------------------------------------------------------------------------------

Asic:0 Core:0 DATA Port:8 Hardware Enqueue Counters

----------------------------------------------------------------------------------------------

Q Buffers          Enqueue-TH0          Enqueue-TH1          Enqueue-TH2             Qpolicer

(Count)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- ------- -------------------- -------------------- -------------------- --------------------

0       0                    0                    0                   82                    0

1       0                    0                    0                 7517                    0

2       0                    0                    0         110307150901                    0

3       0                    0                    0           7174010710                    0

4       0                    0                    0                    0                    0

5       0                    0                    0                    0                    0

6       0                    0                    0                    0                    0

7       0                    0                    0                    0

Asic:0 Core:0 DATA Port:8 Hardware Drop Counters

--------------------------------------------------------------------------------------------------------------------------------

Q             Drop-TH0             Drop-TH1             Drop-TH2             SBufDrop              QebDrop         QpolicerDrop

(Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)              (Bytes)

-- -------------------- -------------------- -------------------- -------------------- -------------------- --------------------

0                    0                    0                    0                    0                    0                    0

1                    0                    0                    0                    0                    0                    0

2                    0                    0             24010607                    0                    0                    0

3                    0                    0             20071103                    0                    0                    0

4                    0                    0                    0                    0                    0                    0

5                    0                    0                    0                    0                    0                    0

6                    0                    0                    0                    0                    0                    0

7                    0                    0                    0                    0                    0                    0

このインターフェイスでの出力廃棄を緩和するために、Enqueueカウンタに基づいてQ0からQ1の間のエンキュー率は非常に低く、そのためQ2およびQ3ほど多くのバッファを必要としません。キュー2とキュー3には、他のキューよりも大量のエンキューされたトラフィックがあるため、より多くのバッファをキュー2とキュー3に割り当てることをお勧めします。

- バッファ割り当てを変更するには、インターフェイスtwentyFiveGigE 1/0/1に適用されるポリシーマップでqueue-buffers ratio <0-100>設定を使用できます。

注：このコマンドをポリシーの各クラスで設定する場合、合計が100になる必要があります。ただし、1つのクラスのみが設定されている場合、システムは他のキューから均等にバッファを差し引きます。

次の例は、ポリシーマップでqueue-buffers ratioを設定する方法を示しています。

Cat9k(config)#policy-map test

Cat9k(config-pmap)# class Voice

Cat9k(config-pmap-c)# priority level 1

Cat9k(config-pmap-c)# queue-buffers ratio 5

Cat9k(config-pmap-c)# class Video

Cat9k(config-pmap-c)# bandwidth remaining percent 50

Cat9k(config-pmap-c)# queue-buffers ratio 15

Cat9k(config-pmap-c)# class BuisnessCritical

Cat9k(config-pmap-c)# bandwidth remaining percent 30

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 3

Cat9k(config-pmap-c)# class class-default

Cat9k(config-pmap-c)# bandwidth remaining percent 20

Cat9k(config-pmap-c)# queue-buffers ratio 40           <-- Queue 4

Cisco IOS XE 17.2.1リリースからは、UADP 3.0(Catalyst 9500 High PerformanceおよびCatalyst 9600)に基づくスイッチは、同じASIC内の2つのコア間でActive Queue Management(AQM)バッファを共有するように設定できます。

- バッファ共有が設定されたポートでは、AQMバッファがマップされているコアに関係なく、使用可能なAQMバッファのいずれかが使用されます。 これは、単一のAQMコアのバッファを飽和させるようなトラフィックの高バーストの管理に役立ちます。

- この機能を有効にするには、グローバルコンフィギュレーションモードでqos share-bufferコマンドを使用します。

- show platform hardware fed active qos queue config interfaceコマンドで、この機能を確認できます。これは、システム全体に影響を与えるグローバル設定です。

バッファ共有を無効にするには、no qos share-bufferコマンドのno形式を使用します。

Cat9k(config)#qos share-buffer

Cat9k(config)#end

Wireshark を使用した出力ドロップの分析

ネットワーク上にマイクロバーストが存在することを確認するには、Wiresharkなどのパケットキャプチャツールを使用できます。

- Wiresharkはパケットをキャプチャし、リアルタイムまたはキャプチャ後にネットワークトラフィックを分析できるようにします。

- Wiresharkでドロップが発生したときにどのようなマイクロバーストが発生するかを特定するには、影響を受けるインターフェイスでパケットキャプチャを開始し、出力のドロップが発生するまで繰り返しインターフェイスを確認します。

- キャプチャが完了したら、Wiresharkでキャプチャファイルを開き、トラフィック量が多い期間が続いてトラフィック量が少ないか少ないかを確認します。これらはマイクロバーストの可能性があります。

インターフェイスでの出力ドロップを効果的にキャプチャして分析するには、次の推奨事項を使用します。

- EPC(Embedded Packet Capture)は使用しないでください。EPCはすべてのトラフィックを最大1000パケット/秒(pps)に制限するため、データが無効になる可能性があります。

- 出力廃棄が特定されるインターフェイスのTX専用SPANが、推奨される方法です。

- SPANを使用する場合は、送信元ポートと宛先ポートの速度が同じであるか、または宛先ポートの速度が送信元ポートより高い必要があります。これにより、SPANセッションで、ポート速度の不一致による追加のネットワーク輻輳やパケットドロップが発生しなくなります。

- 出力廃棄がアクティブに増加している間にSPANセッションを収集することが重要です。これにより、関連するトラフィックをキャプチャし、マイクロバーストの根本原因を特定できます。ドロップが発生した後でSPANセッションが収集されると、関連するトラフィックをキャプチャできません。

このような大量のトラフィックが発生する時間帯がマイクロバーストに該当するかどうかを確認するには、WiresharkのI/Oグラフ機能を使用します。I/Oグラフはネットワークトラフィックを時系列でグラフ表示するため、マイクロバーストを特定しやすくなります。I/Oグラフを作成するには、Statistics > I/O Graphの順に選択します。

注:この手順を示すために、1 Gbpsインターフェイスで取得したパケットキャプチャを使用しました。ただし、この手順は、高速インターフェイスでの出力廃棄のトラブルシューティングと同じです。

図 2：I/O グラフの選択.

次のグラフは、転送中のデータの量を示す線を示しています。グラフ内のスパイクを探します。これは、トラフィックが多い時間帯を示しています。これらのスパイクの後にトラフィックが低い期間や流れない期間が続く場合は、マイクロバーストが発生している可能性があります。

図 3：パケットキャプチャのI/Oグラフを表示します。

表示フィルタが適用されていないすべてのパケットが選択されていることを確認することが重要です。さらに、Line Graphオプションを選択して、Y軸をBitsに設定すると、トラフィックが適切に分析されます。

図 4：Line Graphオプションを選択して、Y軸をBitsに設定する方法を示します。

大きなパケットキャプチャを分析する場合、対象とする特定の期間を特定することが重要です。たとえば、このシナリオでは、30秒近くに大量のトラフィックが存在することが確認できます。

I/Oグラフのスパイクのピークをクリックすると、Wiresharkはバックグラウンドでそのパケットを選択します。このシナリオでは、マイクロバーストの存在が疑われるタイムスタンプ内で動作するように、パケットキャプチャのサブセットを作成するためにパケット79280と101896が選択されています。

図 5.マイクロバーストの存在が疑われるタイムスタンプに焦点を合わせたパケットキャプチャのサブセットを作成する方法を示します。

選択した最初と最後のパケットを新しいファイルにエクスポートするには、RangeとCapturedのラジオアイコンを必ず選択してください。

図 6.パケットキャプチャのサブセットをエクスポートして保存する方法を示します。

ファイルを保存したら、ファイルを開いてI/Oグラフに戻ります。スパイクをミリ秒単位でグラフ化するには、間隔を1ミリ秒に設定します。

図 7パケットキャプチャのエクスポートされたサブセットのI/Oグラフを表示します。

グラフを表示するときは、トラフィックがラインレートでフルミリ秒で送信された期間を示すスパイクを特定することが重要です。この期間はトラフィックがラインレートで送信された期間であり、これによりバッファがいっぱいになり、出力廃棄が発生した可能性があります。たとえば、1 Gbpsのインターフェイスでは、これは1,000,000ビット/ミリ秒に相当します。

潜在的なマイクロバーストを表すスパイクのピークをクリックします。これは、出力ドロップの原因となったパケットを特定するのに役立ちます。このパケットをさらに分析して、マイクロバーストの根本原因を特定し、是正措置を講じることができます。

図 8.I/Oグラフで潜在的なマイクロバーストトラフィックを特定する方法を示します。

警告：高速インターフェイスでWiresharkまたはその他のパケットキャプチャツールを使用する場合は、この制限を認識することが重要です。40Gや100Gなどの高速インターフェイスは、大量のネットワークトラフィックを生成し、パケットのキャプチャに使用されるシステムのリソースに過剰な負荷をかける可能性があります。その結果、キャプチャプロセス中にパケットのドロップが発生し、キャプチャデータの正確性と完全性に影響を与える可能性があります。

代替アプローチ

キューに割り当てられたリソースを使い果たしても引き続きドロップが発生する場合は、輻輳を管理するための代替オプションを検討する必要があります。これには次のものが含まれます。

- インターフェイス速度のアップグレード。1 Gから10 G、10 Gから25 G、または40 Gに移行することで、出力帯域幅を増やし、オーバーサブスクリプション率を下げることができます。

- キュー単位/インターフェイス単位のバッファが大きいプラットフォームに変更する。

- アプリケーションの設定を調整して、出力廃棄の原因となるバーストサイズを小さくします。

- キューイングスケジューラを使用して、あるクラスのトラフィックを別のクラスのトラフィックよりも優先します。この方法では、重要性の低いトラフィックのドロップが増加する代わりに、重要性の高いトラフィックの保護に優先順位が付けられます。

- Weighted Random Early Discard（WRED；重み付けランダム早期廃棄）やWeighted Tail Drop（WTD；重み付けテールドロップ）などの輻輳管理アルゴリズムを実装し、トラフィックを早期にドロップします。WREDまたはWTDのしきい値により、バーストトラフィックの早期の廃棄が引き起こされ、その結果、エンドクライアントの送信ウィンドウが自動的に短縮される可能性があります。これにより、他のバースト性の低いトラフィックが輻輳の低減を受けることができ、輻輳が多い期間にトラフィッククラスごとにバッファを最小限に割り当てることができます。

- データバックアップなどの既知の高帯域幅アプリケーションのソースに最も近いトラフィックをポリシングして、ネットワーク上のバーストの頻度と重大度を減らします。これにより、ネットワーク上の別の場所にある発信元と宛先の間の低帯域幅エリアで、バーストトラフィックと通常のネットワークトラフィックの両方を効果的に管理する機会が増えます。

- ポートチャネルを使用します。ただし、ハッシュが原因で、複数のフローが単一のメンバに向けられる可能性があり、これが永続的なドロップにつながる可能性があることに注意することが重要です。

これらのオプションの中には、トラフィックエンジニアリングなど、より複雑な設定を必要とするものもありますが、ネットワークの輻輳や出力のドロップを軽減する大きな利点をもたらす可能性があることに注意してください。

関連情報

- Cisco Catalyst 9000スイッチングプラットフォーム：QoSとキューイングに関するホワイトペーパー

- Quality of Serviceコンフィギュレーションガイド、Cisco IOS XE 17.x

- Cisco Optics-to-Device互換性マトリクス

- サポートの革新：Cisco TACによるドキュメントの変革とセルフサービスの簡素化

- テクニカル サポートとドキュメント - Cisco Systems