Sommario

Introduzione

Prerequisiti

Requisiti

Componenti usati

Premesse

Output sottoposto a polling SNMP

Avvertenze note

Hog CPU per SNMP

Riduzione

Informazioni correlate

Introduzione

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.

Prerequisiti

Requisiti

Nessun requisito specifico previsto per questo documento.

Componenti usati

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.

Premesse

È 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

Output sottoposto a polling SNMP

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.

Avvertenze note

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.

1. Pool di memoria di sistema

2. Pool MEMPOOL_DMA

3. 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.

Hog CPU per SNMP

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

Riduzione

1. Evitare il polling degli OID correlati a global_shared_mem_pool.

2. 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.

Informazioni correlate

- Documentazione e supporto tecnico – Cisco Systems