Introduzione
In questo documento vengono descritti i dati fondamentali relativi all'utilizzo di CPU/memoria/file sui sistemi StarOS e viene spiegato come risolvere eventuali problemi.
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware.
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Premesse
Il sottosistema di gestione delle risorse assegna un insieme di limiti di risorse per ogni attività del sistema. Esegue il monitoraggio dell'utilizzo delle risorse di ogni attività per garantire che non superi il limite. Se un'operazione ha superato i propri limiti, ne emette notifica agli operatori tramite trap Syslog o SNMP (Simple Network Management Protocol). Questo documento spiega come funziona e quali registri devono essere raccolti per un'ulteriore risoluzione dei problemi.
È possibile controllare le informazioni di base nell'output di show task resources command line interface (CLI).
I limiti delle risorse allocate non possono essere modificati dall'utente.
I limiti delle risorse allocate sono diversi in base alla versione di StarOS.
Questo è un esempio di SNMP che si verifica quando è presente un problema sul sistema:
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
Monitoraggio dell'utilizzo della CPU
CPUWarn SNMP trap viene generato quando l'utilizzo della CPU del proclet raggiunge il 90% della quantità allocata.
Una volta generato CPUWarn, CPUOver viene generato quando l'utilizzo della CPU del proclet raggiunge più del 50% della quantità allocata dal valore di avviso.
Se l'utilizzo della CPU del client raggiunge l'utilizzo allocato prima che venga generato CPUWarn, verrà generato CPUOver.
CPUWarn/Over viene cancellato quando l'utilizzo torna al 50% delle risorse allocate.
Esempio:
Se l'allocazione di sistema per la struttura è 60, quando il valore raggiunge 54, il sistema genera una trap SNMP (CPUWarn).
Poiché l'allocazione di sistema per la struttura è 60, quando l'utilizzo della CPU del proclet raggiunge più del 50% della quantità allocata dal valore di avviso, in questo scenario quando il sistema raggiunge il valore 84 (54+30) il sistema genera una trap SNMP (CPUOver).
Monitoraggio dell'utilizzo della memoria
MemoryWarn viene generato quando l'utilizzo della memoria del client raggiunge la propria allocazione.
MemoryOver viene generato quando l'utilizzo di memoria del proclet raggiunge più di 15 MB o il doppio della sua allocazione.
MemoryWarn/MemoryOver vengono cancellati quando l'utilizzo ritorna al 95% della sua allocazione.
Esempio:
Se l'allocazione di sistema per la struttura è di 60 MB, per qualsiasi valore superiore a 60 MB il sistema genera SNMP trap MemoryWarn.
Poiché l'allocazione di sistema per la struttura è di 60 MB, quando l'utilizzo della memoria delle attività raggiunge i 75 MB, il sistema genera SNMP trap MemoryOver.
Monitoraggio dell'utilizzo dei file
File indica il numero di file aperti o il descrittore di file utilizzato dal processo.
Non è implementata alcuna trap SNMP per l'utilizzo dei file, ma viene generato un messaggio di registrazione per lo stato di sovrascrittura/cancellazione.
L'overlog viene generato quando l'utilizzo dei file del proclet raggiunge un valore superiore a quello allocato + 10%.
Il log di cancellazione viene generato quando l'utilizzo dei file del proclet torna al 90% delle risorse allocate.
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
Stato nella risorsa attività di visualizzazione
Il campo Status nell'output di show task resources CLI ha criteri diversi.
Nell'immagine seguente, WARN viene visualizzato come avvertenza e ALARM è over status (ALLARME superato).
Risoluzione dei problemi
Per l'utilizzo della CPU
Quando il sistema inizia a generare trap SNMP relative alla CPU, raccogliere le seguenti informazioni durante il problema attivo:
visualizzare le risorse delle attività
Controlla se un proclet passa in stato di avviso/sovrascrittura
mostra massimo risorsa attività
Verifica l'utilizzo massimo anziché l'utilizzo corrente
mostra cronologia trap snmp
Verificare se sono presenti eventi CPUWarn/Over
Nota: questo è il comando nascosto/test. Consultare la documentazione per informazioni su come abilitare la modalità test in StarOs.
Questo comando non ha alcun impatto sul servizio e può essere eseguito in produzione.
show profile card <numero scheda> cpu <numero cpu> depth <valore>
Questo è il cosiddetto profiler Background.
Profiler sfondo è sempre anche in produzione, con un periodo di campionamento fisso di 1 s.
È possibile sapere quale PC utilizza le risorse della CPU, per scheda/CPU/struttura/istanza, ecc.
Si consiglia di specificare la profondità utilizzando il valore di default 1 (ad esempio 4).
Per l'utilizzo della memoria
Quando il sistema inizia a generare trap SNMP relative alla memoria, raccogliere le seguenti informazioni durante il problema attivo:
visualizzare le risorse delle attività
Controlla se un proclet passa in stato di avviso/sovrascrittura
mostra massimo risorsa attività
Verifica l'utilizzo massimo anziché l'utilizzo corrente
mostra cronologia trap snmp
Verificare se sono presenti eventi MemoryWarn/Over
mostra registri
Verificare se sono presenti avvisi/errori segnalati da resmgr.
Nota: questo è il comando nascosto/test. Consultare la documentazione per informazioni su come abilitare la modalità test in StarOs.
Questo comando non ha alcun impatto sul servizio e può essere eseguito in produzione.
mostra heap istanza <x> del servizio proclet di messenger
Verifica l'utilizzo heap del client
Nota: questo è il comando nascosto/test. Consultare la documentazione per informazioni su come abilitare la modalità test in StarOs.
Questo comando non ha alcun impatto sul servizio e può essere eseguito in produzione.
mostra heap di sistema dell'istanza <x> del servizio proclet di messenger
Verifica informazioni heap di sistema per il processo contenitore
Suggerimento: prima di aumentare la richiesta di servizio verso TAC, è necessario utilizzare più output di comandi relativi alla cpu ogni 10 minuti e 4 output.
Per l'utilizzo dei file
Il limite effettivo di file a livello di sistema operativo è impostato su un valore superiore al limite di utilizzo dei file in StarOs.
Esempio di task Diameter Proxy (diaproxy), il limite del livello del sistema operativo è 8192 il processo può consumare fino a 8192 mentre il limite dei file è impostato su 1000 in 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
Esiste anche un limite di livello della CPU. Controllare anche questo limite e si potrebbe andare bene se si dispone di abbastanza disponibile.
[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)
Quando il valore è inferiore a 256, viene generato questo messaggio di avviso:
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