Introduction
Ce document décrit comment lire l'utilisation de l'unité centrale (UC) sur les routeurs à services intégrés (ISR) de la gamme 4300.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Composants utilisés
Les informations contenues dans ce document sont basées sur la version matérielle et logicielle :
- 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
The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Si votre réseau est en ligne, assurez-vous de bien comprendre l’incidence possible des commandes.
Architecture
Les plates-formes de la gamme Cisco ISR 4000 exécutent Cisco IOS XE qui possède une architecture logicielle distribuée qui exécute un noyau Linux où Cisco IOS® s'exécute comme l'un des nombreux processus Linux. Cisco IOS s'exécute en tant que démon, appelé démon Cisco IOS (IOSd).
Utilisation du processeur sur Cisco IOSd
Afin de surveiller l'utilisation du CPU sur IOSd, exécutez la commande 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
Le résultat affiche deux valeurs pour l'utilisation du CPU, la première valeur est la quantité totale d'utilisation du CPU et la seconde valeur est la quantité de CPU par les interruptions envoyées à IOSd :
La différence entre la quantité totale de CPU et la quantité de CPU par interruptions sont les valeurs de CPU consommées par les processus ; afin de corroborer ajouter toute l'utilisation des processus pour les cinq dernières secondes :
- Consommation CPU des processus = 1 % - 0 % = 1 % = Tous les processus Consommation CPU indiquée dans la commande
Afin d'afficher les processus qui consomment le plus de CPU sur le dessus, exécutez la commande 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
Remarque : l'ajout de tous les processus peut aboutir à des valeurs en virgule flottante, IOSd arrondit le résultat à l'entier suivant.
Utilisation du processeur par trafic
La conception de la gamme ISR4300, afin de transférer le trafic, est basée sur un élément appelé QuantumFlow Processor (QFP).
Attention : QFP se trouve sur ASR1K comme une ou plusieurs puces physiques, sur l'ISR4400 la même fonctionnalité est faite avec les coprocesseurs Cavium Octeon, sur l'ISR4300 cette fonctionnalité est faite sur certains coeurs du processeur Intel principal. Vous pouvez considérer le QFP de la gamme ISR4300 comme un logiciel qui transfère les paquets.
Afin de déterminer la quantité de CPU consommée par le trafic, vous pouvez exécuter la commande show platform hardware qfp active datapath use :
#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
La commande répertorie l'utilisation du CPU en entrée et en sortie pour les paquets prioritaires et non prioritaires. Les informations sont affichées avec des paquets par seconde (PPS) et des bits par seconde (BPS). La dernière ligne affiche la quantité totale de charge du CPU due à l'acheminement des paquets en valeurs de pourcentage (PCT).
Coeurs de processeur installés
La gamme ISR4300 a une quantité différente de coeurs de CPU installés qui dépend du modèle, pour identifier le nombre de coeurs installés sur votre périphérique exécutez la commande 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
Vous pouvez également exécuter la commande 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
D'autre part, exécutez la commande show platform software status control-processor brief, et l'une de ces commandes affiche la quantité de coeurs installés :
#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
Répartition des coeurs du processeur
La conception de la gamme ISR4300 génère des coeurs spécifiques utilisés pour le traitement des paquets. Les coeurs 4 à 7 sont réservés au traitement des paquets sur ISR4331 et 4351, tandis que les coeurs 2 et 3 sont utilisés pour ISR4321.
Jusqu'à la version 16.5.x de Cisco IOS XE incluse pour des raisons de performances, le cadre de file d'attente hiérarchique (HQF) dispose d'un thread qui tourne toujours à chaud et s'exécute avec une utilisation CPU élevée, quelle que soit la configuration prête à l'emploi ou la quantité de trafic transitant par le système. Sur les plates-formes ISR4300, cela peut apparaître comme une utilisation CPU élevée sur un ou plusieurs coeurs, car le logiciel QFP s'exécute sur le processeur principal.
Cependant, après et avec les versions 16.6.x de Cisco IOS XE, une modification a été implémentée afin que ces plates-formes ne fassent pas tourner les threads à chaud. Dans ce cas, l'utilisation du CPU est plus distribuée par les coeurs.
Pour afficher l'utilisation du spin à chaud, exécutez la commande show processes cpu platform sorted, avant 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
Sur une architecture à huit coeurs, vous pouvez voir le même résultat, avec un coeur différent sur la rotation à chaud, avant 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
Après et y compris Cisco IOS XE 16.6.x, cependant vous pouvez voir qu'il y a une distribution de charge entre Core 2 et 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
Après et y compris Cisco IOS XE 16.6.x, le même résultat que le précédent s'applique, mais pour les coeurs 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
Attention : si vous suspectez un problème d'utilisation du processeur principal, ouvrez un dossier TAC (Technical Assistance Center) afin d'obtenir de l'aide et de confirmer la stabilité du périphérique.
Meilleures pratiques de surveillance du processeur
Il est préférable d’utiliser les commandes spécifiques pour l’utilisation du chemin de données ou de l’IOSd. Le résultat des commandes d’affichage principales peut entraîner des alertes de faux positifs.
La commande permettant de surveiller l'utilisation du chemin de données est la suivante :
- show platform hardware qfp active datapath utilisation
La commande permettant de surveiller l’utilisation de l’IOSd est :
Utilisez l'un de ces Identificateurs d'objet (OID) pour surveiller l'utilisation du CPU IOSd avec le protocole SNMP (Simple Network Management Protocol) :
- busyPer = pourcentage d'occupation du processeur IOSd au cours des 5 dernières secondes
- avgBusy1 = IOSd moyenne mobile exponentiellement décroissante d'une minute du pourcentage d'occupation du processeur
- avgBusy5 = IOSd Moyenne mobile exponentiellement décroissante de cinq minutes du pourcentage d'occupation du processeur