简介
本文档介绍用于正确向TAC报告高CPU/QFP问题的常规故障排除,以加快案例解决速度。
先决条件
要求
Cisco 建议您具有以下主题的基础知识:
- Cisco IOS®-XE数据包转发架构基础知识。
- 基本经验数据包跟踪功能。
使用的组件
本文档不限于特定的软件和硬件版本。它适用于任何具有物理/虚拟化QFP的路由Cisco IOS-XE®平台,如ASR1000、ISR4000、ISR1000、Cat8000或Cat8000v。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
本文档概述了TAC在首次联系时针对高CPU/QFP问题进行初步分类时所需的命令,以获得良好的TAC体验。
此外,本文档还包含故障排除提示,以识别高中央处理器(CPU)或高量子流处理器(QFP)利用率问题,以便您在打开TAC案例之前找到解决方案。
本文档不详细解释任何故障排除过程。如果可用,请参阅深入的故障排除指南中的更多内容。
在本文档末尾,有用于教育目的的方框图作为组件的直观表示。
高组件(内存、TCAM、CPU、QFP) — 利用率通常表示以下任一情况:
- 设备上发生问题(即进程未按预期运行,可能存在软件问题)或网络环境中发生问题(即突发流量、环路)
- 达到设备的硬件限制(即设备上运行的流量/功能过多)
确定组件利用率高的根本原因对于确定解决问题的正确行动方针至关重要。
QFP/CPU使用率较高的故障症状
您可以通过监控工具或以下命令验证是否存在高CPU或QFP情况:
控制平面(CPU)- IOSd
show process cpu sorted
iosxe_router#show process cpu sorted
CPU utilization for five seconds: 90%/0%; one minute: 0%; five minutes: 0%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
395 78769 1242162 63 89.07% 88.04% 89.02% 0 CDP Protocol
1 8 88 90 0.00% 0.00% 0.00% 0 Chunk Manager
--- snip ---
从“CPU使用率达五秒:90%/0%;one minute:0%;five minutes:0%”,您需要关注“五秒”字符串后的第一个值。在本例中,90%表示整体CPU利用率,而在本例中,斜杠–0右边的数字表示由于中断导致的CPU利用率。这两个数字之间的差异表示进程导致的总的CPU利用率。在这种情况下,CDP协议会占用大部分CPU(控制平面)资源。
控制平面 — 内核(CPU)
由于Cisco IOS-XE具有基于Linux的内核,有时您会发现在其上面运行的任何进程出现问题,因此您可以使用show processes CPU platform sorted来验证是否有任何进程导致问题(请聚焦5sec列)来显示底层操作系统的进程。
iosxe_router#show process cpu platform sorted
-- depending on the architecture, there can be multiple cores, deleting for brevity --
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
18009 18001 323% 325% 328% R 266740 ucode_pkt_PPE0
11168 11160 1% 1% 1% S 914556 linux_iosd-imag
96 2 1% 0% 0% S 0 ksmd
--- snip ---
注意:具有虚拟QFP的路由器具有ucode_pkt_PPE0进程,该进程是模拟数据平面的软件进程。因此,可以从导致CPU使用率的进程列表中忽略该进程。
数据平面(QFP)
QFP是芯片上的系统,负责转发所有数据包。有关更多信息,请参阅以下章节:了解IOS-XE路由器上的高QFP。
iosxe_router #show platform hardware qfp active datapath utilization
CPP 0: Subdev 0 5 secs 1 min 5 min 60 min
--- snip ---
(bps) 21992 13648 13736 13720
Processing: Load (pct) 0 0 0 0
Crypto/IO
RX: Load (pct) 0 0 0 0
TX: Load (pct) 1 1 1 0
Idle (pct) 99 99 99 99
在show platform hardware qfp active data path utilization命令中,重点处理以下内容:加载5秒列,因为它提供了最近的整体QFP使用情况。有些设备还会显示Crypto/IO模块的使用情况,重点是Idle,越接近100%越好。
发现的可能日志
默认情况下,系统不会生成显示使用CPU编号0(Cisco IOS-XE系统上的第一个CPU)的IOSd上的CPU使用率较高的日志。
必须先配置此命令,以便在第一个核心上生成syslog。
此命令必须按照CPU阈值通知中描述的格式编写:process cpu threshold type {total |进程 |中断}上升百分比间隔秒[下降百分比间隔秒]
这样,我们就可以看到此类通知:
%SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 91%/2%, Top 3 processes(Pid/Util):
另一种捕获高使用率的方法是通过SNMP或遥测测量。
在某些情况下,当其他内核达到高使用率时,您会看到如下资源LIMIT警报:
PLATFORM_INFRA-5-IOS_INTR_OVER_LIMIT:
对于数据平面,我们会在日志中看到此类型的QFP警报,通常表示超出阈值负载:
MCPRP-QFP-ALERT: Slot: 0, QFP:0, Load 93% exceeds the setting threshold(80%).
TAC初始分类所需信息
- 观察到CPU使用率较高时,这些命令的输出:
- show clock
- show version
- show running
- show process cpu sorted
- show process cpu history
- 显示平台资源
- show platform hardware qfp active datapath utilization summary
- show logging
- 网络拓扑.
- CPU/QFP利用率历史记录图。
- 详细提供其他信息,例如最近网络或配置更改、预期流量速率/流量。
如果CPU未固定为100%,请包括show tech输出。这对TAC非常有帮助,您可以从TAC开发的帮助您更快找到问题的自动化中获益。
注意:出现问题时,必须排除高CPU使用情况的故障,因为设备不存储任何有关进程运行时间的历史数据。
注意:确保运行的是受支持的版本。查找该版本的销售终止和生命周期终止文档。如果需要,请移至当前软件维护版本下的版本。否则,TAC在故障排除和解决方案选项方面会受到限制。
了解高CPU/QFP使用率
通常,如果CPU/QFP运行率高于80%,则认为其运行率较高。
Cisco IOS-XE路由器可与控制平面(CPU)或数据平面(QFP)上的高利用率相关联。
注意:理想情况下,必须根据设备随时间变化的典型使用模式来评估高CPU/QFP利用率。例如,如果设备通常以10%的CPU使用率运行,但突然跳至40%,这可能表明该设备的CPU使用率较高。另一方面,如果CPU使用率始终为80%的设备处于正常运行水平,则未必是问题。具有CPU图形的监控系统可帮助收集和分析此数据,从而为每个设备建立基线。
常规故障排除步骤
- 确定问题是控制平面(CPU)还是数据平面(QFP)。
- 通过特定命令识别违规过程。
- 根据进程名称,对该进程执行Web搜索:
- 侧重于将流程与已知功能/配置相匹配。
- 检查是否存在任何与进程名称和行为匹配的软件缺陷。如果有,请实施变通方法或软件升级到固定版本。
- 借助CPU/QFP图表,确定CPU/QFP开始增加其使用率的确切时间。如果它与最近的更改相匹配,请恢复到初始配置/软件版本并检查结果。
- 如果Web搜索不提供有用的结果,或者您认为功能出现了错误,请通过以下信息打开TAC支持请求:
- show tech
- 收集的命令(请查看TAC需要的信息,以进行初始分类部分)。
- 尝试根据特定配置更改匹配问题开始的时间,并在打开TAC支持请求时包括此信息。
- 如果数据平面被确定为问题:提供流经设备的网络拓扑、预期用户数和典型流量速率。
- 如果可用,请提供CPU/QFP使用历史记录图表。
了解Cisco IOS-XE路由器上的高CPU
Cisco IOS-XE路由器上的CPU是指负责设备管理/控制平面操作的CPU。设备上运行着许多进程,所有进程都在基于Linux的内核上运行。其中每个进程都在通用CPU中运行。
当存在高CPU条件时,通常指示以下情况:
- 一个或多个进程必须完成高强度的任务。
- 一个或多个进程未按预期运行。
- 控制平面接收和处理数据平面发送的数据包。
某些平台具有多个通用CPU,它们遵循以下规则:
- 如果Cisco IOS-XE路由器是模块化的(即接受多个卡,例如路由处理器、嵌入式服务处理器、SPA接口处理器),则有多个CPU可用于控制平面操作,并且每个卡都有一个通用CPU。
- 如果Cisco IOS-XE路由器是嵌入式路由器,并且仅接受服务模块或接口卡,则路由器具有单个通用CPU(虚拟或物理),该通用CPU被视为位于路由处理器中(如show platform resources输出所示)。
在Cisco IOSXE设备上,我们通常拥有数据平面和控制平面CPU专用内核。
通常,如果CPU 0(第一个CPU)绑定到IOSd(IOS守护程序),则CPU专用核心与控制平面相关。其他CPU可以是控制平面和数据平面CPU的混合。
对于ASR 1000(通常为模块化),命令输出(如show platform resources和show platform software status control-processor brief)显示控制平面(RP)和数据平面(ESP)CPU的使用情况。
控制平面CPU专用于控制协议处理,例如处理BGP协议、STP协议、CDP、SSH等。控制平面CPU处理发往路由器自身的数据包,以便对其进行处理。
数据平面通常是指路由器不在路由处理器(RP)中消耗的传输数据包,而是在数据包处理器量子流处理器(QFP)组件中处理的数据平面处理数据包。这些数据包在QFP中进行处理,在该处,查询恰好将传输数据包发送到其预期目的地。
了解Cisco IOS-XE路由器上的高QFP
量子流处理器(QFP)是片上系统(SoC),负责设备中的所有数据包转发操作。
QFP运行一个名为microcode的专用软件。此微码负责根据输入/输出接口配置对通过设备的所有数据包执行并应用功能。它还通过不同的进程与系统的其余部分交互。
当存在高QFP条件时,通常指示以下情况:
- QFP处理过多的网络流量(每秒数据包数)。
- QFP必须处理高强度特征。
- 每秒数据包数加上高密集功能对QFP利用率的影响更大。
- 微码处理方式有误。
为了更好地了解情况,TAC必须收集功能调用阵列(FIA)跟踪以进行进一步分析。有关这方面的信息,请参阅使用IOS-XE数据路径数据包跟踪功能进行故障排除
Cisco IOS-XE路由器(ISR4300/4200/4400/4600系列、Cat8200/8300/8500、CSR1000v、CAT8000v)上的高CPU/QFP
以下是必须在发出时收集的基本命令(可以实施EEM逻辑以匹配日志通知并获取输出):
router_non_modular#show platform resources
**State Acronym: H - Healthy, W - Warning, C - Critical
Resource Usage Max Warning Critical State
----------------------------------------------------------------------------------------------------
RP0 (ok, active) H
Control Processor 10.64% 100% 80% 90% H
DRAM 2143MB(54%) 3913MB 88% 93% H
bootflash 2993MB(97%) 3099MB 70% 90% C
ESP0(ok, active) H
QFP H
DRAM 52844KB(20%) 262144KB 85% 95% H
IRAM 207KB(10%) 2048KB 85% 95% H
CPU Utilization 0.00% 100% 90% 95% H
Router#show platform software status control-processor brief
Load Average
Slot Status 1-Min 5-Min 15-Min
RP0 Healthy 1.75 1.25 1.14
Memory (kB)
Slot Status Total Used (Pct) Free (Pct) Committed (Pct)
RP0 Healthy 4003008 2302524 (58%) 1700484 (42%) 3043872 (76%)
CPU Utilization
Slot CPU User System Nice Idle IRQ SIRQ IOwait
RP0 0 5.60 10.80 0.00 75.00 0.00 0.10 8.50
1 8.10 11.81 0.00 66.66 0.00 0.20 13.21
2 4.69 9.49 0.00 80.81 0.00 0.19 4.79
3 4.80 10.20 0.00 79.30 0.00 0.10 5.60
4 3.70 3.20 0.00 92.90 0.00 0.00 0.20
5 1.09 2.99 0.00 95.00 0.00 0.09 0.79
6 20.00 33.10 0.00 46.90 0.00 0.00 0.00
7 0.00 0.00 0.00 100.00 0.00 0.00 0.00
Router#
模块化Cisco IOS-XE路由器(ASR1k系列)上的高CPU
模块化Cisco IOS-XE路由器的CPU使用率高时,路由处理器(RP)卡、嵌入式服务处理器(ESP)或SPA接口处理器(SIP)卡的CPU使用率可能较高。以下命令有助于了解高CPU状态是否与设备中的其他卡相关:
ios_xe_modular_router#show platform resources
**State Acronym: H - Healthy, W - Warning, C - Critical
Resource Usage Max Warning Critical State
----------------------------------------------------------------------------------------------------
RP0 (ok, active) H
Control Processor 11.62% 100% 90% 95% H
DRAM 1730MB(45%) 3783MB 90% 95% H
ESP0(ok, active) H
Control Processor 19.59% 100% 90% 95% H
DRAM 616MB(65%) 946MB 90% 95% H
QFP H
TCAM 8cells(0%) 65536cells 45% 55% H
DRAM 79212KB(30%) 262144KB 80% 90% H
IRAM 9329KB(7%) 131072KB 80% 90% H
SIP0 H
Control Processor 2.30% 100% 90% 95% H
DRAM 280MB(60%) 460MB 90% 95% H
*根据Cisco IOS版本,QFP可以包含处理器使用情况,否则您需要收集show platform hardware qfp datapath utilization
有关ASR1k的良好参考指南,请参阅排除ASR1000系列路由器上的高CPU故障
注意:命令有时因平台和版本而异。在某些情况下,查找特定平台文档。