목차

소개

사전 요구 사항

요구 사항

사용되는 구성 요소

아키텍처

Cisco IOSd의 CPU 사용량

트래픽별 CPU 사용량

설치된 CPU 코어

CPU 코어 분포

CPU 모니터링에 대한 모범 사례

소개

이 문서에서는 4300 Series 제품군의 ISR(Integrated Service Router)에서 CPU(Central Process Unit) 사용량을 읽는 방법에 대해 설명합니다.

사전 요구 사항

요구 사항

다음 주제에 대한 지식을 보유하고 있으면 유용합니다.

- Cisco IOS® XE

- ISR43XX

사용되는 구성 요소

이 문서의 정보는 하드웨어 및 소프트웨어 버전을 기반으로 합니다.

- ISR4321/K9

- ISR4331/K9

- ISR4351/K9

- 03.16.01a.S // 15.5(3)S1a

- 03.16.04b.S // 15.5(3)S4b

- 16.9.7

- 16.12.4

이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.

아키텍처

Cisco ISR 4000 Series 플랫폼은 Cisco IOS XE를 실행합니다. 분산 소프트웨어 아키텍처는 Linux 커널을 실행하며 Cisco IOS®는 여러 Linux 프로세스 중 하나로 실행됩니다. Cisco IOS는 데몬으로 실행되며 이를 Cisco IOS-Daemon(IOSd)이라고 합니다.

Cisco 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에서는 Cavium Octeon 코프로세서와 동일한 기능을, ISR4300에서는 주 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) 값으로 인한 총 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에 사용됩니다.

Cisco IOS XE 버전 16.5.x까지 성능 상의 이유로 포함되기 전까지, HQF(Hierarchical Queue Framework)는 항상 스레드가 핫 스핀되며 시스템의 어떤 컨피그레이션이나 시스템을 통과하는 트래픽의 양에 관계없이 높은 CPU 사용률로 실행됩니다. ISR4300 플랫폼에서는 QFP 소프트웨어가 주 CPU에서 실행되므로 하나 이상의 코어에서 CPU 사용률이 높은 것으로 나타날 수 있습니다.

그러나 Cisco IOS XE 버전 16.6.x 이후에 포함된 이러한 플랫폼에서는 스레드를 핫 스핀하지 않도록 변경이 구현되었습니다. 이 경우 CPU 사용률이 코어를 통해 더 분산됩니다.

hot-spin 사용량을 표시하려면 Cisco IOS XE 16.6.x 이전에 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코어 아키텍처에서도 Cisco IOS XE 16.6.x 이전에 핫 스핀에 대한 다른 코어와 함께 동일한 결과를 볼 수 있습니다.

#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

Cisco IOS XE 16.6.x 이후에 포함되지만 코어 2와 코어 3 간에 로드 분배가 있음을 확인할 수 있습니다.

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 31%, one minute: 32%, five minutes: 29%

Core 0: CPU utilization for five seconds:  3%, one minute:  3%, five minutes:  3%

Core 1: CPU utilization for five seconds:  3%, one minute:  2%, five minutes:  2%

Core 2: CPU utilization for five seconds: 39%, one minute: 41%, five minutes: 34% <<< load distributed

Core 3: CPU utilization for five seconds: 84%, one minute: 83%, five minutes: 79% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

26939   26344    127%    126%    116%  S       1195311104  qfp-ucode-utah <<< high CPU process

Cisco IOS XE 16.6.x 이후에 이전 출력과 동일한 결과가 적용되지만 코어 4~7의 경우

------------------ show process cpu platform sorted ------------------

CPU utilization for five seconds: 30%, one minute: 24%, five minutes: 27%

Core 0: CPU utilization for five seconds: 41%, one minute: 13%, five minutes: 13%

Core 1: CPU utilization for five seconds: 23%, one minute: 11%, five minutes: 13%

Core 2: CPU utilization for five seconds: 19%, one minute: 10%, five minutes: 12%

Core 3: CPU utilization for five seconds: 38%, one minute: 12%, five minutes: 12%

Core 4: CPU utilization for five seconds: 28%, one minute: 26%, five minutes: 28% <<< load distributed

Core 5: CPU utilization for five seconds: 53%, one minute: 40%, five minutes: 37% <<< load distributed

Core 6: CPU utilization for five seconds: 18%, one minute: 16%, five minutes: 17% <<< load distributed

Core 7: CPU utilization for five seconds: 93%, one minute: 81%, five minutes: 81% <<< load distributed

Pid    PPid    5Sec    1Min    5Min  Status        Size  Name

--------------------------------------------------------------------------------

26049    25462    164%    165%    170%  S           394128  qfp-ucode-utah <<< high CPU process

주의: 코어 CPU 사용량에 문제가 있다고 생각되면 TAC(Technical Assistance Center) 케이스를 열어 지원을 받고 디바이스 안정성을 확인합니다.

CPU 모니터링에 대한 모범 사례

데이터 경로 사용률 또는 IOSd 사용률에 특정 명령을 사용하는 것이 가장 좋으며, core display 명령의 결과는 오탐(false positive) 알림을 초래할 수 있습니다.

데이터 경로 사용률을 모니터링하는 명령은 다음과 같습니다.

- 플랫폼 하드웨어 qfp 활성 데이터 경로 사용률 표시

IOSd 사용을 모니터링하는 명령은 다음과 같습니다.

- 정렬된 프로세스 cpu 표시

다음 OID(Object Identifier)를 사용하여 SNMP(Simple Network Management Protocol)로 IOSd CPU 사용량을 모니터링합니다.

- busyPer = 최근 5초 동안의 IOSd CPU 사용 비율

- avgBusy1 = IOSd 1분 CPU 사용 중 백분율 이동 평균

- avgBusy5 = IOSd 5분 CPU 사용 중 백분율 이동 평균