Introduction
Ce document décrit les principes fondamentaux de l'utilisation du CPU/de la mémoire/des fichiers sur les systèmes StarOS et comment dépanner en cas de problème.
Conditions préalables
Exigences
Cisco vous recommande de prendre connaissance des rubriques suivantes :
Composants utilisés
Ce document n'est pas limité à des versions de matériel et de logiciel spécifiques.
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.
Informations générales
Le sous-système de gestion des ressources attribue un ensemble de limites de ressources pour chaque tâche du système. Il surveille l'utilisation des ressources de chaque tâche pour s'assurer qu'elle reste dans les limites. Si une tâche a dépassé ses limites, elle en informe les opérateurs via des déroutements Syslog ou SNMP (Simple Network Management Protocol). Ce document explique son fonctionnement et les journaux que vous devez collecter pour un dépannage ultérieur.
Vous pouvez vérifier les informations de base dans le résultat de l'interface de ligne de commande (CLI) show task resources.
Les limites de ressources allouées ne peuvent pas être modifiées par l'utilisateur.
Les limites de ressources allouées sont différentes en fonction de la version de StarOS.
Voici un exemple de SNMP qui se produit lorsque le problème est présent sur le système :
Mon Aug 26 11:32:19 2013 Internal trap notification 1221 (MemoryOver) facility sessmgr instance 16 card 1 cpu 0 allocated 204800 used 220392
Mon Aug 26 11:32:29 2013 Internal trap notification 1222 (MemoryOverClear) facility sessmgr instance 16 card 1 cpu 0 allocated 1249280 used 219608
Fri Dec 20 13:52:20 2013 Internal trap notification 1217 (MemoryWarn) facility npudrv instance 401 card 5 cpu 0 allocated 112640 used 119588
Fri Dec 20 14:07:26 2013 Internal trap notification 1218 (MemoryWarnClear) facility cli instance 5011763 card 5 cpu 0 allocated 56320 used 46856
Wed Dec 25 12:24:16 2013 Internal trap notification 1220 (CPUOverClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 12:24:16 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010294 card 5 cpu 0 allocated 600 used 272
Wed Dec 25 17:04:56 2013 Internal trap notification 1215 (CPUWarn) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 595
Wed Dec 25 17:05:36 2013 Internal trap notification 1216 (CPUWarnClear) facility cli instance 5010317 card 5 cpu 0 allocated 600 used 220
Surveillance de l'utilisation CPU
CPUWarn SNMP trap est généré lorsque l'utilisation du processeur du proclet atteint 90 % de son allocation.
Une fois CPUWarn généré, CPUOver est généré lorsque l'utilisation du processeur du proclet atteint plus de 50 % de son allocation à partir de la valeur avertie.
Si l'utilisation du processeur du proclet atteint son utilisation allouée avant que CPUWarn soit généré, alors CPUOver est généré.
CPUWarn/Over est effacé lorsque l'utilisation revient à 50 % de la valeur allouée.
Exemple :
Si l'allocation système pour l'installation est égale à 60, lorsque la valeur atteint 54, le système génère une interruption SNMP (CPUWarn).
Comme l'allocation système pour l'installation est de 60, lorsque l'utilisation du processeur du proclet atteint plus de 50 % de son allocation à partir de la valeur avertie, dans ce scénario, lorsque le système atteint la valeur 84 (54+30), le système génère une interruption SNMP (CPUOver).
Surveillance de l'utilisation mémoire
MemoryWarn est généré lorsque l'utilisation de la mémoire du proclet atteint son allocation.
MemoryOver est généré lorsque l'utilisation de la mémoire du proclet dépasse son allocation + 15 Mo, soit le double de son allocation.
MemoryWarn/MemoryOver sont effacés lorsque l'utilisation revient à 95 % de son allocation.
Exemple :
Si l'allocation système pour l'installation est de 60 Mo, alors pour toute valeur supérieure à 60 Mo, le système génère un déroutement SNMP MemoryWarn.
Comme l'allocation système pour l'installation est de 60 Mo, lorsque l'utilisation de la mémoire des tâches atteint 75 Mo, le système génère une interruption SNMP MemoryOver.
Surveillance de l'utilisation
Fichiers indique le nombre de fichiers ouverts ou le descripteur de fichier utilisé par le processus.
Aucune interruption SNMP n'est implémentée pour l'utilisation des fichiers, mais un message de journalisation est généré pour l'état over/clear.
Le journal de dépassement est généré lorsque l'utilisation de fichier de proclet atteint plus que son allocation + 10% de son allocation.
Le journal d'effacement est généré lorsque l'utilisation de fichier de proclet remonte à 90 % de son allocation.
2013-May-28+14:16:18.746 [resmgr 14517 warning] [8/0/4440 <rmmgr:80>
_resource_cpu.c:3558] [software internal system syslog] The task cli-8031369 is over its
open files limit. Allocated 2000, Using 2499
État dans show task resource
Le champ État dans le résultat de la commande show task resources CLI a des critères différents.
Dans l'image ci-dessous, AVERTISSEMENT est averti et ALARME est sur l'état.
Dépannage
Pour l'utilisation CPU
Lorsque le système commence à générer des déroutements SNMP liés au processeur, collectez les informations suivantes pendant le problème actif :
show task resources
Vérifier si un proclète passe à l'état d'avertissement/de dépassement
show task resource max
Vérifier l'utilisation maximale plutôt que l'utilisation actuelle
Vérifiez s'il y a un événement CPUWarn/Over
Remarque : cette commande est masquée/test. Reportez-vous à la documentation pour savoir comment activer et passer en mode Test dans StarOs.
Cette commande n'a pas d'impact sur le service et peut être exécutée en production.
show profile card <numéro de carte> cpu <numéro de cpu> depth <valeur>
Il s'agit du profileur d'arrière-plan.
Background Profiler est toujours exécution, même en production, avec une période d'échantillonnage fixe de 1 s.
Nous pouvons savoir quel PC consomme des ressources CPU, par carte/processeur/installation/instance, etc.
Il est recommandé de spécifier la profondeur plutôt que d'utiliser la valeur par défaut 1.(par exemple 4)
Pour l'utilisation de mémoire
Lorsque le système commence à générer des déroutements SNMP liés à la mémoire, collectez les informations suivantes pendant le problème actif :
show task resources
Vérifier si un proclète passe à l'état d'avertissement/de dépassement
show task resource max
Vérifier l'utilisation maximale plutôt que l'utilisation actuelle
show snmp trap history
Vérifiez s'il y a un événement MemoryWarn/Over
show logs
Vérifiez si un message d'avertissement/d'erreur a été signalé par resmgr.
Remarque : cette commande est masquée/test. Reportez-vous à la documentation pour savoir comment activer et passer en mode Test dans StarOs.
Cette commande n'a pas d'impact sur le service et peut être exécutée en production.
show messenger proclet facility <name> instance <x> tas
Vérifier l'utilisation du tas du proclet
Remarque : cette commande est masquée/test. Reportez-vous à la documentation pour savoir comment activer et passer en mode Test dans StarOs.
Cette commande n'a pas d'impact sur le service et peut être exécutée en production.
show messenger proclet facility <name> instance <x> segment de mémoire système
Vérifier les informations de tas système pour le processus conteneur
Conseil : prenez plusieurs sorties de commandes relatives au processeur toutes les 10 minutes et 4 sorties avant d'augmenter la demande de service vers le centre d'assistance technique.
Pour l'utilisation des fichiers
La limite de fichiers réelle au niveau du système d'exploitation est définie plus haut que la limite d'utilisation des fichiers dans StarOs.
Exemple pour la tâche Diamètre Proxy (diaproxy), la limite du niveau du système d'exploitation est 8192, le processus peut consommer jusqu'à 8192 alors que la limite des fichiers est définie sur 1000 à StarOS.
asr5500:card3-cpu0# ps -ef | grep diam
root 5934 4555 0 Jul02 ? 00:07:52 diamproxy --readypipe 8 --limit_mode 8 --card_number 3 --cpu_number 0 --master_spc 3
asr5500:card3-cpu0# cat /proc/5934/limits | grep open
Max open files 8192 8192 files
[local]asr5500-2# show task resources facility diamproxy all
Friday July 11 10:05:54 JST 2014
task cputime memory files sessions
cpu facility inst used allc used alloc used allc used allc S status
----------------------- --------- ------------- --------- ------------- ------
3/0 diamproxy 2 0.3% 90% 22.83M 250.0M 216 1000 -- -- - good
8/0 diamproxy 1 0.4% 90% 22.71M 250.0M 69 1000 -- -- - good
Il y a aussi une limite de niveau de CPU, veuillez la vérifier aussi et vous seriez bien tant que vous avez assez de disponible.
[local]ASR5500# show cpu info card 1 cpu 0
Card 1, CPU 0:
Status : Active, Kernel Running, Tasks Running
Load Average : 0.26, 0.39, 0.44 (1.78 max)
Total Memory : 32768M (16384M node-0, 16384M node-1)
Kernel Uptime : 3D 22H 11M
Last Reading:
CPU Usage All : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.6% idle
Node 0 : 0.1% user, 0.3% sys, 0.0% io, 0.0% irq, 99.5% idle
Node 1 : 0.1% user, 0.2% sys, 0.0% io, 0.0% irq, 99.7% idle
Processes / Tasks : 185 processes / 29 tasks
Network : 0.326 kpps rx, 0.912 mbps rx, 0.208 kpps tx, 3.485 mbps tx
File Usage : 1792 open files, 3279141 available
Memory Usage : 1619M 4.9% used (1209M 7.4% node-0, 409M 2.5% node-1)
Lorsque disponible devient inférieur à 256, ce message d'avertissement est généré :
event 14516
user_resource_cpu_cpu_low_files(uint32 card, uint32 cpu, uint32 used, uint32 remain)
"The CPU %d/%d is running low on available open files. (%u used, %u remain)"
warning
software internal system critical-info