In questo documento viene descritto come usare il protocollo SNMP (Simple Network Management Protocol) per eseguire query sulle statistiche della memoria di Cisco Adaptive Security Appliance (ASA), come la memoria libera, la memoria usata e così via.
Nessun requisito specifico previsto per questo documento.
Le informazioni discusse in questo documento sono valide solo per i dispositivi Cisco Adaptive Security Appliance.
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.
È possibile monitorare la memoria libera e le statistiche della memoria utilizzata per identificare le prestazioni della memoria del dispositivo di rete. Cisco ASA supporta le statistiche della memoria per il polling tramite SNMP e utilizza i seguenti OID supportati:
Contatori di memoria a 32 bit
Utilizzare l'oggetto 'CiscoMemoryPoolEntry'. In questo output di esempio vengono mostrati i mapping di oggetti e ID.
ciscoMemoryPoolType 1.3.6.1.4.1.9.9.48.1.1.1.1 ciscoMemoryPoolName 1.3.6.1.4.1.9.9.48.1.1.1.2 ciscoMemoryPoolAlternate 1.3.6.1.4.1.9.9.48.1.1.1.3 ciscoMemoryPoolValid 1.3.6.1.4.1.9.9.48.1.1.1.4 ciscoMemoryPoolUsed 1.3.6.1.4.1.9.9.48.1.1.1.5 ciscoMemoryPoolFree 1.3.6.1.4.1.9.9.48.1.1.1.6 ciscoMemoryPoolLargestFree 1.3.6.1.4.1.9.9.48.1.1.1.7
Contatori di memoria a 64 bit
Utilizzare l'oggetto ‘cempMemPoolEntry’. In questo output di esempio vengono mostrati i mapping di oggetti e ID.
cempMemPoolIndex 1.3.6.1.4.1.9.9.221.1.1.1.1.1 cempMemPoolLowestFree 1.3.6.1.4.1.9.9.221.1.1.1.1.10 cempMemPoolUsedLowWaterMark 1.3.6.1.4.1.9.9.221.1.1.1.1.11 cempMemPoolAllocHit 1.3.6.1.4.1.9.9.221.1.1.1.1.12 cempMemPoolAllocMiss 1.3.6.1.4.1.9.9.221.1.1.1.1.13 cempMemPoolFreeHit 1.3.6.1.4.1.9.9.221.1.1.1.1.14 cempMemPoolFreeMiss 1.3.6.1.4.1.9.9.221.1.1.1.1.15 cempMemPoolType 1.3.6.1.4.1.9.9.221.1.1.1.1.2 cempMemPoolName 1.3.6.1.4.1.9.9.221.1.1.1.1.3 cempMemPoolPlatformMemory 1.3.6.1.4.1.9.9.221.1.1.1.1.4 cempMemPoolAlternate 1.3.6.1.4.1.9.9.221.1.1.1.1.5 cempMemPoolValid 1.3.6.1.4.1.9.9.221.1.1.1.1.6 cempMemPoolUsed 1.3.6.1.4.1.9.9.221.1.1.1.1.7 cempMemPoolFree 1.3.6.1.4.1.9.9.221.1.1.1.1.8 cempMemPoolLargestFree 1.3.6.1.4.1.9.9.221.1.1.1.1.9
Quando le statistiche della memoria vengono richieste dalla console di un client SNMP, l'output è simile a questo output di esempio.
Per i contatori a 32 bit:
iso.3.6.1.4.1.9.9.48.1.1.1.2.1 = STRING: "System memory" iso.3.6.1.4.1.9.9.48.1.1.1.2.6 = STRING: "MEMPOOL_DMA" iso.3.6.1.4.1.9.9.48.1.1.1.2.7 = STRING: "MEMPOOL_GLOBAL_SHARED" iso.3.6.1.4.1.9.9.48.1.1.1.3.1 = INTEGER: 0 iso.3.6.1.4.1.9.9.48.1.1.1.3.6 = INTEGER: 0 iso.3.6.1.4.1.9.9.48.1.1.1.3.7 = INTEGER: 0 iso.3.6.1.4.1.9.9.48.1.1.1.4.1 = INTEGER: 1 iso.3.6.1.4.1.9.9.48.1.1.1.4.6 = INTEGER: 1 iso.3.6.1.4.1.9.9.48.1.1.1.4.7 = INTEGER: 1 iso.3.6.1.4.1.9.9.48.1.1.1.5.1 = Gauge32: 230971224 iso.3.6.1.4.1.9.9.48.1.1.1.5.6 = Gauge32: 21585704 iso.3.6.1.4.1.9.9.48.1.1.1.5.7 = Gauge32: 50616136 iso.3.6.1.4.1.9.9.48.1.1.1.6.1 = Gauge32: 37464232 iso.3.6.1.4.1.9.9.48.1.1.1.6.6 = Gauge32: 32964824 iso.3.6.1.4.1.9.9.48.1.1.1.6.7 = Gauge32: 37464248 iso.3.6.1.4.1.9.9.48.1.1.1.7.1 = Gauge32: 37460160 iso.3.6.1.4.1.9.9.48.1.1.1.7.6 = Gauge32: 32945592 iso.3.6.1.4.1.9.9.48.1.1.1.7.7 = Gauge32: 37460160
Per interpretarlo, è possibile usare l'output del comando show mem o show mem detail.
‘iso.3.6.1.4.1.9.9.48.1.1.1.5.1 = Gauge32:’ correlates to the ‘Used Memory’ in 'sh mem' output. ‘iso.3.6.1.4.1.9.9.48.1.1.1.6.1 = Gauge32:’ correlates to the ‘Free Memory’ in ‘sh mem' output
Per i contatori a 64 bit:
iso.3.6.1.4.1.9.9.221.1.1.1.1.2.1.1 = INTEGER: 2 iso.3.6.1.4.1.9.9.221.1.1.1.1.3.1.1 = STRING: "System memory" iso.3.6.1.4.1.9.9.221.1.1.1.1.5.1.1 = INTEGER: 0 iso.3.6.1.4.1.9.9.221.1.1.1.1.6.1.1 = INTEGER: 1 iso.3.6.1.4.1.9.9.221.1.1.1.1.7.1.1 = Gauge32: 230971320 iso.3.6.1.4.1.9.9.221.1.1.1.1.8.1.1 = Gauge32: 37464144 iso.3.6.1.4.1.9.9.221.1.1.1.1.17.1.1 = Gauge32: 0 iso.3.6.1.4.1.9.9.221.1.1.1.1.18.1.1 = Counter64: 230971312 iso.3.6.1.4.1.9.9.221.1.1.1.1.19.1.1 = Gauge32: 0 iso.3.6.1.4.1.9.9.221.1.1.1.1.20.1.1 = Counter64: 37464144
Per interpretarlo, è possibile usare l'output del comando show mem o show mem detail.
ASA1# ASA1# ASA1# ASA1# show mem Free memory: 37498488 bytes (14%) Used memory: 230936968 bytes (86%) ------------- ------------------ Total memory: 268435456 bytes (100%) ASA1# ASA1# ASA1# ASA1# show mem detail Free memory: 37498488 bytes (14%) Used memory: Allocated memory in use: 50581896 bytes (19%) Reserved memory: 180355072 bytes (67%) ----------------------------- ------------------ Total memory: 268435456 bytes (100%) Least free memory: 37463768 bytes (14%) Most used memory: 230971688 bytes (86%) !--- Some output excluded.
In questa sezione vengono descritti alcuni avvertimenti noti durante il polling delle statistiche della memoria tramite SNMP
Quando viene chiesto all'ASA di raccogliere le informazioni sulla memoria, il protocollo SNMP può cercare le informazioni provenienti da tre segmenti principali della memoria ASA, come elencato di seguito.
Pool di memoria di sistema
Pool MEMPOOL_DMA
Il pool MEMPOOL_GLOBAL_SHARED
Se le informazioni sul pool MEMPOOL_GLOBAL_SHARED vengono richieste tramite SNMP, si verificheranno problemi di CPU. È evidente che si potrebbero verificare perdite/sovraccarichi di pacchetti in momenti di traffico bursty/overload quando si utilizza il protocollo SNMP per eseguire il polling delle statistiche della memoria che richiedono all'ASA di eseguire una query sulle informazioni tramite enormi blocchi di memoria associati, il che produce hog della CPU correlati a SNMP. La CPU dell'ASA potrebbe essere trattenuta dal processo SNMP troppo a lungo prima di essere rilasciata ad altri processi. Se la velocità di trasferimento dei dati è sufficientemente elevata tramite l'ASA, i sovraccarichi sui contatori dell'interfaccia potrebbero aumentare e i pacchetti potrebbero essere scartati.
È applicabile sia alle piattaforme single-core che multi-core. È consigliabile non utilizzare i MIB del pool di memoria per eseguire il polling delle statistiche relative alla visualizzazione dei dettagli dei mem, ma utilizzare solo i MIB associati all'output show mem. È possibile eseguire il comando show mem detail dalla CLI per visualizzare i log della CPU.
In questa sezione vengono forniti messaggi di esempio relativi al bug della CPU provenienti da Cisco ASA.
Process: snmp, PROC_PC_TOTAL: 124, MAXHOG: 306, LASTHOG: 299 LASTHOG At: 12:00:24 EDT May 17 2013 PC: 0x000000000124fd5c (suspend) Process: snmp, NUMHOG: 124, MAXHOG: 306, LASTHOG: 299 LASTHOG At: 12:00:24 EDT May 17 2013 PC: 0x000000000124fd5c (suspend) Call stack: 0x000000000124fd5c 0x000000000124e72b 0x000000000124b5da 0x000000000124e3e7 0x0000000001228b9a 0x000000000122732a 0x0000000000423cc5 Process: snmp, PROC_PC_TOTAL: 248, MAXHOG: 306, LASTHOG: 298 LASTHOG At: 12:01:34 EDT May 17 2013 PC: 0x00000000013780cf (suspend) Process: snmp, NUMHOG: 248, MAXHOG: 306, LASTHOG: 298 LASTHOG At: 12:01:34 EDT May 17 2013 PC: 0x00000000013780cf (suspend) Call stack: 0x000000000124803b 0x00000000012289e5 0x000000000122732a 0x0000000000423cc5
Questi messaggi di errore potrebbero essere visualizzati anche su Cisco ASA.
[local5.warning] %ASA-4-711004: Task ran for 305 msec, Process = snmp, PC = 1250117, Call stack = 2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 305 msec, Process = snmp, PC = 1250117, Call stack = 0x0000000001250117 0x000000000124ea07 0x000000000124b5da 0x000000000124e3e7 0x0000000001228b9a 0x000000000122732a 0x0000000000423cc5 2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 354 msec, Process = snmp, PC = 1250117, Call stack = 2013-05-17T09:33:12-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 354 msec, Process = snmp, PC = 1250117, Call stack = 0x0000000001250117 0x000000000124ea07 0x000000000124b5da 0x000000000124e3e7 0x0000000001228b9a 0x000000000122732a 0x0000000000423cc5 2013-05-17T09:33:22-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 348 msec, Process = snmp, PC = 124fd5c, Call stack = 2013-05-17T09:33:22-04:00 CISCO-ASA-TEST(10.10.10.2) [local5.warning] %ASA-4-711004: Task ran for 348 msec, Process = snmp, PC = 124fd5c, Call stack = 0x000000000124fd5c 0x000000000124e72b 0x000000000124b5da 0x000000000124e3e7 0x0000000001228b9a 0x000000000122732a 0x0000000000423cc5 2013-05-17T09:36:17-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 300 msec, Process = snmp, PC = 13780cf, Call stack = 2013-05-17T09:36:17-04:00 CISCO-ASA-TEST(10.10.10.1) [local5.warning] %ASA-4-711004: Task ran for 300 msec, Process = snmp, PC = 13780cf, Call stack = 0x000000000124803b 0x00000000012289e5 0x000000000122732a 0x0000000000423cc5
Evitare il polling degli OID correlati a global_shared_mem_pool.
Eseguire lo snmpwalk per la piattaforma ASA e verificare se è in corso il polling degli OID relativi a global_shared_mem_pool.
snmpwalk -c public -v2c -Os <IP Address> 1.3.6.1.4.1.9.9.48
enterprises.9.9.48.1.1.1.2.1 = STRING: "System memory"
enterprises.9.9.48.1.1.1.2.6 = STRING: "MEMPOOL_DMA"
enterprises.9.9.48.1.1.1.2.7 = STRING: "MEMPOOL_GLOBAL_SHARED"
enterprises.9.9.48.1.1.1.3.1 = INTEGER: 0
enterprises.9.9.48.1.1.1.3.6 = INTEGER: 0
enterprises.9.9.48.1.1.1.3.7 = INTEGER: 0
enterprises.9.9.48.1.1.1.4.1 = INTEGER: 1
enterprises.9.9.48.1.1.1.4.6 = INTEGER: 1
enterprises.9.9.48.1.1.1.4.7 = INTEGER: 1
enterprises.9.9.48.1.1.1.5.1 = Gauge32: 804874736
enterprises.9.9.48.1.1.1.5.6 = Gauge32: 125674744
enterprises.9.9.48.1.1.1.5.7 = Gauge32: 153938632
enterprises.9.9.48.1.1.1.6.1 = Gauge32: 3490092567
enterprises.9.9.48.1.1.1.6.6 = Gauge32: 146135816
enterprises.9.9.48.1.1.1.6.7 = Gauge32: 3084064048
enterprises.9.9.48.1.1.1.7.1 = Gauge32: 3083999920
enterprises.9.9.48.1.1.1.7.6 = Gauge32: 146133824
enterprises.9.9.48.1.1.1.7.7 = Gauge32: 3083999920
Evitare di utilizzare enterprise.9.9.48.1.1.1.7, in quanto si tratta dell'OID per large_contiguous_memory. Inoltre, è opportuno evitare di utilizzare il file ENTERPRISES.9.9.48.1.1.X.7 in quanto relativo a MEMPOOL_GLOBAL_SHARED.
Durante il polling degli OID dalla famiglia, 9.9.48.1.1.1.x.y, verificare se "y" corrisponde a global_mempool; in caso affermativo, evitare di utilizzare tali OID per ridurre i blocchi della CPU SNMP. Questa "y" viene generata in modo dinamico e potrebbe essere diversa a seconda della piattaforma Cisco ASA.
Fare riferimento a CSCtx43501 per ulteriori informazioni.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
02-Aug-2013 |
Versione iniziale |