目录

简介

先决条件

要求

使用的组件

规则

背景信息

故障排除

引导进程中的 CPUHOG

OIR 时的 CPUHOG

尝试访问闪存设备时的 CPUHOG

“CEF LC Background”进程引起的 CPUHOG

路由器正常运行时的 CPUHOG

建立 TAC 服务请求时要收集的信息

相关信息

简介

本文档列出了产生 %SYS-3-CPUHOG 错误消息的原因，并说明了如何对它们进行故障排除。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档不限于特定的软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

背景信息

为减少失控进程的影响，Cisco IOS® 软件使用了一个进程监视器计时器，以允许调度程序定期轮询当前处于活动状态的进程。此功能与抢占功能不同。此功能一种故障安全机制，可确保系统不会因任何进程完全占用了 CPU 而变得无响应或完全锁定。

如果某个进程看上去已挂起（例如，如果它持续长时间运行），那么调度程序可以强制该进程终止。

每当调度程序允许一个进程在 CPU 上运行时，它都会为该进程启动一个监视器计时器。在预设时间段结束之后，如果该进程仍然运行，则监视器进程会生成中断，并通过一次“软件强制崩溃”而使路由器重新启动（堆栈跟踪显示出是某个监视器进程触发了崩溃）。

第一次监视器过期时，调度程序将显示一条警告消息，如下所示：

%SYS-3-CPUHOG: Task ran for 2148 msec (20/13), Process = IP Input, PC = 3199482

-Traceback= 314B5E6 319948A

此消息指示某个进程占用了 CPU。这里，该进程是“IP Input”进程。此消息通常在临时情况期间出现，例如，在路由器启动时或在流量很大的情况下进行在线热插拔 (OIR)。“%SYS-3-CPUHOG”消息不能在路由器正常运行期间出现。

如果在计划了某个进程运行之后路由器在中断级别处于忙状态，则对该进程运行持续时间的计算可能不准确。这是因为 CPUHOG 仅跟踪进程级别的任务。它不跟踪能够中断并获取 CPU 控制权的中断级别的任务。

在中断级别运行的典型进程是数据包交换。

故障排除

本部分说明如何在不同情况下针对 CPUHOG 消息进行故障排除。

引导进程中的 CPUHOG

在引导顺序中出现 CPUHOG 消息是十分常见的。错误信息本身意味着引导进程占用 CPU 的时间仅比系统希望占用的时间略长，然后向控制台输出发出消息以通知这一情况。在本例中，该进程为“Boot Load”，它指示出发生 CPUHOG 的位置：

System Bootstrap, Version 11.1(12)XA, EARLY DEPLOYMENT RELEASE SOFTWARE

(fc1)

Copyright (c) 1997 by cisco Systems, Inc.

C1600 processor with 16384 Kbytes of main memory

program load complete, entry point: 0x4018060, size: 0x108968

%SYS-3-CPUHOG: Task ran for 2040 msec (6/6), Process = Boot Load, PC =40B513A

-Traceback= 407EB6E 407F628 407D118 40180E0 40005B0 4015C3E 40152B2 4014ED4

40025B8 4003086 4015636 40021A8 400C616program load complete, entry point:

0x2005000, size: 0x4195b9

Self decompressing the image :

############################################################################

############################################################################

################################################################## [OK]

您可以安全地忽略此错误消息。在引导进程期间，引导加载器使用 CPU 2-4 秒，且不会将其释放。这在引导时不成为问题，因为此时 CPU 仅需要运行引导加载器。更新的引导 ROM 会抑制该特定消息的输出。

每当路由器加载较大的映像时，您也可能会在引导帮助程序映像中遇到 CPUHOG 消息，例如，在您使用 Cisco 1600 系列路由器时。这些路由器配置有 16 MB 以上的 DRAM。

此消息仅在加载映像时出现，并且对系统运行或加载进程没有影响。无论如何，这是表面问题，因为它对系统的正常运行没有影响。

OIR 时的 CPUHOG

OIR 时出现 CPUHOG 消息是十分常见的，因为路由器必须执行一组复杂而时间相对较长的任务。只要所插入的卡正常运行，就不必担心OIR期间发生CPUHOG消息。

尝试访问闪存设备时的 CPUHOG

当设备出现故障或没有响应时，当您尝试访问闪存设备(如闪存卡或闪存单内联内存模块(SIMM))时，可能会显示CPUHOG消息。如果该问题反复出现，请与您的 TAC 代表联系。

注意：如果您有运行集成Cisco IOS软件（本机模式）或混合模式的Catalyst 6500，并且在格式化MSFC(RP)bootflash时有CPUHOG消息，则可能是Cisco Bug ID CSCdw53175中提到的问题(仅注册客户)，在Cisco IOS软件版本12.1.11b、12.1(12c)E5或12.1(13)E及更高版本中解析。

“CEF LC Background”进程引起的 CPUHOG

在Cisco 12000系列互联网路由器上，转发信息库(FIB)保留在每个线路卡上，用于分组交换。由于 FIB 树的结构，短子网掩码（在 /1 和 /4 之间）的路由更改可能导致控制台日志中出现类似下面的消息：

SLOT 1: %SYS-3-CPUHOG: Task ran for 4024 msec (690/0),

process = CEF IPC Background, PC = 400B8908.

-Traceback= 400B8910 408FF588 408FF6F4 408FFE8C 400A404C 400A4038

当 Cisco IOS 软件中的某个进程运行时间超过 2000 毫秒（2 秒）时，将显示 CPUHOG 消息。在针对很短的子网掩码进行 Cisco Express Forwarding (CEF) 更新时，所需的处理时间可能会超过 2000 毫秒，从而可能触发这些消息。"CEF IPC背景"进程是控制添加和删除来自转发树的前缀的父进程。

另外，如果 CPU 长时间锁定，则板卡可能会因 Fabric Ping 失败而崩溃，或者 FIB 可能会因丢失的 IPC 通信超时而被禁用。如果您需要对这些问题进行故障排除，请参阅对 Cisco 12000 系列 Internet 路由器上的 Fabric Ping 超时和失败进行故障排除。

一般来说，使用短于 /7 的掩码进行路由更新是不正确的，或是有恶意的。Cisco 建议所有用户配置足够的路由过滤，以防止处理和传播此类更新。如果您需要配置路由过滤器方面的帮助，请与您的技术支持代表联系。

当您清除边界网关协议 (BGP) 或路由表时，也可能会因“CEF IPC Background”进程而触发 CPUHOG 消息。

路由器正常运行时的 CPUHOG

大多数情况下，这些错误消息是由 Cisco IOS 软件中的内部软件 Bug 引起的。

对此类错误消息进行故障排除的第一步是查找已知 Bug。您可以使用 Bug 工具包（仅限注册用户）来查找与错误匹配的 Bug。在 Bug Toolkit 页上，单击 Launch Bug Toolkit，然后选择 Search for Cisco IOS-related bugs。为了缩小搜索范围，您可以在编号1下选择Cisco IOS软件版本。在编号3下，您可以对“CPUHOG， <process>”执行关键字搜索，其中进程是相应的进程，如Virtual Exec或IP Input。

您可以升级到该版本系列中最新的 Cisco IOS 软件映像，以消除所有已修复的 CPUHOG Bug。

建立 TAC 服务请求时要收集的信息

如果您在执行上述故障排除步骤后仍需帮助，并希望使用 Cisco TAC 建立服务请求（仅限注册用户），请务必提供以下信息：

- 在建立服务请求之前执行的故障排除。

- show technical-support 的输出（如果可能，在启用模式下）。

- show log 输出或控制台捕获信息（如果可用）。

- 针对发生板卡崩溃的插槽，execute-on slot [slot #] show tech 的输出。

- crashinfo 文件（如果有且尚未包括在 show technical-support 输出中）。

请将收集到的数据以未压缩的纯文本格式 (.txt) 附加到服务请求中。 您可以使用 TAC 服务请求工具（仅限注册用户）来加载信息，将信息附加到服务请求中。 若无法访问服务请求工具，请将信息以电子邮件附件形式发送到 attach@cisco.com，并在邮件标题栏中输入服务请求编号。
注意：在收集上述信息之前，请勿手动重新加载或重新通电路由器，除非对Cisco 12000系列Internet路由器上的线卡崩溃进行故障排除，否则可能会丢失确定问题根本原因所需的重要信息。

相关信息

- Cisco 路由器产品支持页

- 对路由器问题进行故障排除

- 技术支持 - Cisco Systems