本文档说明如何排除由于HyBridge输入进程导致的路由器CPU使用率过高的故障。ATM接口可支持大量永久虚电路(PVC),这些永久虚电路(PVC)配置为使用请求注解(RFC)1483桥接格式协议数据单元(PDU),并采用标准Cisco IOS®桥接和集成路由和桥接(IRB)。 此方法严重依赖广播来连接远程用户。随着远程用户和永久虚电路数量的增加,这些用户之间的广播数量也在增加。在某些情况下,这些广播会在路由器上产生高CPU利用率。
本文档没有任何特定的要求。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
TRFC 1483指定透明网桥(包括配置为桥接的思科路由器)必须能够泛洪、转发和过滤桥接帧。泛洪是将帧复制到所有可能的适当目的地的过程。当ATM网桥将帧显式复制到每个虚电路(VC)或使用点对多点VC时,ATM网桥会泛洪帧。
使用标准Cisco IOS桥接时,地址解析协议(ARP)、广播、组播和生成树数据包等帧必须经过此泛洪过程。Cisco IOS桥接逻辑处理每个此类数据包:
通过在网桥组中配置的接口和子接口列表运行。
运行在网桥组成员接口上配置的VC列表。
将帧复制到每条虚电路。
处理复制的Cisco IOS软件例程需要在循环中运行,以在每条PVC上复制数据包。如果路由器支持大量桥接格式的PVC,则复制例程会运行一段较长的时间,从而提高CPU。show process cpu命令的捕获显示HyBridge输入的大“5秒”值,该输入负责转发使用数据包转发的进程交换方法的数据包。Cisco IOS需要处理交换数据包,例如生成树网桥协议数据单元(BPDU)、广播和组播,这些数据包不能进行组播快速交换。由于每次调用只处理有限数量的数据包,进程交换会消耗大量CPU时间。
当单个接口支持许多VC时,遍历VC列表会压垮CPU。Cisco Bug ID CSCdr11146解决了此问题。当桥接逻辑在循环中运行以复制广播时,它会间歇性地放弃CPU。放弃CPU也称为暂停CPU。
注意:在同一网桥组中配置许多子接口也会压垮CPU。
如果桥接的PVC导致路由器的CPU使用率较高,则首先需要查找的是接口上的大量广播:
ATM_Router# show interface atm1/0 ATM1/0 is up, line protocol is up Hardware is ENHANCED ATM PA MTU 4470 bytes, sub MTU 4470, BW 44209 Kbit, DLY 190 usec, reliability 0/255, txload 1/255, rxload 1/255 Encapsulation ATM, loopback not set Keepalive not supported Encapsulation(s): AAL5 4096 maximum active VCs, 0 current VCCs VC idle disconnect time: 300 seconds 77103 carrier transitions Last input 01:06:21, output 01:06:21, output hang never Last clearing of "show interface" counters never Input queue: 0/75/0/702097 (size/max/drops/flushes); Total output drops: 12201965 Queueing strategy: Per VC Queueing 5 minute input rate 0 bits/sec, 0 packets/sec 5 minute output rate 0 bits/sec, 0 packets/sec 59193134 packets input, 3597838975 bytes, 1427069 no buffer Received 463236 broadcasts, 0 runts, 0 giants, 0 throttles 46047 input errors, 46047 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort 91435145 packets output, 2693542747 bytes, 0 underruns 0 output errors, 0 collisions, 4 interface resets 0 output buffer failures, 0 output buffers swapped out
作为副作用,您可以看到接口上出现大量丢包。在这种情况下,问题可能出在路由器响应缓慢或路由器完全无法访问的任何地方。如果关闭接口或断开ATM接口的电缆,应将路由器重新打开。
如果广播流量突发(仅导致CPU峰值短时间),则如果更改接口上的输入保持队列以适应突发,可以缓解此问题。默认保持队列大小为75个数据包,可以使用hold-queue <queue length> in|out命令进行更改。通常,保持队列的大小不能增加到150以上,因为这会导致CPU上的进程级负载增加。
如果遇到HyBridge输入导致CPU使用率较高的问题,请在联系思科技术支持中心(TAC)时捕获此输出。 要捕获此输出,请使用以下命令:
show process cpu — 如果您注意到CPU使用率较高,请使用show process CPU命令来查明哪个进程出现故障。请参阅排除Cisco路由器上CPU使用率过高的故障。
show stacks {process ID} — 您还可以使用此命令查看哪些进程运行正常并查找潜在问题。将此命令的输出粘贴到输出解释程序工具(仅注册客户)。 解码进程后,您可以使用软件Bug工具包搜索可能的Bug。
注意:您需要注册CCO帐户并登录才能使用这两种工具。
show bridge verbose — 使用此show命令可确定将多少个子接口放入同一网桥组中,并查看接口是否不堪重负。
router#show process cpu CPU utilization for five seconds: 100%/26%; one minute: 94%; five minutes: 56% PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process 1 44 38169 1 0.00% 0.00% 0.00% 0 Load Meter 2 288 733 392 0.00% 0.00% 0.00% 0 PPP auth 3 44948 19510 2303 0.00% 0.05% 0.03% 0 Check heaps 4 4 1 4000 0.00% 0.00% 0.00% 0 Chunk Manager 5 2500 6229 401 0.00% 0.00% 0.00% 0 Pool Manager [output omitted] 86 4 1 4000 0.00% 0.00% 0.00% 0 CCSWVOFR 87 3390588 1347552 2516 72.72% 69.79% 41.31% 0 HyBridge Input 88 172 210559 0 0.00% 0.00% 0.00% 0 Tbridge Monitor 89 1139592 189881 6001 0.39% 0.42% 0.43% 0 SpanningTree router#show stacks 87 Process 87: HyBridge Input Process Stack segment 0x61D15C5C - 0x61D18B3C FP: 0x61D18A18, RA: 0x60332608 FP: 0x61D18A58, RA: 0x608C5400 FP: 0x61D18B00, RA: 0x6031A6D4 FP: 0x61D18B18, RA: 0x6031A6C0 router#show bridge verbose Total of 300 station blocks, 299 free Codes: P - permanent, S - self BG Hash Address Action Interface VC Age RX count TX count 1 8C/0 0000.0cd5.f07c forward ATM4/0/0.1 9 0 1857 0 Flood ports (BG 1) RX count TX count ATM4/0/0.1 0 0
此外,关闭网桥组虚拟接口(BVI),并使用show process cpu命令的几次输出捕获来监控CPU利用率。
思科建议您实施以下变通方法,作为标准桥接导致的CPU使用率较高的解决方案:
实施Cisco IOS x数字用户线路网桥支持功能,该功能将路由器配置为通过用户策略进行智能网桥泛洪。选择性地阻止ARP、广播、组播和生成树BPDU。
分隔多个多点接口上的VC,每个接口使用不同的IP网络。
将IP ARP和桥接表条目的老化计时器配置为相同的值。否则,您会看到链路中不必要的流量泛洪。默认ARP超时为四小时。默认网桥老化时间为10分钟。对于空闲了10分钟的远程用户,路由器仅清除用户的网桥表条目并保留ARP表条目。当路由器需要向远程用户发送下行流量时,它会检查ARP表并找到指向MAC地址的有效条目。当路由器检查网桥表中的此MAC地址并找不到它时,路由器会将流量从网桥组中的每条虚电路泛洪出去。使用这些命令设置ARP和网桥表老化时间。
router(config)#bridge 1 aging-time ? <10-1000000> Seconds router(config)#interface bvi1 router(config-if)#arp timeout ? <0-2147483> Seconds
在头端ATM接口上,将标准桥接和IRB替换为路由桥接封装(RBE)或桥接式PVC。RBE支持思科快速转发(CEF),并仅通过路由决策而非桥接决策运行IP数据包,因此提高了转发性能。在12.1(1)T系列中,数据包可以通过软件交换。如果是,您会看到以下错误消息:
%FIB-4-PUNTINTF: CEF punting packets switched to ATM1/0.100 to next slower path %FIB-4-PUNTINTF: CEF punting packets switched to ATM1/0.101 to next slower path
问题记录在CSCdr37618中,解决方法是升级到12.2 mainline。有关详细信息,请参阅GSR和7500系列中的ATM接口上的路由桥接封装基线架构和配置桥接式PVC,以了解GSR和7500系列中的ATM接口上的路由桥接封装基线架构和配置桥接式PVC。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
05-Jun-2005 |
初始版本 |