簡介
本文檔介紹用於正確向TAC報告高CPU/QFP問題的常規故障排除,以加快案例解決速度。
必要條件
需求
思科建議您瞭解以下主題的基本知識:
- 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%;一分鐘:0%;五分鐘:0%」這行中,您需要關注「五秒」字串之後的第一個值。在此例中,90%表示整體CPU使用率,而在此例中,斜線0右邊的數字表示中斷造成的CPU使用率。這兩個數字之間的差異代表因進程而導致的總的CPU使用率。在這種情況下,CDP協定會佔用大部分CPU(控制平面)資源。
控制層面-核心(CPU)
由於Cisco IOS-XE具有基於Linux的核心,有時您會發現在核心之上運行的任何進程出現問題,您可以使用show processes CPU平台進行排序,以驗證是否有任何進程導致問題(請關注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命令中,重點關注processing: Load for the 5seconds列,因為這提供了最新的整體QFP使用情況。有些裝置還會顯示Crypto/IO模組的用法,重點是Idle,越接近100%,越好。
已看到的潛在日誌
預設情況下,系統不會生成顯示CPU使用率較高的IOSd日誌,CPU使用率是0,這是Cisco IOS-XE系統上的第一個CPU。
必須先配置此命令,才能在第一個核心上生成系統日誌。
必須根據CPU閾值通知: process cpu threshold type {total | 程序 | 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或遙測測量。
在某些情況下,當其他核心的使用率達到高時,您會看到像這樣的資源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 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
Referencing CPU on an Cisco IOS-XE router is referenced the CPU responsible for the administrative/control plane operations of the device.(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使用率過高進行故障排除
注意:命令有時會因平台和版本而異。在某些情況下,尋找特定的平台檔案。