目錄

簡介

必要條件

需求

採用元件

背景資訊

驗證

確定受影響的介面

辨識入站和出站介面

緩衝區分配

疑難排解

修改緩衝區分配

修改每個佇列的緩衝區

使用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軟體

注意：有關用於在其他Cisco平台上啟用這些功能的命令，請參閱相應的配置指南。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

背景資訊

高速介面上的輸出丟棄在任何網路環境中都可能發生，尤其是當它處理支援10 Gbps或更高的資料傳輸速率的介面時。當資料包在傳輸到網路之前被介面丟棄時，就會發生輸出丟棄。

當輸出丟棄發生於低使用率時，人們往往誤解了介面使用率的含義：

- 當單個介面傳送過多的流量時，該介面的緩衝區可能會被淹沒，並出現輸出丟棄。緩衝區過少的介面也會增加輸出丟棄的概率。

- 輸出丟包也可能是由於介面速度和所連線裝置的速度不匹配引起的。例如，如果10 Gbps介面連線到僅支援1 Gbps資料傳輸速率的裝置，則當無法降低資料傳輸速率以匹配裝置功能時，該介面可以丟棄資料包。

但是，在大部分情況下，輸出丟棄是由耗盡埠緩衝區的微突發流量引起的：

- 微突發是指在非常短的時間內傳送大量流量的現象，通常僅持續幾毫秒，並且超過介面的可用頻寬。

- 發生微突發時，網路裝置需要緩沖流量，直到流量能夠傳輸到網路。如果超過緩衝區大小，則丟棄資料包。

網路流量通常以鏈路的平均利用率來衡量（在30秒到5分鐘之間測量，具體取決於配置）。雖然此平均值顯示流量穩定且相對均勻，但以毫秒級規模檢視時，介面使用率通常非常突增。

圖1. 顯示高速介面上輸出丟棄的根本原因的直觀表示。

1. 資料包流A、B和C表示流中的位元組。

2. 流A、B和C透過100G介面傳輸並在下一跳交換機接收。

3. 觀察A和部分B位是否成功從10G輸出介面轉發出去。

- 但是，當流C到達時，交換機緩衝了流B中的某些位，因為無法像到達時那樣快速取消這些位的隊列。

- 緩衝區已滿，無法容納剩餘的B位和資料包C中的所有位。

- 如果入口分類器確定即使下一幀的一個位元位也沒有空間，它就會丟棄整個資料包！

4. 流A和部分B透過10G介面傳輸。

介面「速度/頻寬」都有些用詞不當：

- 頻寬=資料（位）/時間

- 當位從10G > 100G > 10G遍歷時，它們不會「物理加速」

「速度」差異是交織能力/每時間間隔的通道數/脈衝數、編碼機制等，而介質（光/電子）的速度則更快。

提示：在介面配置模式下使用load-interval <30-600>命令以修改載入間隔延遲（以秒為單位）。（載入間隔代表交換器輪詢介面計數器的頻率）。

驗證

排除高速介面上的輸出丟包故障是一個複雜的過程，但以下為一些可幫助確定和解決此問題的常規步驟：

確定受影響的介面：

- 首先縮小遇到輸出丟包的介面。

- 請使用show interfaces | include is up|Total output drops命令輸出或使用監控工具確定哪個介面面臨問題。

標識入站和出站介面：

- 要驗證介面到ASIC的對映，請運行show platform software fed <switch|active> ifm mappings命令。

驗證緩衝區分配：

- 檢驗受影響介面的緩衝區分配和介面配置非常重要。

使用Wireshark驗證微蜂窩：

- 高速介面上的輸出丟棄通常是由流量的微爆發引起的。

- 使用流量分析工具（如Wireshark）監控流量模式並辨識任何可能的微爆發。

考慮硬體升級：

- 如果上述步驟無法解決問題，則必須升級硬體（如介面、裝置或網路基礎設施）以處理增加的流量。

確定受影響的介面

要辨識出現輸出丟棄的受影響介面，請使用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--

總輸出丟棄： 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當前儲存已排入隊列的流量。在此介面上接收的流量暫時儲存在緩衝區中，直到可以傳輸為止。

- 只有隊列2遇到丟棄或丟棄的流量(24010607位元組)。

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上已協商為10Gbps速度的介面上分配的預設軟緩衝區。

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上協商為10Gbps的速度。

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倍增器的情況下，或在嘗試調整緩衝區以適應流量量變曲線的情況下，可以使用每隊列緩衝區修改。

- 要修改每個介面的隊列緩衝區分配，必須使用策略對映。

- 在大多數情況下，您可以修改介面的當前策略對映並逐類更改緩衝區。

在本示例介面中，twentyFigGigE 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分配更多緩衝區，因為這些隊列比其他任何隊列都具有較多的已排入隊列的流量。

- 要修改緩衝區分配，可以在應用於介面twentyFiveGigE 1/0/1的策略對映中使用queue-buffers ratio <0-100>配置。

注意：如果在策略中的每個類上配置此命令，則其總和必須為100。但是，如果只配置了一個類，則系統將從其他隊列中平均減去緩衝區。

本示例顯示如何在策略對映上配置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高效能和Catalyst 9600)的交換機可以配置為在相同ASIC內的兩個核心之間共用活動隊列管理(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（嵌入式資料包捕獲）。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圖形。

請務必確保選擇所有資料包而不應用顯示過濾器。此外，選擇折線圖選項，並將Y軸設定為位，以正確分析流量。

圖4.顯示如何選取「折線圖」選項並將Y軸設定為位元。

在分析大型資料包捕獲時，確定您感興趣的特定時間段非常重要。例如，在此場景中，可以觀察到30秒附近有大量流量。

點選I/O圖形中的峰值會導致Wireshark在後台選擇該資料包。在我們的場景中，選擇資料包79280和101896來建立資料包捕獲的子集，以便在懷疑存在微突發的情況下使用時間戳。

圖5.顯示如何建立資料包捕獲的子集，該子集側重於可疑的微突發狀態時間戳。

要將選定的第一個和最後一個資料包導出到新檔案，請確保選擇Range 和Captured 單選按鈕。

圖6.顯示如何導出和儲存資料包捕獲的子集。

儲存檔案後，請開啟檔案並導覽回I/O圖形。確保間隔設定為1ms，以繪製以毫秒為單位看到的峰值。

圖7.顯示資料包捕獲的導出子集的I/O圖。

當圖形顯示時，必須標識代表以線路速率傳輸整個毫秒的流量的週期的峰值，這會導致緩衝區被填滿，並可能產生輸出丟棄。例如，在1 Gbps介面上，這相當於每毫秒1,000,000位。點選代表潛在微爆的尖峰。它有助於確定導致輸出丟棄的資料包。然後，可以進一步分析此資料包，以確定微突發事件的根本原因並採取糾正措施。

圖8.顯示如何辨識I/O圖形中的潛在微突發流量。

警告：在高速介面上使用Wireshark或任何其他資料包捕獲工具時，必須瞭解此限制。高速介面（例如40G和100G）會生成大量網路流量，這可能會佔用用於捕獲資料包的系統資源。因此，這可能會導致在捕獲過程中丟棄資料包，並會影響捕獲資料的準確性和完整性。

替代方法

如果已經耗盡分配給隊列的資源，但仍然遇到丟包現象，則需要考慮其他選項來管理擁塞。這些可能包括：

- 升級介面速度。您可以從1G移至10G、從10G移至25G或40G，以增加輸出頻寬並降低超訂用率。

- 將平台更改為一個具有更大每隊列/每介面緩衝區的平台。

- 調整應用程式設定，以減少導致輸出捨棄的突增大小。

- 使用排隊排程程式將一個流量類優先於另一個流量。此方法優先保護更重要的流量，但會增加不太重要的流量的丟包數量。

- 實施擁塞管理演算法(例如加權隨機早期丟棄(WRED)或加權尾部丟棄(WTD))以便更早丟棄流量。WRED或WTD閾值可能導致突發流量的早期下降，從而自動縮短終端客戶端的傳輸窗口。這允許其它突發性較小的流量遇到較少的擁塞，確保在高度擁塞期間為不同流量類別分配最小的緩衝區。

- 管制距離已知高頻寬應用源最近的流量（例如資料備份），以降低網路上突發事件的頻率和嚴重性。這樣，位於網路其他位置的源與目標之間的低頻寬區域便能更有效地管理突發流量和正常網路流量。

- 使用埠通道。但是，必須注意的是，由於雜湊操作，可能會有多個流定向到單個成員，這可能會導致持續丟棄。

必須注意的是，其中一些選項需要更多涉及的配置（如流量工程），但可以顯著緩解網路擁塞和輸出丟棄。

相關資訊

- Cisco Catalyst 9000交換平台：QoS和排隊白皮書

- 服務品質配置指南，Cisco IOS XE 17.x

- Cisco光纖到裝置相容性清單

- 支援創新：Cisco TAC如何轉變文檔並簡化自助服務

- 技術支援與文件 - Cisco Systems