本文档提供了有关Cisco Catalyst 9000系列交换机输出丢弃的常见问题的答案。
Cisco建议您对交换概念(包括接口缓冲和服务质量(QoS)配置)有基本的了解。
本文档适用于所有Cisco Catalyst 9000系列交换机,并且不限于特定硬件或软件版本。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
当接口出口缓冲区耗尽时,就会发生输出丢弃,从而导致数据包丢失和网络性能下降。常见原因包括网络拥塞、流量微爆发、配置错误或硬件限制。本FAQ文档解答有关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交换机上的输出丢弃通常发生在由于各种拥塞或配置问题导致数据包在传输之前被丢弃时。常见原因包括:
A.微爆发是指在微秒或毫秒内发生的高强度、短持续时间的流量尖峰。它们会立即耗尽Catalyst 9000交换机上的出口硬件缓冲区,从而导致输出丢弃。因为标准监控工具会以较长的时间间隔对流量进行平均,所以这些突发流量通常仍然不可见。即使接口的平均利用率在容量内表现良好,这也会导致丢包。因此,这些瞬时峰值是高速网络环境中拥塞的主要原因。
答:不会,在短流量爆发期间,即使是在健康的网络中,也可能会发生输出丢弃。现代交换机使用基于缓冲区的排队,并且偶尔发生丢包时不会影响应用程序。当出现以下情况时,丢包通常会发生问题:
下降持续增加
应用程序遇到延迟或丢包
TCP重新传输增加
实时应用(VoIP/视频)受到影响
A.即使接口利用率远低于链路的最大带宽(例如,千兆接口低于1000 MBPS),仍可能发生输出丢弃。 发生这种情况是因为网络流量无法以完全平滑和连续的流传输。在理想情况下,每个比特通过链路平均传输,所有设备以精确同步的间隔发送流量。但是,在真实的网络中,设备会根据需要随时传输流量。因此,多个数据包可以同时到达交换机,并且必须通过同一传出接口传输。为了处理这种情况,交换机在每个接口上使用硬件缓冲区。这些缓冲区临时存储同时到达的数据包,以便数据包在链路上按顺序传输。如果特定时刻到达接口的数据包数量超过可用缓冲区容量,交换机将无法存储所有数据包。当这种情况发生时,多余的数据包将被丢弃,从而导致输出丢弃。
因此,即使平均带宽利用率相对较低(例如,1 GBPS接口上的300 MBPS),仍有可能观察到输出丢弃。 平均利用率可能看起来较低,但短暂的突发流量可能会暂时超过接口传输数据包的能力或超过可用的缓冲区容量。
还必须注意,通过SNMP监控工具或show interface命令显示的接口利用率值基于时间间隔内的平均流量测量值,例如30秒或5分钟。这些平均值并不反映可能在毫秒内发生的非常短暂的流量峰值。
答:您可以通过多种技术管理和减少Catalyst 9000交换机上的输出丢弃,而无需升级物理链路速度:
此命令会增加端口队列阈值,以便队列可以在需要时使用共享缓冲池中的额外缓冲单元。这通常用作一种快速缓解技术,用于减少流量突发引起的输出丢弃。但是,由于缓冲区是共享资源,因此配置假定微突发不会同时在所有端口上发生。
每队列缓冲区修改(QoS策略调整):如果SoftMax乘数不足,可以使用QoS策略映射在队列级别调整缓冲区分配。这样,管理员可以为特定流量类分配更多缓冲区空间、修改队列缓冲区比率,并为关键流量配置优先级队列。当特定流量类型需要专用缓冲区资源或流量量变曲线大小时,此方法非常有用。
示例:
policy-map QOS-POLICY
class VOICE
priority level 1
queue-buffers ratio 50
class class-default
queue-buffers ratio 50
示例:
policy-map SHAPE-POLICY
class class-default
shape average
示例:
port-channel load-balance src-dst-ip
A.消除产出下降的最有效解决方案是:
答:对于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
...
A.为了验证QoS是否负责输出丢弃,请使用show policy-map interface <interface>命令和队列计数器检查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等高速接口也会出现输出下降,从而导致接口缓冲区不堪重负。此外,微突发(超出接口带宽的短突发)可能会快速耗尽端口缓冲区,导致丢包。
A.输出丢弃通常不是由硬件故障引起的。它们通常由流量拥塞导致,流量速率高或微爆发导致接口缓冲区不堪重负。硬件相关丢包可能会发生,但通常与特定错误条件相关联,而与拥塞相关丢包相比,这种情况很少见。因此,输出丢弃主要与网络流量状况有关,而不是与硬件故障有关。监控接口错误(例如FCS/CRC错误)有助于识别硬件问题(如果存在),但这些问题与由拥塞引起的输出丢弃不同。
答:软件缺陷导致的输出丢弃非常少见,而且大多是表面上的,对流量没有实质影响。大多数输出丢弃主要是由流量拥塞和缓冲区耗尽引起的。
答:是,等价多路径(ECMP)路由和负载均衡通过将流量平均分配到多个等价路径到目的地,从而减少拥塞。此方法可以提高带宽利用率,防止任何单个路径成为瓶颈。
答:是,输出丢弃对UDP流量的影响与TCP不同,因为UDP是一种无连接协议,不会重新传输丢失的数据包,因此任何数据包丢失都会直接影响语音或视频等应用程序,这些应用程序依赖于及时传输。相反,TCP包含重新传输机制,尝试恢复丢失的数据包,减轻丢弃的影响。因此,在基于UDP的实时应用程序中,输出丢包会导致更明显的降级,因为丢失的数据包无法恢复,并且可能导致质量问题。
答:接口上的输入丢弃通常发生在输入队列不堪重负且处理数据包的速度不够快时,导致根据排队算法选择性丢弃数据包。当由于输出队列中的拥塞或缓冲区耗尽而离开接口时,数据包被丢弃,即发生输出丢弃。输入丢弃与入口处理限制相关,而输出丢弃主要由出口拥塞和缓冲区溢出引起。这些丢包可能受到流量突发、平台限制和服务质量(QoS)配置等因素的影响,这些配置用于管理拥塞和缓冲区分配。
答:是的,大型备份作业(如数据备份、复制或批量传输)通常会产生突发流量,这些流量可能会淹没接口缓冲区,从而导致输出丢弃。这些突发会导致出口接口出现临时拥塞,尤其是当传出带宽低于传入流量速率时,或者当多个高速数据流汇聚在一个端口上时。
答:为了确认流量突发导致的输出丢弃,您可以在发生输出丢弃时使用SPAN会话与Wireshark结合来捕获和分析受影响接口上的出口流量。观察以下步骤以验证流量突发触发的输出丢弃。
monitor session 1 source interfaceTx
monitor session 1 destination interface
Replacewith the interface where output drops are seen for the source.
Replacewith the interface connected to the laptop for the destination.
在毫秒范围内查找超过接口转发速度的流量峰值(例如,1 GBPS接口为1,000,000位/毫秒)。 当流量超过此转发速度时,交换机将缓冲数据包,这可能导致拥塞和输出丢弃。通过观察峰值以及流量过低或无流量时段,识别流量突发(微突发)。在Wireshark中,点击峰值选择相应的数据包,从而进一步分析触发丢弃的流量。下图显示出现输出丢弃的接口的更新I/O图形。

误区:任何输出丢弃都意味着网络发生故障。
现实:在高速网络中,由于微爆发或短流量尖峰,少量输出丢弃是正常现象。
误区:如果接口利用率较低,则不能发生丢弃。
现实:使用率按一段时间内的平均值来衡量。微爆发可能暂时超出接口带宽,即使平均利用率较低也会造成丢包。
误区:输出丢弃表示交换机硬件出现故障。
现实:输出丢弃通常是由流量拥塞或突发流量引起的,而不是硬件问题。
误区:增加缓冲区分配将防止所有丢弃。
现实:缓冲区只能吸收临时突发。持续拥塞仍将导致丢包。
误区:只有1G接口出现输出丢弃。
现实:当流量突发超过可用带宽或缓冲区容量时,10G、25G、40G或高速接口可能会发生丢弃。
误区:QoS必须消除所有丢包/防止丢包。
现实:QoS会优先处理重要流量,但在拥塞时它可能会有意丢弃优先级较低的流量。
误区:任何输出丢弃都会造成用户影响。
现实:许多应用程序使用TCP重新传输,可以从偶尔的数据包丢弃中恢复,而不会产生明显的影响。
误区:仅当接口达到100%利用率时才会发生丢弃。
现实:即使平均利用率保持低位,流量短时爆发时也会发生丢弃。
误区:QoS配置始终是丢弃的原因。
现实:大多数丢弃是由流量模式或超订用而非QoS策略引起的。
误区:正常的网络绝不能有输出丢弃。
现实:在高性能交换环境中,偶尔出现丢包是正常现象。
| 版本 | 发布日期 | 备注 |
|---|---|---|
1.0 |
22-Apr-2026
|
初始版本 |