简介
本文档介绍用于向TAC正确报告高CPU/QFP问题的常规故障排除,以加快案例解决速度。
先决条件
要求
Cisco 建议您具有以下主题的基础知识:
- Cisco IOS®-XE数据包转发架构基础知识。
- 数据包跟踪功能的基本经验。
使用的组件
本文档不限于特定的软件和硬件版本。它适用于任何具有物理/虚拟化QFP的路由Cisco IOS-XE®平台,如ASR1000、ISR4000、ISR1000、Cat8000或Cat8000v。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
背景信息
本文档概述了TAC在首次联系时为获得良好的TAC体验而对CPU/QFP过高问题进行初始分类时所需的命令。
此外,本文档还包含故障排除提示以识别高中央处理器(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 utilization for five seconds: 90%/0%; one minute: 0%; five minutes: 0%”行中,您需要专注于“five seconds”字符串后面的第一个值。在本例中,90%表示总体CPU使用率,而在本例中,斜线0右侧的数字表示因中断而产生的CPU使用率。这两个数字之间的差异表示进程导致的总体CPU使用率。在这种情况下,CDP协议会占用大部分CPU(控制平面)资源。
控制平面-内核(CPU)
由于Cisco IOS-XE具有基于Linux的内核,因此有时您会在其上面运行的任何进程上发现问题,因此您可以使用已排序的show processes CPU平台来验证是否有任何进程导致问题(重点关注5秒列) 显示底层操作系统的进程。
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命令中,重点显示processing: Load for the 5seconds列,因为这提供了最新的整体QFP使用情况。有些设备还会显示Crypto/IO模块的使用情况,重点关注Idle,越接近100%,情况越好。
查看的潜在日志
默认情况下,系统不会生成显示IOSd上CPU使用率高的日志,IOSd使用CPU编号0,即Cisco IOS-XE系统上的第一个CPU。
必须先配置此命令,以便在第一个核心上生成系统日志。
必须根据CPU阈值通知:process cpu threshold type {total | process | interrupt} rising percentage interval seconds [falling percentage interval seconds]
这样,我们可以看到以下类型的通知:
%SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 91%/2%, Top 3 processes(Pid/Util):
另一种捕获高使用率的方法是通过SNMP或遥测测量。
在某些情况下,当其他内核遇到高使用率时,您会看到类似于此的资源限制警报:
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)。
- 通过特定命令识别违规进程。
- 根据进程名称,对该进程进行网络搜索:
- 重点将该流程与已知功能/配置相匹配。
- 检查是否存在任何与进程名称和行为匹配的软件缺陷。如果存在,请实施变通方法或软件升级到固定版本。
- 借助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(虚拟或物理)(如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运行一种特殊的软件,称为微码。此微代码负责根据输入/输出接口配置执行和应用功能到通过设备的所有数据包。它还通过不同的进程与系统的其余部分交互。
当存在高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使用率故障排除
注意:命令有时会因平台和版本而异。在某些情况下,请查找特定平台文档。