소개
이 문서에서는 더 신속한 케이스 해결을 위해 TAC에 높은 CPU/QFP 문제를 적절하게 보고하는 일반적인 트러블슈팅에 대해 설명합니다.
사전 요구 사항
요구 사항
Cisco에서는 다음 항목에 대한 기본 지식을 갖춘 것을 권장합니다.
- Cisco IOS®-XE 패킷 포워딩 아키텍처에 대한 기본 지식
- 패킷 추적 기능의 기본 환경
사용되는 구성 요소
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다. ASR1000, ISR4000, ISR1000, Cat8000 또는 Cat8000v와 같은 물리적/가상 QFP가 포함된 모든 라우팅 Cisco IOS-XE® 플랫폼에 적용됩니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
배경 정보
이 문서에서는 첫 번째 연락처로부터 우수한 TAC 경험을 제공하기 위해 TAC에서 높은 CPU/QFP 문제의 초기 분류에 필요한 명령을 간략하게 설명합니다.
또한 이 문서에는 TAC 케이스를 열기 전에 솔루션을 찾을 수 있도록 높은 CPU(Central Processing Unit) 또는 높은 QFP(Quantum Flow Processor) 활용 문제를 식별하기 위한 문제 해결 팁이 포함되어 있습니다.
이 문서의 목적은 트러블슈팅 절차를 광범위하게 설명하는 것이 아닙니다. 사용 가능한 경우 자세한 트러블슈팅 가이드에 대한 참조가 제공됩니다.
이 문서의 끝에는 구성 요소를 시각적으로 표현하는 교육적인 목적으로 사용되는 블록 다이어그램이 있습니다.
높은 구성요소(메모리, TCAM, CPU, QFP) 사용률은 일반적으로 다음 중 하나를 나타냅니다.
- 디바이스에서 문제가 발생(프로세스가 예상대로 작동하지 않음, 잠재적 소프트웨어 문제) 또는 네트워크 환경(즉, punt 트래픽, 루프)
- 디바이스의 하드웨어 제한(디바이스에서 실행 중인 트래픽/기능이 너무 많음) 도달
문제를 해결하기 위한 적절한 행동 방침을 결정하기 위해서는 구성 요소 활용률이 높은 근본적인 원인을 파악하는 것이 중요합니다.
높은 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 ---
"5초 동안의 CPU 사용률: 90%/0%; 1분: 0%; 5분: 0%", "5초" 문자열 뒤의 첫 번째 값에 집중해야 합니다. 이 경우 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는 모든 패킷 포워딩을 담당하는 System on a Chip입니다. 추가 정보는 다음 섹션에서 확인할 수 있습니다. 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 명령에서 처리에 중점을 둡니다. 가장 최근의 전체 QFP 사용량을 제공하므로 5초 열에 대한 로드입니다. 일부 디바이스는 Crypto/IO 모듈의 사용량도 표시하며, 유휴 상태에 중점을 두므로 100%에 가까울수록 좋습니다.
발견된 잠재적 로그
기본적으로 IOSd에서 높은 CPU 사용률을 보여주는 로그는 시스템에 의해 생성되지 않으며, 이는 Cisco IOS-XE 시스템의 첫 번째 CPU인 CPU 번호 0을 사용합니다.
첫 번째 코어에서 syslog가 생성되려면 이 명령을 먼저 구성해야 합니다.
이 명령은 CPU 임계값 알림에 설명된 형식에 따라 작성해야 합니다. 프로세스 cpu 임계값 유형 {total | 프로세스 | interrupt} 상승 백분율 간격 초 [하강 백분율 간격 초]
그러면 다음과 같은 유형의 알림을 볼 수 있습니다.
%SYS-1-CPURISINGTHRESHOLD: Threshold: Total CPU Utilization(Total/Intr): 91%/2%, Top 3 processes(Pid/Util):
SNMP 또는 Telemetry 측정을 통해서도 높은 사용량을 확인할 수 있습니다.
다른 코어가 사용량이 많을 경우 다음과 같은 리소스 제한 알림이 표시될 수 있습니다.
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 version
- 실행 중 표시
- 정렬된 프로세스 cpu 표시
- 프로세스 cpu 기록 표시
- 플랫폼 리소스 표시
- show platform hardware qfp active datapath utilization summary
- 로깅 표시
- 네트워크 토폴로지.
- CPU/QFP 사용률 기록 그래프
- 최근 네트워크 또는 컨피그레이션 변경, 예상되는 트래픽 속도/흐름과 같은 추가 정보를 자세히 제공합니다.
CPU가 100%로 일정하게 고정되지 않은 경우 show tech 출력을 포함합니다. 이는 TAC에 큰 도움이 되며, TAC에서 개발한 자동화를 통해 문제를 더 빨리 찾을 수 있습니다.
참고: 디바이스가 프로세스 실행 시간에 대한 기록 데이터를 저장하지 않으므로 문제가 있는 동안 CPU가 높은 상태는 트러블슈팅해야 합니다.
참고: 지원되는 버전을 실행 중인지 확인하십시오. 릴리스의 End-of-Sale 및 End-of-Life 문서를 찾습니다. 필요한 경우 현재 소프트웨어 유지 관리 릴리스에 있는 버전으로 이동합니다. 그렇지 않으면 TAC에서 트러블슈팅 및 해결 옵션이 제한됩니다.
높은 CPU/QFP 사용량 이해
일반적으로 CPU/QFP가 80% 이상 실행되면 높은 속도로 실행되는 것으로 간주됩니다.
Cisco IOS-XE 라우터는 CPU(컨트롤 플레인) 또는 QFP(데이터 플레인)에서 높은 사용률과 연결될 수 있습니다.
참고: 이상적으로, 높은 CPU/QFP 사용률은 시간의 경과에 따른 디바이스의 일반적인 사용 패턴에 따라 평가되어야 합니다. 예를 들어, 디바이스가 일반적으로 CPU 사용량의 10%에서 작동하지만 갑자기 40%로 점프하는 경우, 이는 해당 디바이스의 CPU 사용량이 높음을 나타낼 수 있습니다. 반면, CPU 사용량의 80%로 일관성 있게 실행되는 디바이스는 일반적인 작동 수준이라면 문제가 되지 않습니다. CPU 그래프로 시스템을 모니터링하면 이 데이터를 수집하고 분석하여 각 디바이스의 기준을 설정할 수 있습니다.
일반 문제 해결 단계
- 문제가 CPU(컨트롤 플레인) 또는 QFP(데이터 플레인)인지 확인합니다.
- 특정 명령을 통해 손상된 프로세스를 식별합니다.
- 프로세스 이름을 기반으로 해당 프로세스에 대한 웹 검색을 수행합니다.
- 해당 프로세스를 알려진 기능/구성과 일치시키는 데 초점을 맞추십시오.
- 프로세스 이름 및 동작과 일치하는 소프트웨어 결함이 있는지 확인합니다. 필요한 경우 해결 방법 또는 Sw를 고정 릴리스로 업그레이드하십시오.
- CPU/QFP 그래프의 도움으로 CPU/QFP의 사용량이 증가하기 시작하는 정확한 시간을 식별합니다. 최근 변경 사항과 일치하는 경우 초기 컨피그레이션/소프트웨어 버전으로 되돌아가 결과를 확인합니다.
- 웹 검색에서 유용한 결과를 제공하지 않거나 기능이 잘못되었다고 판단되면 다음 정보로 TAC 케이스를 여십시오.
- show tech
- 수집된 명령(초기 분류 섹션에 대한 TAC에 필요한 정보 참조)
- 특정 컨피그레이션 변경으로 문제가 시작된 시간을 일치시키고 TAC 케이스를 열 때 이 정보를 포함시키십시오.
- 데이터 플레인이 문제로 식별되는 경우: 네트워크 토폴로지, 예상 사용자 수, 디바이스를 통과하는 일반적인 트래픽 속도를 제공합니다.
- 사용 가능한 경우 CPU/QFP 사용률 기록 그래프를 제공합니다.
Cisco IOS-XE 라우터의 높은 CPU 이해
Cisco IOS-XE 라우터의 CPU는 디바이스의 관리/컨트롤 플레인 작업을 담당하는 CPU를 가리킵니다. 디바이스에서 실행되는 많은 프로세스가 있으며, 이 모든 프로세스는 Linux 기반 커널에서 실행됩니다. 이러한 각 프로세스는 범용 CPU에서 실행됩니다.
높은 CPU 상태가 있을 경우 일반적으로 다음을 나타냅니다.
- 하나 이상의 프로세스가 고강도 작업을 완료해야 합니다.
- 하나 이상의 프로세스가 예상대로 작동하지 않습니다.
- 데이터 플레인에서 전송되는 패킷을 수신 및 처리하는 컨트롤 플레인.
일부 플랫폼에는 다음과 같은 규칙을 준수하는 여러 범용 CPU가 있습니다.
- Cisco IOS-XE 라우터가 모듈형인 경우(Route Processor, Embedded Service Processor, SPA Interface processor 등 여러 카드를 수용) 컨트롤 플레인 작업에 사용할 수 있는 CPU가 여러 개이며 각 카드마다 범용 CPU가 하나씩 있습니다.
- Cisco IOS-XE 라우터가 내장형 라우터이고 서비스 모듈 또는 인터페이스 카드만 사용할 수 있는 경우, 라우터에는 경로 프로세서에 있는 것으로 간주되는 단일 범용 CPU(가상 또는 물리적)가 있습니다(show platform resources 출력 참조).
Cisco IOSXE 디바이스에는 일반적으로 데이터 플레인 및 컨트롤 플레인 CPU 전용 코어가 있습니다.
일반적으로 CPU 0(첫 번째 CPU)이 IOSd(IOS 데몬)에 연결된 경우 CPU 전용 코어는 컨트롤 플레인과 관련됩니다. 다른 CPU는 컨트롤 플레인 CPU와 데이터 플레인 CPU를 혼합하여 사용할 수 있습니다.
일반적으로 모듈형인 ASR 1000의 경우 show platform resources 및 show platform software status control-processor brief와 같은 명령 출력이 RP(control plane) 및 ESP(data plane) CPU의 사용량을 보여줍니다.
컨트롤 플레인 CPU는 BGP 프로토콜, STP 프로토콜, CDP, SSH 처리 등의 프로토콜 처리를 제어하는 데 사용됩니다. 컨트롤 플레인 CPU는 처리를 위해 라우터 자체로 향하는 패킷을 처리합니다.
데이터 평면은 일반적으로 라우터가 RP(Routing Processor)에서 자체 사용하지 않는 전송 패킷을 말하며, 대신 데이터 평면은 패킷 프로세서인 QFP(Quantum Flow Processor) 구성 요소에서만 처리되는 패킷을 나타냅니다. 이러한 패킷은 QFP에서 처리되며, 조회를 통해 트랜짓 패킷을 원하는 목적지로 전송합니다.
Cisco IOS-XE 라우터의 높은 QFP 이해
QFP(Quantum Flow Processor)는 디바이스에서 모든 패킷 포워딩 작업을 담당하는 SoC(System on a Chip)입니다.
QFP는 마이크로코드라고 불리는 특별한 소프트웨어를 실행합니다. 이 마이크로코드는 입출력 인터페이스 컨피그레이션에 따라 디바이스를 통과하는 모든 패킷에 기능을 실행하고 적용하는 역할을 합니다. 또한 다른 프로세스를 통해 시스템의 나머지 부분과 상호 작용합니다.
높은 QFP 조건이 있을 경우 일반적으로 다음 사항을 나타냅니다.
- QFP가 너무 많은 네트워크 트래픽(초당 패킷)을 처리하고 있습니다.
- QFP는 고강도 기능을 처리해야 합니다.
- 초당 패킷 수 + 고집적 기능의 조합은 QFP 활용에 더 큰 영향을 미칩니다.
- 마이크로코드가 잘못된 방법으로 무언가를 처리하고 있습니다.
상황을 더 잘 이해하기 위해 TAC에서는 추가 분석을 위해 FIA(Feature Invocation Array) 추적을 수집해야 합니다. 이 내용은 Troubleshoot with the IOS-XE Datapath Packet Trace Feature에 설명되어 있습니다
Cisco IOS-XE 라우터의 높은 CPU/QFP(ISR4300/4200/4400/4600 Series, Cat8200/8300/8500, CSR1000v, CAT8000v)
다음은 발행 시 수집해야 하는 기본 명령입니다(로그 알림과 일치하고 출력을 가져오기 위해 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 라우터의 높은 CPU(ASR1k Series)
모듈형 Cisco IOS-XE 라우터의 CPU 사용량이 많으면 RP(Route Processor) 카드, ESP(Embedded Service Processor) 또는 SIP(SPA Interface Processor) 카드에서 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 사용률을 수집해야 합니다
ASR1k에 대한 올바른 참조 안내서는 ASR1000 Series 라우터의 높은 CPU 문제 해결에서 찾을 수 있습니다
참고: 명령은 플랫폼과 버전에 따라 다를 수 있습니다. 경우에 따라 특정 플랫폼 설명서를 찾아보십시오.