目錄

簡介

必要條件

需求

採用元件

背景資訊

問：什麼是輸出丟棄？

問：哪個命令可用於檢查輸出丟包？

產出下降的常見原因是什麼？

什麼是微爆發？

問：輸出丟棄是否始終是個問題？

問：為什麼即使介面未完全使用也會發生輸出丟棄？

問：如何在不提高鏈路速度的情況下控制輸出丟棄？

輸出下降的最終解決方案是什麼？

問：如何檢查介面上的隊列統計資訊？

問：如何確認QoS是否導致了輸出丟棄？

問：諸如10G或40G之類的高速介面上是否會發生輸出丟棄？

問：硬體故障是否會導致輸出丟棄？

問：軟體錯誤是否會導致輸出丟棄？

問：ECMP或負載平衡能否減少擁塞？

問：輸出丟棄對UDP流量的影響是否與TCP不同？

輸入捨棄和輸出捨棄之間有什麼區別？

問：大型備份作業是否會導致輸出丟失？

問：如何識別突發流量是否會導致輸出丟棄？

重要注意事項

輸出丟包的常見錯誤概念

客戶SAT問卷信件

簡介

本文回答有關Cisco Catalyst 9000系列交換機輸出丟棄的常見問題。

必要條件

需求

思科建議您深入瞭解交換概念，包括介面緩衝和服務品質(QoS)設定。

採用元件

本檔案適用於所有Cisco Catalyst 9000系列交換器，並不限於特定硬體或軟體版本。

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

背景資訊

當介面出口緩衝區耗盡時，就會發生輸出丟棄，從而導致資料包丟失和網路效能下降。常見原因包括網路擁塞、流量微爆發、配置錯誤或硬體限制。本常見問題解答文檔解答有關Cisco Catalyst 9000系列交換機輸出丟棄的常見問題。它提供有關確定根本原因、故障排除方法以及恢復網路效率和可靠性的建議實踐的指導。

問：什麼是輸出丟棄？

A. Cisco Catalyst 9000交換器上的輸出捨棄是指即使封包已由裝置處理，但遭捨棄且無法從介面傳輸的資料包數量。當介面的輸出隊列已滿時會發生這種情況。交換器介面具有硬體緩衝區，可在封包從連線埠傳輸或轉送出去之前臨時儲存封包。當傳出流量的速率超過硬體傳輸該流量的速率時，緩衝區會變滿，到達隊列的所有額外資料包都會被丟棄。

問：哪個命令可用於檢查輸出丟包？

A.使用命令show interfaces <interface>並查詢total output drops計數器，該計數器表示在該介面的輸出隊列上丟棄的資料包數。

範例：

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

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

Queueing strategy: fifo

Output queue: 0/40 (size/max)

產出下降的常見原因是什麼？

答：Catalyst 9000交換機上的輸出丟棄通常發生在由於各種擁塞或配置問題導致資料包在傳輸之前被丟棄時。常見原因包括：

- Traffic Micro-burst:在毫秒內出現的突發的高強度流量峰值。由於標準網路監控工具（如SNMP）通常以1分鐘或5分鐘間隔輪詢，這些突發對管理軟體通常不可見，但足以耗盡硬體輸出緩衝區。

- 超額訂閱：當傳入流量的總頻寬顯著超過傳出介面的容量時，擁塞是不可避免的。當多個高速埠（例如10G）將流量傳送到單個低速埠（例如1G）時，這種情況很常見。

- 緩衝區限制：每個介面都有有限的硬體緩衝空間。當出口隊列由於持續擁塞而達到其最大容量時，交換機將執行「尾部丟棄」，在此丟棄所有後續傳入資料包，直到空間變為可用。

- 服務品質(QoS)組態錯誤：錯誤配置的QoS策略（特別是主動策略或限制性調節）可能會導致丟棄。如果策略配置為將流量限制在實際鏈路容量之下，那麼即使物理鏈路沒有擁塞，超過該閾值的資料包也會被丟棄。

- 速度和雙工不匹配：雖然現代自動交涉不太常見，但交換器連線埠和連線裝置之間的不相符會導致傳輸效率低下、衝突增加（半雙工中），以及後續的佇列飽和。

- 流量控制(IEEE 802.3x):如果啟用了流量控制，則可以指示交換機暫停接收裝置的傳輸。如果暫停訊框頻發，交換器緩衝區的輸出可能會滿載，當交換器等待恢復傳輸時，會導致捨棄。

- 連線埠通道不平衡：如果EtherChannel/Port-Channel中的流量在各成員連結之間分佈不均，則一個介面可能會擁塞，而另一個介面仍得不到充分利用。

什麼是微爆發？

A.微突發是發生在微秒或毫秒內的高強度、短持續時間的流量峰值。它們會立即耗盡Catalyst 9000交換器上的輸出硬體緩衝區，導致輸出下降。因為標準監控工具可以按較長的時間間隔對流量進行平均，所以這些突發事件通常是不可見的。即使介面的平均利用率在容量內表現良好，這也會導致資料包丟失。因此，在高速網路環境中，這些臨時峰值是導致擁塞的主要原因。

輸出中斷總是問題嗎？

答：不，即使在正常的網路中，短流量突發期間也可能會發生輸出丟棄。現代交換機使用基於緩衝區的隊列，並且偶爾發生丟包而不會影響應用程式。當出現以下情況時，丟棄通常會出現問題：

- 下降持續增加

- 應用程式遇到延遲或丟包

- TCP重傳次數增加

- 即時應用（VoIP/影片）受到影響

問：為什麼即使介面未完全使用也會發生輸出丟棄？

A.即使介面利用率遠低於鏈路的最大頻寬（例如，千兆介面上的1000 MBPS以下），也可能會發生輸出丟棄。 發生這種情況是因為網路流量無法以完全平滑和連續的方式傳輸。在理想情況下，所有位均通過鏈路均勻傳輸，並且所有裝置以精確同步的時間間隔傳送流量。但是，在真實的網路中，裝置可以根據需要隨時傳輸流量。因此，多個資料包可以同時到達交換機，並且必須通過同一傳出介面傳輸。為了處理這種情況，交換器在每個介面上使用硬體緩衝區。這些緩衝區臨時儲存同時到達的資料包，以便它們可以通過鏈路按順序傳輸。如果特定時刻到達介面的資料包數量超過了可用緩衝區容量，交換機將無法儲存所有資料包。如果發生這種情況，多餘的資料包會被丟棄，從而導致輸出丟棄。

這就是即使在平均頻寬使用率相對較低（例如，1 GBPS介面上的300 MBPS）時仍有可能觀察到輸出丟棄的原因。 平均利用率可能看起來較低，但短暫的突發流量可能會暫時超過介面傳輸資料包的能力或超過可用的緩衝區容量。

還必須注意的是，通過SNMP監控工具或show interface命令顯示的介面利用率值基於時間間隔內的平均流量測量值，如30秒或5分鐘。這些平均值並不反映可能在毫秒內發生的非常短暫的流量峰值。

問：如何在不提高鏈路速度的情況下控制輸出丟棄？

答：您可以通過多種技術管理和減少Catalyst 9000交換機上的輸出丟棄，而無需升級物理鏈路速度：

- 增加SoftMax乘數（快速緩解）：為了增加隊列可以從共用緩衝區池請求的緩衝區數量，可以使用全域性配置命令qos queue-softmax-multiplier <100-1200>調整SoftMax閾值。預設值為100。將此值設定為1200，與預設配置相比，隊列吸收微突發的能力提高了12倍。
此命令會增加埠隊列閾值，以便隊列可以在需要時佔用共用緩衝池中的更多緩衝單元。這通常用作一種快速緩解技術，用於減少流量突發引起的輸出丟棄。但是，由於緩衝區是共用資源，因此配置假定並非所有埠上同時發生微突發。

每隊列緩衝區修改（QoS策略調整）：如果SoftMax乘數不足，可以使用QoS策略對映在隊列級別調整緩衝區分配。這樣，管理員可以為特定流量類分配更多緩衝區空間、修改隊列緩衝區比率以及配置關鍵流量的優先順序隊列。當特定流量型別需要專用緩衝區資源或流量量變曲線差異較大時，此方法非常有用。

範例：

policy-map QOS-POLICY

class VOICE

priority level 1

queue-buffers ratio 50

class class-default

queue-buffers ratio 50

- 實施服務品質(QoS):它通過在擁塞期間優先處理關鍵網路流量來幫助控制丟包。它使網路能夠優先處理延遲敏感型流量（如語音和影片），保護控制平面流量，並確保重要資料先於較低優先順序的流量傳輸。典型的QoS機制包括流量分類、隊列優先順序、隊列緩衝區分配和擁塞管理。通過應用這些技術，網路可以確保不太重要的流量首先被丟棄，從而幫助保護業務關鍵型應用並維護整體網路效能。

- 流量調節：在介面上配置出口調節以平滑流量突發。通過將傳輸速率限制在略低於物理線路速率的範圍內，可以強制對流量進行緩衝並以一致、可預測的速率傳送。這防止了由突發、高速微爆引起的尾部掉落行為。

範例：

policy-map SHAPE-POLICY

class class-default

shape average

- 最佳化負載分配（埠通道平衡）：在EtherChannel或Port-Channel配置中，不均勻的雜湊會導致特定成員鏈路擁塞，而其它成員鏈路未得到充分利用。通過最佳化負載平衡演算法，您可以確保流量均勻分佈在所有成員鏈路上，從而防止各個介面上的擁塞並緩解輸出丟棄。

範例：

port-channel load-balance src-dst-ip

輸出下降的最終解決方案是什麼？

A.消除產出下降的最有效解決辦法是：

- 提高介面線路速度：升級介面速度以提供更高的出口頻寬並減少超訂用。例如，從1G介面移至10G介面（如果交換機上可用）。

- 使用埠捆綁(EtherChannel)：如果連線的裝置支援此功能，則使用埠捆綁將多個物理鏈路聚合到單個邏輯鏈路中。這樣可以增加整體頻寬，並幫助分配流量負載。

- 硬體升級（如有必要）：如果交換機上沒有高速介面，且所連線的裝置不支援埠捆綁，請考慮將硬體平台升級到具有更高容量或更大緩衝區的平台。

問：如何檢查介面上的隊列統計資訊？

答：對於Catalyst 9000交換機，可以使用show platform hardware fed active qos queue stats interface <port>命令檢查詳細的硬體隊列統計資訊。此命令提供詳細的統計資訊，包括指定介面上每個隊列的緩衝區使用情況、入隊計數和丟棄計數器，從而有助於監控隊列效能和識別擁塞或資料包丟棄。

範例：

show platform hardware fed switch active qos queue stats interface Gig 1/0/1

DATA Port:0 Enqueue Counters

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

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

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

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

0       0                    0                    0            384251797                    0

1       0                    0                    0         488393930284                    0

...

DATA Port:0 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            192308101                    0                    0                    0

...

問：如何確認QoS是否導致了輸出丟棄？

A.為了驗證QoS是否負責輸出丟棄，請使用命令show policy-map interface <interface>和queue counters檢查QoS策略統計資訊。如果在特定QoS類下丟棄計數器增加，則可能由QoS隊列限制或策略導致。如果可能，在維護期間，使用命令no service-policy output <policy-name>暫時從介面刪除QoS策略，並監視輸出丟棄是否繼續。如果在刪除策略後停止丟包，則可能是QoS配置導致了丟包。

範例：

sh policy-map interface gigabitEthernet 1/0/1

GigabitEthernet1/0/1

Service-policy output: TEST

Class-map: class-default (match-any)

0 packets

Match: any

Queueing

(total drops) 587230

(bytes output) 834545

...

問：諸如10G或40G之類的高速介面上是否會發生輸出丟棄？

答：是的，當多個高速流在單個埠上收斂時，即使是10G或40G等高速介面也會遇到輸出下降，從而導致介面緩衝區不堪重負。此外，微猝發（超過介面頻寬的短突發流量）可能會快速耗盡埠緩衝區，導致丟包。

問：硬體故障是否會導致輸出丟棄？

A.輸出丟棄通常不是由硬體故障引起的。它們通常由流量擁塞引起，高流量率或微突發導致介面緩衝區不堪重負。硬體相關丟包可能發生，但通常與特定錯誤條件相關聯，與擁塞相關丟包相比，這種情況非常罕見。因此，輸出丟棄主要與網路流量狀況有關，而不是與硬體故障有關。監控介面錯誤（如FCS/CRC錯誤）有助於識別硬體問題（如果存在），但這些問題與由擁塞引起的輸出丟棄不同。

問：軟體錯誤是否會導致輸出丟棄？

A.軟體缺陷導致的輸出丟棄非常少見，而且大多是無關緊要的，對流量沒有實質影響。大多數輸出丟棄主要是由流量擁塞和緩衝區耗盡引起的。

問：ECMP或負載平衡能否減少擁塞？

答：是。等價多路徑(ECMP)路由和負載平衡通過將流量平均分配到多個等價路徑到目的地來降低擁塞。此方法提高了頻寬利用率，防止任何單個路徑成為瓶頸。

問：輸出丟棄對UDP流量的影響是否與TCP不同？

答：是，輸出丟棄影響UDP流量的方式與TCP不同，因為UDP是一種無連線協定，不會重新傳輸丟失的資料包，因此任何資料包丟失都會直接影響到語音或影片等應用程式，這些應用程式依賴於及時傳輸。相反，TCP包含重傳機制，可嘗試恢復丟失的資料包，減輕丟棄的影響。因此，在基於UDP的即時應用程式中，輸出丟棄會導致更明顯的降級，因為丟失的資料包無法恢復，並且可能導致品質問題。

輸入捨棄和輸出捨棄之間有什麼區別？

答：介面上的輸入丟棄通常發生在輸入隊列變得不堪重負，並且處理資料包的速度不夠快時，導致基於排隊演算法的選擇性資料包丟棄。當由於輸出隊列中的擁塞或緩衝區耗盡而離開介面時丟棄資料包時，會發生輸出丟棄。輸入捨棄與輸入處理限制相關，而輸出捨棄主要由輸出擁塞和緩衝區溢位引起。這些丟棄可能受流量突發、平台限制以及管理擁塞和緩衝區分配的服務品質(QoS)配置等因素影響。

問：大型備份作業是否會導致輸出下降？

答：是的，大型備份作業（如資料備份、複製或批次傳輸）通常會產生突發流量，這些流量可能會淹沒介面緩衝區，從而導致輸出丟棄。這些突發會導致輸出介面上出現臨時擁塞，尤其是當傳出頻寬低於傳入流量速率時，或者當多個高速流在單個埠上收斂時。

問：如何識別突發流量是否會導致輸出丟棄？

答：為了確認由流量突發引起的輸出丟棄，您可以在發生輸出丟棄時，使用結合Wireshark的SPAN作業階段來擷取和分析受影響介面上的輸出流量。觀察以下步驟，驗證流量突發觸發輸出丟棄。

- 將安裝了Wireshark的筆記型電腦連線到交換機上未使用的埠。

- 在交換器上設定SPAN，將遇到輸出捨棄的介面的輸出流量映象到膝上型電腦連線的連線埠。

monitor session 1 source interface

Tx

monitor session 1 destination interface

Replace

with the interface where output drops are seen for the source.

Replace

with the interface connected to the laptop for the destination.

- 在輸出丟棄正在主動增加以確保捕獲相關流量時，在交換機上啟動SPAN捕獲。

- 在Wireshark中開啟捕獲檔案，然後導航到統計資訊> I/O圖形。

- 將「Interval（間隔）」從預設的1秒更改為1毫秒（1毫秒）。

- 按一下Reset以使用新間隔刷新圖形。

- 此圖形將以每毫秒的位數顯示流量。

在毫秒範圍內查詢超過介面轉發速度的流量峰值（例如，1 GBPS介面為1,000,000位/毫秒）。 當流量超過此轉送速度時，交換器會緩衝封包，這可能會導致擁塞和輸出捨棄。通過觀察流量高峰以及流量過低或無流量週期來識別流量猝發（微猝發）。在Wireshark中，按一下一個峰值選擇相應的資料包，從而進一步分析觸發丟棄的流量。下一張圖顯示遇到輸出丟棄的介面的更新I/O圖形。

重要注意事項

- 請確保SPAN來源連線埠和目的地連線埠具有相同或相容的速度，以避免匯入其他捨棄專案。

- 在輸出丟棄時捕獲流量正在積極增加以捕獲相關的猝發。

- 不建議使用嵌入式資料包捕獲(EPC)來實現此目的，因為它限制了捕獲速率並可能會錯過突發事件。

輸出丟包的常見錯誤概念

誤解：任何輸出丟棄都表示網路出現故障。

現實：在高速網路中，由於微突發或短流量高峰，少量輸出丟棄是正常現象。

誤解：如果介面利用率較低，則決不能發生丟棄。

現實：利用率是以一段時間的平均值來衡量的。微爆發可能暫時超出介面頻寬，即使平均利用率較低也會造成資料丟失。

誤解：輸出丟棄表示交換機硬體出現故障。

現實：輸出丟棄通常由流量擁塞或突發流量引起，而不是由硬體問題引起。

誤解：增加緩衝區分配將防止所有丟棄。

現實：緩衝區只能吸收臨時突發。持續擁塞仍將導致丟包。

誤解：只有1G介面遇到輸出丟棄。

現實：當流量突發超過可用頻寬或緩衝區容量時，10G、25G、40G或高速介面上可能會發生丟棄。

誤解：QoS必須消除所有丟包/防止資料包丟失。

現實：QoS可以優先處理重要的流量，但在擁塞時，它可能會故意丟棄優先順序較低的流量。

誤解：任何輸出丟棄都會造成使用者影響。

現實：許多應用程式使用TCP重傳，它可以從偶爾的丟包中恢復而不會產生明顯的影響。

誤解：僅當介面達到100%利用率時才會發生丟棄。

現實：即使平均利用率仍然較低，流量在短時間突發期間也可能發生丟棄。

誤解：QoS配置始終是丟棄的原因。

現實：大多數丟棄是由流量模式或超訂用引起的，而不是QoS策略。

誤解：正常的網路絕不能出現輸出丟棄。

現實：在高效能交換環境中，偶爾出現丟包是正常現象。

客戶SAT問卷信件

- Catalyst 9000交換器上的輸出捨棄疑難排解

- 瞭解Catalyst 9000交換器上的佇列緩衝區分配

- 思科技術支援與下載