简介
本文档介绍Cisco Nexus 7000 F248系列(F2/F2e)线卡的输入丢弃的原因和解决方案。输入丢弃表示由于拥塞而在输入队列中丢弃的数据包数。此数字包括由尾部丢弃和加权随机早期检测(WRED)引起的丢包。
背景信息
F2线卡在入口而不是出口上对数据包进行队列,并在所有入口接口上实施虚拟输出队列(VOQ),以便拥塞的出口端口不会影响流向其他出口端口的流量。VOQ在系统中的广泛使用有助于确保每个出口的最大吞吐量。一个出口端口上的拥塞不会影响发往其他出口接口的流量,这可避免线路头(HOL)阻塞,否则会导致拥塞扩散。
VOQ还使用贷记和未贷记流量的概念。单播流量分类为贷记流量;广播、组播和未知单播流量被分类为未计入流量。未计入的流量不使用VOQ,并且流量在出口而不是入口处排队。如果入口端口没有信用将流量发送到出口端口,入口端口会缓冲,直到获得信用为止。由于入口端口缓冲区不深,因此可能会发生输入丢弃。
常见原因
以下是导致输入丢弃的常见原因:
- 当交换端口分析器(SPAN)的目标端口位于F2线路卡上且SPAN流量超过线速时,最常见的输入丢弃原因就会发生。最终,入口端口会缓冲数据包,这会导致输入丢弃。
注意:{下一代I/O模块(如F2E、F3和M3)不易受SPAN目标端口超订用场景的影响,这会导致入口端口上的丢弃和HOLB。SPAN的准则和限制中也注意
- 设计不当(例如10G的输入带宽和1G的输出带宽)会触发F2硬件限制(HOL阻塞)。
- 如果来自多个端口的流量从同一接口(1G到1G或10G到10G接口)流出,如果超过线速,则可能导致入口端口上的输入丢弃。
- VLAN不匹配可能导致输入丢弃。使用show interface trunk命令验证两台交换机是否转发了同一个VLAN。
命令解决方案
本部分提供的信息可用于对配置进行故障排除。
注意:使用命令查找工具(仅限注册用户)可获取有关本部分所使用命令的详细信息。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令。使用输出解释器工具来查看 show 命令输出的分析。
在这些示例中,Ethernet 2/1(Eth2/1)连接了一台主机,该主机接收两个1Gbps流。Eth2/1以1G运行。两个流在Eth2/5和Eth2/9上进入。
show interface <ingress interface>
使用此命令检查接口的速度。如果入口接口以10Gbps的速率运行,而出口接口以1Gbps的速率运行,则丢弃可能由HOL阻塞引起。
N7K1# show int eth2/5
Ethernet2/5 is up
admin state is up, Dedicated Interface
------
full-duplex, 1000 Mb/s
------
30 seconds input rate 588237960 bits/sec, 73524 packets/sec
30 seconds output rate 216 bits/sec, 0 packets/sec
Load-Interval #2: 5 minute (300 seconds)
input rate 588.56 Mbps, 73.52 Kpps; output rate 156.11 Mbps, 19.45 Kpps
RX
221333142 unicast packets 0 multicast packets 0 broadcast packets
221333128 input packets 221333169400 bytes
0 jumbo packets 0 storm suppression packets
0 runts 0 giants 0 CRC 0 no buffer
0 input error 0 short frame 0 overrun 0 underrun 0 ignored
0 watchdog 0 bad etype drop 0 bad proto drop 0 if down drop
0 input with dribble 11590977 input discard <-------
0 Rx pause
show hardware internal statistics module <x> pktflow dropped
多次运行此命令,以确定congestion_drop_bytes的值是否增加;x是入口端口的模块编号。
attach module <x>和show hardware internal qengine
多次运行以下命令以识别虚拟队列索引(VQI)编号:
attach module <x>
module-x# show hardware internal qengine voq-status |ex "0 0 0 0 0 0 0 0 0 0 0
或
module-x# show hardware internal qengine inst 2 voq-status non-empty
在VQI上,您会经常看到移动中的非零计数器。在拥塞的端口上,计数器通常在大多数时间保持较高。
N7K1# attach module 2
Attaching to module 2 ...
To exit type 'exit', to abort type '$.'
module-2# show hardware internal qengine inst 2 voq-status non-empty
VQI:CCOS BYTE_CNT PKT_CNT TAIL HEAD THR
-------- -------- ------- ---- ---- ---
0036:3 6154 3077 6804 14168 1 <------- VQI is 36 here
module-2# show hardware internal qengine voq-status | ex "0 0 0 0 0 0 0 0 0 0 0 0"
VQI:CCOS CLP0 CLP1 CLP2 CLP3 CLP4 CLP5 CLP6 CLP7 CLP8 CLP9 CLPA CLPB
-------- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ---- ----
0036:3 0 0 0 0 0 0 0 1 0 0 0 0
VQI === 36
一旦您有VQI编号,请使用show hardware internal qengine vqi-map命令查找VQI映射表。查看插槽编号和低速数据接口(LDI)编号,以确定出口接口。(插槽也称为模块,LDI也称为端口。) 该模块是基于零的,并且映射函数可用于确定LDI。
module-2# show hardware internal qengine vqi-map
VQI SUP SLOT LDI EQI FPOE NUM XBAR IN ASIC ASIC SV FEA_
NUM VQI NUM NUM NUM BASE DLS MASK ORD TYPE IDX ID TURE
---- --- ---- --- --- ---- --- ----- --- ---- ---- -- ----
--snip
36 no 1 0 0 8 1 0x155 0 CLP 0 0 0x81
--snip
LDI到物理端口的映射:
LDI |
端口 |
0 |
2 |
1 |
1 |
2 |
3 |
3 |
4 |
4 |
6 |
5 |
5 |
6 |
7 |
7 |
8 |
8 |
10 |
9 |
9 |
10 |
11 |
11 |
12 |
12 |
14 |
13 个 |
13 个 |
14 |
15 |
15 |
16 |
16 |
18 |
17 |
17 |
18 |
19 |
19 |
20 |
20 |
22 |
21 |
21 |
22 |
23 |
23 |
24 |
24 |
26 |
25 |
25 |
26 |
27 |
27 |
28 |
28 |
30 |
29 |
29 |
30 |
31 |
31 |
32 |
32 |
34 |
33 |
33 |
34 |
35 |
35 |
36 |
36 |
38 |
37 |
37 |
38 |
39 |
39 |
40 |
40 |
42 |
41 |
41 |
42 |
43 |
43 |
44 |
44 |
46 |
45 |
45 |
46 |
47 |
47 |
48 |
物理端口=以太网2/2
通过show system internal ethpm info interface Eth2/2验证VQI和LDI |包括VQI
测试说明中的拥塞端口为2/1,但列出的VQI是e2/2。差异的原因是出口缓冲区由端口组共享,该端口组是F2/F2e模块的4个端口组。端口1-4、5-8等是每个端口组的一部分。如果端口组中的任何单个端口在出口方向出现拥塞,则可能在入口端口上造成背压,导致输入丢弃。
其它命令
如果您仍注意到输入丢弃,请多次运行以下命令:
- show interface |在Mbps|以太网中
- show hardware internal statistics pktflow dropped
- show hardware internal statistics pktflow dropped congestion
- show hard internal statistics pktflow all
- show hardware internal error
- show hardware internal statistics device qengine
- show hard internal mac port 38 qos config
- show hard internal statis device mac all port 38
- 连接模块1
- show hardware internal qengine voq-status
- show hardware internal qengine vqi-map
F2e信息
在F2e上,有一个硬件内部错误计数器,它指向具有拥塞出口接口的端口组/asic中第一个端口的VQI。
show hardware internal errors mod <x>
使用此命令可检查模块是否检测到拥塞。
N7K2# show hardware internal errors mod 1
|------------------------------------------------------------------------|
| Device:Clipper XBAR Role:QUE Mod: 1 |
| Last cleared @ Wed Jul 10 14:51:56 2013
| Device Statistics Category :: CONGESTION
|------------------------------------------------------------------------|
Instance:1
ID Name Value Ports
-- ---- ----- -----
16227 Num of times congestion detected on VQI 48 0000000000001296 5-8 -
Instance:2
ID Name Value Ports
-- ---- ----- -----
16227 Num of times congestion detected on VQI 48 0000000000000590 9-12 -
Instance:3
ID Name Value Ports
-- ---- ----- -----
16227 Num of times congestion detected on VQI 48 0000000000001213 13-16 -
show hardware internal qengine vqi-map
使用此命令将VQI映射到物理接口。本示例使用上一个示例中的VQI 48。查看插槽编号和LDI编号以确定出口接口。该模块是基于零的,并且映射函数可用于确定LDI。
module-1# show hardware internal qengine vqi-map
VQI SUP SLOT LDI EQI FPOE NUM XBAR IN ASIC ASIC SV FEA_
NUM VQI NUM NUM NUM BASE DLS MASK ORD TYPE IDX ID TURE
---- --- ---- --- --- ---- --- ----- --- ---- ---- -- ----
--snip
48 no 0 12 0 3 1 0x155 0 CLP 3 0 0x1
--snip
Module Number = SLOT NUM + 1 (zero-based)
Module Number = 0 + 1 = 1
Physical Port = Eth 1/14 (check the LDI to physical port mapping table)
Validate VQI and LDI via "show system internal ethpm info interface Eth1/14 | include VQI"
尽管VQI 48映射到Eth1/13,但请注意,端口组/asic中第一个端口上的拥塞会报告。由于一个端口组/asic中有四个端口,因此请使用next命令显示该端口组/asic中发现拥塞的实际接口。
show hardware queuing drops egress module <x>(仅适用于F2e)
使用此命令可显示实际出口接口,该接口在VQI 48的上一个示例中的端口组/asic上看到拥塞。
N7K2# show hardware queuing drops egress module 1
VQ Drops
--------------------------------------------------------------------------------
| Output | VQ Drops | VQ Congestion | Src | Src | Input |
| Interface | | | Mod | Inst | Interface |
--------------------------------------------------------------------------------
| Eth1/14 | 0000000000000000 | 0000000000001296 | 1 | 1 | Eth1/5-8 |
| Eth1/14 | 0000000000000000 | 0000000000000590 | 1 | 2 | Eth1/9-12 |
| Eth1/14 | 0000000000000000 | 0000000000001213 | 1 | 3 | Eth1/13-16 |
| Eth1/14 | 0000000000000000 | 0000000000000536 | 2 | 1 | Eth2/5-8 |
| Eth1/14 | 0000000000000000 | 0000000000000009 | 2 | 2 | Eth2/9-12 |
| Eth1/14 | 0000000000000000 | 0000000000000262 | 2 | 3 | Eth2/13-16 |
--------------------------------------------------------------------------------