本文介绍如何消除不同进程所造成的 CPU 使用率过高。
在阅读本文之前,建议您阅读对 Cisco 路由器上的 CPU 使用率过高进行故障排除。
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
如果路由器必须生成ARP请求,那么地址解析协议(ARP)输入进程的CPU利用率很高。路由器对所有主机都使用 ARP,而不仅限于本地子网中的主机,而 ARP 请求是作为广播发送出去的,从而造成网络中每个主机中 CPU 使用率提高。相同IP地址的ARP请求被速率限制在每隔2秒请求1次,因此过量的ARP请求必须源自不同的IP地址。如果配置了 IP 路由并指向广播接口,则可能发生这种情况。最明显的示例是默认路由,例如:
ip route 0.0.0.0 0.0.0.0 Fastethernet0/0
在这种情况下,路由器将为不能通过更具体路由到达的每个IP地址生成ARP请求,实际上意味着路由器为互联网上的几乎每一个地址生成ARP请求。欲了解关于为静态路由配置下一跳地址的更多信息,请参见“为静态路由指定下一跳IP地址”。
或者通过本地连接的子网扫描的恶意的数据流可以导致过量的 ARP 请求。这样一个数据流表示ARP表中有大量不完整的ARP条目。由于将会触发ARP请求的流入IP数据包必须进行处理,排除这个问题实质上就是排除IP输入进程中的高CPU利用率问题。
在某种意义上,IPX输入进程和IP输入进程是相似的,即它们都要负责进程交换,唯一不同是IPX输入进程还要交换IPX信息包。排队进入其他IPX进程(例如IPX SAP,IPX RIP等等)以前,几乎所有IPX数据包都在进程层面,可通过IPX输入查看。与IP不同的是,IPX只支持一种中断交换模式,那就是默认启用的IPX快速交换。IPX 快速交换是使用 ipx route-cache 接口命令启用的。
如果在 IPX Input 进程中发现 CPU 使用率过高,请验证下列各项:
禁用了 IPX 快速交换。如果 IPX 快速交换已禁用,请使用 show ipx interface 命令。
对于某些 IPX 数据流,不可实施 IPX 快速交换:
IPX 广播 - 使用 show ipx traffic 命令检查路由器是否过载了 IPX 广播。
IPX 路由更新 - 如果在网络中有大量不稳定因素,则会增加路由更新处理。
注意:使用IPX EIGRP(增量)而不是IPX RIP来减少更新量,特别是在低速串行链路上(有关详细信息,请参阅通过慢速串行线路和SAP管理路由Novell IPX)。
注意:有关更多IPX相关文档,请参阅Novell IPX技术支持页。
当传输控制协议(TCP)计时器进程使用大量CPU资源时,这表明此处有许多TCP连接终点。在带有许多对等体的数据链路交换(DLSW)环境中,或者在许多TCP会话在路由器上同时开始的其他环境中,可能发生这种情况。
FIB控制计时器初始化并启动每个VLAN统计信息和全局统计信息的FIB统计信息收集计时器;初始化并启动FIB/ADJ请求/例外计时器;维护与FIB相关的注册表功能;并初始化BGP记帐计时器。初始化 EARL 后,这些进程就会启动。
TTY后台进程是通用的进程,由所有终端线路使用(控制台、辅助、异步等)。通常不应该对路由器的性能有任何影响,因为该程序的优先级低于需要由Cisco IOS软件预定的其他程序的优先级。
如果此进程的CPU使用率较高,请检查是否在“line con 0”下配置了“logging synchronous”。 可能的原因可能是Cisco Bug ID CSCed16920(仅限于注册客户)Cisco Bug ID或CSCdy01705(仅限于注册客户)。
“TAG Stats Background”进程会产生一定的 CPU 使用率,不会影响数据流转发。
TAG Stats Background 是低优先级进程。此进程收集标记的统计信息,将它们转发给 RP。它不是数据流数量功能,而是 MPLS/LDP 控制层面工作量的功能。这是正常行为,不会影响数据流转发。此问题记录在 Bug CSCdz32988(仅限于注册客户)中。
虚拟模板(vtemplate)必须复制用于每一个新的虚拟访问接口,无论新用户何时连接到路由器或接入服务器。如果用户数量大,在VTEMPLATE Backgr 进程中的CPU利用率可以非常高。通过配置虚拟模板的预克隆可以避免这个问题。有关更多信息,请参阅会话可扩展性增强。
如果进程或接口需要缓冲区,但没有缓冲区可用,则会运行 Net Background 进程。它根据请求从主池创建所需缓冲区。Net Background 还可管理每个进程所使用的内存以及清理所释放内存。此进程主要与接口相关联,并会占用大量 CPU 资源。CPU 使用率过高的症状是接口的节流、忽略、过载和重置次数增多。
IP Background过程涉及以下过程:每分钟定期老化ICMP重定向缓存;接口封装类型更改;将接口移至新的状态(UP和/或DOWN);更改接口的IP地址;新dxi映射到期;以及拨号计时器超时。
IP Background 进程根据接口状态修改路由表,同时 IP Background 进程假设收到链接状态更改消息即表示存在链接状态更改。它就通知所有路由协议检查受影响的接口。如果更多接口运行路由协议,IP Background 进程会导致更高的 CPU 使用率。
ARP Background 进程处理多个作业,可能占用较高的 CPU 使用率。
下面列出了一些示例作业:
因为接口 Up/Down 事件而造成的 ARP 刷新
通过 clear arp 命令清空 ARP 表
ARP 输入数据包
ARP 老化器
如果任何其他程序正在消耗大量的CPU资源,并且日志消息中没有任何问题的征兆,那么问题可能由Cisco IOS.软件中的Bug引起。使用Bug Toolkit (仅限于注册用户),进行特定程序的搜索,查看是否有任何Bug报告。
如果您在进行以上故障排除步骤之后还需要帮助,并开立一个Cisco TAC案例,请确保包括以下信息: |
---|
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
29-Sep-2008 |
初始版本 |