此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍Cisco Nexus 7000 F248系列(F2/F2e)线卡的输入丢弃的原因和解决方案。输入丢弃表示由于拥塞而在输入队列中丢弃的数据包数。此数字包括由尾部丢弃和加权随机早期检测(WRED)引起的丢包。
F2线卡在入口而不是出口上对数据包进行队列,并在所有入口接口上实施虚拟输出队列(VOQ),以便拥塞的出口端口不会影响流向其他出口端口的流量。VOQ在系统中的广泛使用有助于确保每个出口的最大吞吐量。一个出口端口上的拥塞不会影响发往其他出口接口的流量,这可避免线路头(HOL)阻塞,否则会导致拥塞扩散。
VOQ还使用贷记和未贷记流量的概念。单播流量分类为贷记流量;广播、组播和未知单播流量被分类为未计入流量。未计入的流量不使用VOQ,并且流量在出口而不是入口处排队。如果入口端口没有信用将流量发送到出口端口,入口端口会缓冲,直到获得信用为止。由于入口端口缓冲区不深,因此可能会发生输入丢弃。
以下是导致输入丢弃的常见原因:
注意:{下一代I/O模块(如F2E、F3和M3)不易受SPAN目标端口超订用场景的影响,这会导致入口端口上的丢弃和HOLB。SPAN的准则和限制中也注意
本部分提供的信息可用于对配置进行故障排除。
注意:使用命令查找工具(仅限注册用户)可获取有关本部分所使用命令的详细信息。
命令输出解释程序工具(仅限注册用户)支持某些 show 命令。使用输出解释器工具来查看 show 命令输出的分析。
在这些示例中,Ethernet 2/1(Eth2/1)连接了一台主机,该主机接收两个1Gbps流。Eth2/1以1G运行。两个流在Eth2/5和Eth2/9上进入。
使用此命令检查接口的速度。如果入口接口以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
多次运行此命令,以确定congestion_drop_bytes的值是否增加;x是入口端口的模块编号。
多次运行以下命令以识别虚拟队列索引(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等是每个端口组的一部分。如果端口组中的任何单个端口在出口方向出现拥塞,则可能在入口端口上造成背压,导致输入丢弃。
如果您仍注意到输入丢弃,请多次运行以下命令:
在F2e上,有一个硬件内部错误计数器,它指向具有拥塞出口接口的端口组/asic中第一个端口的VQI。
使用此命令可检查模块是否检测到拥塞。
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 -
使用此命令将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中发现拥塞的实际接口。
使用此命令可显示实际出口接口,该接口在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 |
--------------------------------------------------------------------------------