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