Inhoud

Inleiding

Voorwaarden

Vereisten

Gebruikte componenten

Architectuur

CPU-gebruik op Cisco IOSd

CPU gebruik door verkeer

CPU cores geïnstalleerd

CPU kernen distributie

Beste praktijken voor het bewaken van CPU

Inleiding

Dit document beschrijft hoe u het gebruik van Central Process Unit (CPU) op geïntegreerde services routers (ISR) uit de 4300-reeks kunt lezen.

Voorwaarden

Vereisten

Cisco raadt kennis van de volgende onderwerpen aan:

- Cisco IOS® XE

- ISR 43XX router

Gebruikte componenten

De informatie in dit document is gebaseerd op de hardware- en softwareversie:

- ISR 4321/K9 router

- ISR 4331/K9 router

- ISR 4351/K9 router

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

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

- 16.9.7

- 16.12.4

De informatie in dit document is gebaseerd op de apparaten in een specifieke laboratoriumomgeving. Alle apparaten die in dit document worden beschreven, hadden een opgeschoonde (standaard)configuratie. Als uw netwerk live is, moet u zorgen dat u de potentiële impact van elke opdracht begrijpt.

Architectuur

Cisco ISR 4000 Series platforms voeren Cisco IOS XE uit die een gedistribueerde softwarearchitectuur heeft die een Linux-kernel draait waar Cisco IOS® als een van de vele Linux-processen draait. Cisco IOS draait als een daemon, die Cisco IOS-Daemon (IOSd) wordt genoemd.

CPU-gebruik op Cisco IOSd

Om het gebruik van cpu op IOS te controleren, voert u de opdracht cpu van het showproces uit:

#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

De output toont twee waarden voor het gebruik van cpu, is de eerste waarde de totale hoeveelheid cpu gebruik en de tweede waarde is de hoeveelheid cpu door onderbrekingen die naar IOS worden verzonden:

Het verschil tussen de totale hoeveelheid CPU en de hoeveelheid CPU door onderbrekingen is de waarde van de CPU die door processen wordt verbruikt; ter bevestiging van de toevoeging van al het procesgebruik gedurende de laatste vijf seconden:

- CPU verbruik van processen = 1% - 0% = 1% = Alle processen CPU verbruik vermeld op de opdracht

Om de processen weer te geven die de meeste CPU's aan de bovenkant verbruiken, voert u de opdracht cpu gesorteerd proces show uit:

#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

Opmerking: de toevoeging van alle processen kan resulteren in drijvende-kommawaarden, IOSd rondt het resultaat af op het volgende gehele getal.

CPU gebruik door verkeer

Het ontwerp van de ISR4300-reeks wordt, om verkeer door te sturen, bepaald door een element dat QuantumFlow Processor (QFP) wordt genoemd.

Waarschuwing: QFP is te vinden op ASR1K als een of meerdere fysieke chips, op de ISR4400 wordt dezelfde functionaliteit gedaan met Cavium Octeon co-processors, op de ISR4300 dat de functionaliteit wordt gedaan op bepaalde kernen van de belangrijkste Intel CPU. Je kunt QFP op de ISR4300 familie zien als een stukje software dat pakketten doorstuurt.

Om de hoeveelheid CPU te bepalen die door verkeer wordt verbruikt, kunt u de opdracht show platform hardware qfp actief datapath use uitvoeren:

#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

De opdracht maakt een lijst van het input en output CPU gebruik voor prioriteits en niet-prioriteitspakketten, wordt de informatie weergegeven met pakketten per seconde (PPS) en bits per seconde (BPS), de laatste regel geeft de totale hoeveelheid CPU-belasting weer als gevolg van pakketvoorwaartse in percentages (PCT) waarden.

CPU cores geïnstalleerd

De ISR4300 reeks heeft een verschillende hoeveelheid CPU-kernen geïnstalleerd die afhankelijk is van het model, om het aantal kernen te identificeren die op uw apparaat geïnstalleerd zijn, voer de opdracht cpu platform show processen uit:

#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

U kunt ook de opdracht Software status control-processor van het showplatform uitvoeren:

#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

Aan de andere kant, voer de show platform software status control-processor korte opdracht, en een van deze opdrachten toont de hoeveelheid geïnstalleerde kernen:

#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 kernen distributie

Het ontwerp van de ISR4300-reeks resulteert in specifieke kernen die worden gebruikt voor het pakketproces. Kernen vier tot zeven worden gereserveerd voor pakketproces op ISR4331 en 4351, terwijl kernen twee en drie worden gebruikt voor ISR4321.

Tot en met Cisco IOS XE-versies 16.5.x vanwege prestatieredenen is de HQF (Hierarchical Queue Framework) altijd gebaseerd op hot-spins en werkt bij een hoog CPU-gebruik, ongeacht de configuratie in de doos of de hoeveelheid verkeer door het systeem gaat. Op de ISR4300-platforms kan dit worden weergegeven als een hoog CPU-gebruik op een of meer van de kernen, omdat de QFP-software op de hoofdCPU draait.

Maar na en inclusief Cisco IOS XE versies 16.6.x, werd er een wijziging geïmplementeerd zodat deze platforms de threads niet warm-centrifugeren. In dit geval wordt het CPU-gebruik meer verdeeld door de kernen.

Om het hot-spin gebruik weer te geven, voer de opdracht cpu-platform gesorteerd op show processen uit vóór Cisco IOS XE 16.6.x:

#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

Op een architectuur met acht kernen kunt u hetzelfde resultaat zien, met een andere kern op hot-spin, vóór 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

Na en met Cisco IOS XE 16.6.x kunt u echter zien dat er een taakverdeling is tussen Core 2 en Core 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

Na en met inbegrip van Cisco IOS XE 16.6.x, is hetzelfde als de vorige uitvoer van toepassing, maar voor kernen 4 tot en met 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

Waarschuwing: als u een probleem vermoedt met de kern-CPU-gebruik, opent u een TAC-case (Technical Assistance Center) om hulp te krijgen en de stabiliteit van het apparaat te bevestigen.

Beste praktijken voor het bewaken van CPU

Is het beste om de specifieke opdrachten voor datapath-gebruik of IOSd-gebruik te gebruiken, het resultaat van de kernweergave-opdrachten kan leiden tot valse positieve waarschuwingen.

De opdracht om het datapagebruik te bewaken is:

- toon platform hardware qfp actief datapath gebruik

Het bevel om IOSd gebruik te controleren is:

- proces cpu gesorteerd tonen

Gebruik een van deze Object Identifiers (OID) om het IOSd CPU-gebruik te monitoren met Simple Network Management Protocol (SNMP):

- bezigPer = IOSd CPU bezig percentage in de laatste 5 seconden

- avgBusy1 = IOSd één minuut exponentieel vervormd voortschrijdend gemiddelde van het bezette percentage van de CPU

- avgBusy5 = IOSd vijf minuten exponentieel vervormd voortschrijdend gemiddelde van het bezette percentage van de CPU