소개
이 문서에서는 4300 시리즈 제품군에서 ISR(Integrated Service Router)의 CPU(Central Process Unit) 사용량을 읽기 위한 지침을 제공합니다.
사전 요구 사항
요구 사항
다음 주제에 대한 지식을 보유하고 있으면 유용합니다.
사용되는 구성 요소
이 문서의 정보는 하드웨어 및 소프트웨어 버전을 기반으로 합니다.
- ISR4321/K9
- ISR4331/K9
- ISR4351/K9
- 03.16.01a.S // 15.5(3)S1a
- 03.16.04b.S // 15.5(3)S4b
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다.이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다.네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 이해해야 합니다.
아키텍처
Cisco ISR 4000 Series 플랫폼은 IOS가 여러 Linux 프로세스 중 하나로 실행되는 Linux 커널을 실행하는 분산 소프트웨어 아키텍처를 갖춘 IOS-XE를 실행합니다. IOS는 IOS-Daemon(IOSd)이라고 하는 데몬으로 실행됩니다.
IOSd의 CPU 사용량
IOSd에서 CPU 사용량을 모니터링하려면 show process cpu 명령을 실행합니다.
#show process cpu
CPU utilization for five seconds: 1%/0%; one minute: 1%; five minutes: 0%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 2 8 250 0.00% 0.00% 0.00% 0 Chunk Manager
2 5 18 277 0.07% 0.00% 0.00% 0 Load Meter
3 0 2 0 0.00% 0.00% 0.00% 0 DiagCard4/-1
4 0 1 0 0.00% 0.00% 0.00% 0 Retransmission o
5 0 1 0 0.00% 0.00% 0.00% 0 IPC ISSU Dispatc
출력에 CPU 사용량에 대한 두 개의 값이 표시되며, 첫 번째 값은 총 CPU 사용량이고, 두 번째 값은 IOSd로 전송된 인터럽트의 CPU 양입니다.

CPU의 총 양과 인터럽트의 CPU 양 간의 차이는 프로세스에서 사용하는 CPU 값입니다.지난 5초 동안 모든 프로세스 사용량을 확증하려면
- 프로세스의 CPU 소비 = 1% - 0% = 1% = 명령에 나열된 모든 프로세스 CPU 소비
상단에서 CPU를 가장 많이 사용하는 프로세스를 표시하려면 show process cpu sorted 명령을 실행합니다.
#show process cpu sorted
CPU utilization for five seconds: 1%/0%; one minute: 0%; five minutes: 0%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
64 103 10 10300 0.33% 0.02% 0.00% 0 Licensing Auto U
83 26 231 112 0.27% 0.00% 0.00% 0 PuntInject Keepa
235 555 48176 11 0.11% 0.09% 0.07% 0 Inline Power
1 2 8 250 0.00% 0.00% 0.00% 0 Chunk Manager
참고:모든 프로세스를 추가하면 부동 소수점 값이 될 수 있으며 IOSd는 결과를 다음 정수로 반올림합니다.
트래픽별 CPU 사용량
ISR4300 제품군 설계는 트래픽을 포워드하기 위해 QFP(QuantumFlow Processor)라는 요소를 통해 이루어집니다.
주의:QFP는 ASR1K에서 하나 또는 여러 개의 물리적 칩으로 발견되며, ISR4400에서는 ISR4300의 Cavium Octeon 공동 프로세서로 동일한 기능을 수행하며, 이 기능은 주 Intel CPU의 특정 코어에서 수행됩니다.ISR4300 제품군의 QFP는 패킷을 전달하는 소프트웨어의 일부라고 생각할 수 있습니다.
트래픽에서 소비한 CPU의 양을 확인하려면 show platform hardware qfp active datapath utilization 명령을 실행할 수 있습니다.
#show platform hardware qfp active datapath utilization
CPP 0: Subdev 0 5 secs 1 min 5 min 60 min
Input: Priority (pps) 0 0 0 0
(bps) 0 0 0 0
Non-Priority (pps) 3 2 2 1
(bps) 1448 992 992 568
Total (pps) 3 2 2 1
(bps) 1448 992 992 568
Output: Priority (pps) 0 0 0 0
(bps) 0 0 0 0
Non-Priority (pps) 3 2 2 1
(bps) 12216 8024 8024 4576
Total (pps) 3 2 2 1
(bps) 12216 8024 8024 4576
Processing: Load (pct) 0 0 0 1
이 명령은 우선순위 및 비우선순위 패킷의 입력 및 출력 CPU 사용량을 나열하고, 정보는 PPS(Packets per second) 및 BPS(Bits per second)와 함께 표시되며, 마지막 행은 PCT(packet forward in percentage) 값으로 인한 총 CPU 로드 양을 표시합니다.
설치된 CPU 코어
ISR4300 제품군에는 모델에 따라 다른 양의 CPU 코어가 설치되어 있으며, 디바이스에 설치된 코어 수를 식별하기 위해 show processes cpu platform 명령을 실행합니다.
#show processes cpu platform
CPU utilization for five seconds: 30%, one minute: 29%, five minutes: 29%
Core 0: CPU utilization for five seconds: 13%, one minute: 13%, five minutes: 13%
Core 1: CPU utilization for five seconds: 2%, one minute: 3%, five minutes: 3%
Core 2: CPU utilization for five seconds: 0%, one minute: 0%, five minutes: 0%
Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99%
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
1 0 0% 0% 0% S 1863680 init
2 0 0% 0% 0% S 0 kthreadd
또는 show platform software status control-processor 명령을 실행합니다.
#show platform software status control-processor
<output omitted>
Per-core Statistics
CPU0: CPU Utilization (percentage of time spent)
User: 4.80, System: 10.30, Nice: 0.00, Idle: 84.50
IRQ: 0.40, SIRQ: 0.00, IOwait: 0.00
CPU1: CPU Utilization (percentage of time spent)
User: 2.00, System: 3.40, Nice: 0.00, Idle: 94.59
IRQ: 0.00, SIRQ: 0.00, IOwait: 0.00
CPU2: CPU Utilization (percentage of time spent)
User: 0.50, System: 0.00, Nice: 0.00, Idle: 99.49
IRQ: 0.00, SIRQ: 0.00, IOwait: 0.00
CPU3: CPU Utilization (percentage of time spent)
User: 24.72, System: 75.27, Nice: 0.00, Idle: 0.00
IRQ: 0.00, SIRQ: 0.00, IOwait: 0.00
반면, show platform software status control-processor brief 명령을 실행하면 다음 명령 중 하나에 설치된 코어의 양이 표시됩니다.
#show platform software status control-processor brief
<output omitted>
CPU Utilization
Slot CPU User System Nice Idle IRQ SIRQ IOwait
RP0 0 4.30 9.80 0.00 85.90 0.00 0.00 0.00
1 0.79 0.99 0.00 98.20 0.00 0.00 0.00
2 0.50 0.00 0.00 99.50 0.00 0.00 0.00
3 24.60 75.40 0.00 0.00 0.00 0.00 0.00
CPU 코어 분포
ISR4300 제품군의 설계로 패킷 프로세스에 사용되는 특정 코어가 생성됩니다.코어 4~7은 ISR4331 및 4351의 패킷 프로세스용으로 예약되어 있으며, 코어 2 및 3은 ISR4321에 사용됩니다.
성능상의 이유로, HQF(Hierarchical Queue Framework) 기능은 항상 핫 스핀(hot-spine) 기능을 제공하며, 시스템에 어떤 컨피그레이션이 있는지 또는 어떤 트래픽이 시스템을 통과하는지에 관계없이 높은 CPU 사용률을 사용합니다. ISR4300 플랫폼에서는 QFP 소프트웨어가 기본 CPU에서 실행되기 때문에 하나 이상의 코어에서 CPU 사용률이 높은 것으로 나타납니다.
핫 스핀 사용량을 표시하려면 show processes cpu platform sorted 명령을 실행합니다.
#show processes cpu platform sorted
CPU utilization for five seconds: 28%, one minute: 29%, five minutes: 29%
Core 0: CPU utilization for five seconds: 12%, one minute: 13%, five minutes: 14%
Core 1: CPU utilization for five seconds: 2%, one minute: 3%, five minutes: 3%
Core 2: CPU utilization for five seconds: 0%, one minute: 0%, five minutes: 0%
Core 3: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
2541 1955 99% 99% 99% S 1073807360 qfp-ucode-utah <<< high CPU process
1551 929 7% 7% 7% S 2038525952 fman_fp_image
8코어 아키텍처에서는 핫 스핀(hot-spin)에 대해 다른 코어를 사용하여 동일한 결과를 볼 수 있습니다.
#show processes cpu platform sorted
CPU utilization for five seconds: 15%, one minute: 14%, five minutes: 15%
Core 0: CPU utilization for five seconds: 6%, one minute: 4%, five minutes: 8%
Core 1: CPU utilization for five seconds: 1%, one minute: 0%, five minutes: 2%
Core 2: CPU utilization for five seconds: 9%, one minute: 10%, five minutes: 7%
Core 3: CPU utilization for five seconds: 1%, one minute: 2%, five minutes: 1%
Core 4: CPU utilization for five seconds: 1%, one minute: 1%, five minutes: 1%
Core 5: CPU utilization for five seconds: 0%, one minute: 0%, five minutes: 0%
Core 6: CPU utilization for five seconds: 99%, one minute: 99%, five minutes: 99% <<< hot-spin
Core 7: CPU utilization for five seconds: 0%, one minute: 0%, five minutes: 0%
Pid PPid 5Sec 1Min 5Min Status Size Name
--------------------------------------------------------------------------------
3432 2779 99% 99% 99% S 1086341120 qfp-ucode-utah <<< high CPU process
2612 1893 7% 7% 7% S 2038697984 fman_fp_image
26114 25132 4% 5% 5% R 42803200 hman
주의:코어 CPU 사용에 문제가 있다고 생각되면 지원을 받고 디바이스 안정성을 확인하기 위해 TAC(Technical Assistance Center) 케이스를 엽니다.
CPU를 모니터링하는 모범 사례
데이터 경로 사용률 또는 IOSd 사용을 위해 특정 명령을 사용하는 것이 가장 좋습니다. 코어 표시 명령의 결과가 오탐 알림을 생성할 수 있습니다.
데이터 경로 사용률을 모니터링하는 명령은 다음과 같습니다.
- 플랫폼 하드웨어 qfp 활성 데이터 경로 사용률 표시
IOSd 사용을 모니터링하는 명령은 다음과 같습니다.
다음 OID(Object Identifiers)를 사용하여 SNMP(Simple Network Management Protocol)를 사용하여 IOSd CPU 사용량을 모니터링합니다.
- busyPer = 지난 5초 동안의 IOSd CPU 사용 중 비율
- avgBusy1= IOSd CPU 사용 중 백분율의 1분 평균 1초 이상 기하급수적으로 감소
- AvgBusy5 = IOSd 5분 CPU 사용 중 백분율의 5분 평균 이동 평균