Introduzione
Questo documento descrive la comprensione di vari componenti della memoria in Adaptive Security Appliance (ASA)/ Firepower Threat Defense (FTD).
Premesse
Se si ricevono notifiche relative alla memoria, in questo articolo verrà determinato quando adottare misure preventive e quando ignorarle. Il polling SNMP (Simple Network Management Protocol) viene in genere utilizzato per avviare gli allarmi relativi alla memoria. Questo SNMP utilizzerà il risultato del comando show memory detail per raccogliere dati e attivare gli allarmi.
Informazioni generali
In questo articolo, vengono illustrati gli elementi di memoria riportati di seguito
- MEMPOOL_HEAPCACHE_X
- CONDIVISIONE_GLOBALE_MEMPOOL
- MEMPOOL_DMA e MEMPOOL_DMA_ALT1
MEMPOOL_HEAPCACHE_X
Informazioni sugli avvisi della memoria Heapcache
- Comportamento allocazione Heapcache
- Heapcache è il pool preferito per le allocazioni di memoria.
- Una volta esaurito il pool Heapcache, ulteriori allocazioni vengono prelevate dal pool condiviso globale.
- Lo shared pool globale estrae la memoria dalla memoria di sistema in base alle esigenze.
- Avvisi memoria heapcache
- La ricezione di avvisi della memoria Heapcache è normale e non indica problemi.
- È previsto un utilizzo elevato della memoria Heapcache perché è il primo pool allocato per l'utilizzo.
- Punto chiave per il monitoraggio
- Attenzione all'utilizzo della memoria di sistema.
- Se la memoria di sistema è sufficiente, non è necessario preoccuparsi degli avvisi per i pool MEMPOOL_HEAPCACHE_0 o MEMPOOL_GLOBAL_SHARED.
- Monitoraggio della memoria di sistema tramite gli strumenti SNMP per rilevare eventuali soglie critiche o riduzioni delle prestazioni.
- Avvisi e comportamento previsto
- Il comportamento di prenotazione della memoria è normale.
- Il sistema riserva e alloca la memoria dinamicamente in base alle necessità.
- È possibile ignorare gli avvisi relativi a Heapcache o ai pool condivisi globali in modo sicuro a meno che la memoria di sistema non diventi troppo alta.
CONDIVISIONE_GLOBALE_MEMPOOL
- Gestione della memoria dinamica
MEMPOOL_GLOBAL_SHARED non prealloca tutta la memoria all'avvio. Richiede invece memoria dal sistema operativo su richiesta, se necessario.
- Release della memoria
Quando viene liberata una grande quantità di memoria, MEMPOOL_GLOBAL_SHARED restituisce la memoria al sistema operativo.
- Crescita/contrazione elastica
La dimensione di MEMPOOL_GLOBAL_SHARED si espande e si contrae in modo dinamico in base al carico di lavoro. Questo comportamento adattivo garantisce un utilizzo efficiente della memoria.
- Cache minima per la velocità
Una piccola quantità di memoria rimane allocata all'interno di MEMPOOL_GLOBAL_SHARED per accelerare le future richieste di allocazione della memoria ed evitare la latenza.
Contesto avviso
Se viene visualizzato questo avviso, viene descritto il comportamento previsto di MEMPOOL_GLOBAL_SHARED. Poiché la memoria cresce, si restringe e la gestisce in modo dinamico, il comportamento è normale e non indica problemi. È possibile ignorare questo avviso senza problemi, a meno che non vengano rilevati problemi di prestazioni specifici relativi alla memoria.
MEMPOOL_DMA e MEMPOOL_DMA_ALT1
Panoramica dei pool di memoria DMA
Il sistema di memoria DMA (Direct Memory Access) in Cisco ASA/FTD è composto da due pool di memoria chiave:
- MEMPOOL_DMA
- MEMPOOL_DMA_ALT1
Questi due pool funzionano insieme per garantire una disponibilità della memoria senza problemi:
Utilizzo della memoria DMA
Il pool di memoria DMA viene utilizzato principalmente per attività che richiedono accesso ai dati ad alta velocità e operazioni che richiedono un uso intensivo della memoria. Viene comunemente utilizzato per funzionalità correlate alla VPN e altri processi, tra cui:
- Servizi VPN (Virtual Private Network):
- Servizi di sicurezza e registrazione:
- IPS (Intrusion Prevention System)
- Syslogging ("host di logging ...")
- Connessioni SSH (Secure Shell)
-
Gestione e altri servizi:
Comportamento dei pool di memoria DMA
- Allocazione del tempo di avvio:
All'avvio, l'ASA alloca la memoria DMA in base alle funzionalità abilitate.
- Uso memoria dinamica:
-
Elabora la richiesta di memoria da MEMPOOL_DMA quando necessario.
-
Al termine dei processi, la memoria viene restituita al pool libero (con un lieve ritardo).
- Fallback a MEMPOOL_DMA_ALT1:
-
Se MEMPOOL_DMA è completamente utilizzato, il sistema si avvia automaticamente utilizzando MEMPOOL_DMA_ALT1.
-
Ciò garantisce il funzionamento continuo senza interruzioni relative alla memoria.
Quando essere preoccupati?
-
Se l'utilizzo di MEMPOOL_DMA è elevato (quasi al 100%), non si verifica alcun problema immediato purché MEMPOOL_DMA_ALT1 disponga di memoria sufficiente.
-
Se anche MEMPOOL_DMA_ALT1 inizia a riempirsi, segnala un problema di esaurimento della memoria e richiede ulteriori indagini.
- Azione richiesta:
-
Monitorare l'utilizzo di MEMPOOL_DMA_ALT1.
-
Se entrambi i pool si avvicinano al pieno utilizzo, esaminare l'utilizzo delle funzionalità, l'attività di registrazione e i processi che richiedono molta memoria.
se si riscontrano problemi relativi alla memoria DMA elevata, controllare quanto segue:
Server HTTP: se è configurato, il protocollo HTTP alloca 4, 80, 1550, 2048 e 2560 blocchi di byte, consentendo l'utilizzo di circa 7 MB di DMA. Provare a disabilitare l'accesso ASDM.
Server URL: Se è configurata, si aggiungeranno altri 81 Kb di memoria DMA.
IKE (Internet Key Exchange) e WebVPN: Se è abilitata qualsiasi forma di VPN, la memoria verrà rimossa dal pool di memoria DMA.
Se si utilizza una VPN, anche questa memoria potrebbe essere utilizzata. Controllare l'utilizzo della VPN per verificare che non superi la capacità della confezione.
Registrazione: Il DMA utilizzato per la registrazione dipende dalle dimensioni della coda e dal numero di host di registrazione.
log di esecuzione #sh
non utilizzare la coda di registrazione 0
non utilizzare la coda di registrazione 8192
non configurare più di un server di registrazione
non configurare frame jumbo
Monitoraggio SNMP
I MIB (Management Information Base) mostrati vengono utilizzati per il monitoraggio della memoria SNMP.
Informazioni sui valori di Counter64 in questi MIB e su come utilizzarli:
Valori Counter64 in MIB
- MIB 1.3.6.1.4.1.9.9.221.1.1.1.1.18: - Questo MIB rappresenta l'oggetto cempMemPoolHCUsed, che è un contatore ad alta capacità per il pool di memoria utilizzato. Fornisce la quantità di memoria utilizzata nel pool, misurata in byte.
- MIB 1.3.6.1.4.1.9.9.221.1.1.1.20: - Questo MIB rappresenta l'oggetto cempMemPoolHCFree, che è un contatore ad alta capacità per il pool di memoria disponibile. Fornisce la quantità di memoria libera nel pool, misurata in byte.
Scopo dei MIB specifici:
- MEMPOOL_MSGLYR_HB: - Rappresenta il pool di memoria per l'heartbeat del livello messaggio. Questa opzione viene utilizzata per monitorare la memoria allocata per i messaggi heartbeat nel sistema.
- MEMPOOL_MSGLYR: - Rappresenta il pool di memoria per il livello messaggi. Questa opzione viene utilizzata per monitorare la memoria allocata per le operazioni generali a livello di messaggio nel sistema.
- MEMPOOL_HEAPCACHE_1: - Rappresenta il pool di memoria per la cache heap 1. Viene utilizzato per monitorare la memoria allocata per la prima cache heap nel sistema.
- MEMPOOL_HEAPCACHE_0: - Rappresenta il pool di memoria per la cache heap 0. Viene utilizzato per monitorare la memoria allocata per la cache heap primaria nel sistema.
- MEMPOOL_DMA_ALT1: - Rappresenta il pool di memoria per l'alternativa DMA 1. Viene utilizzato per monitorare la memoria allocata per le prime operazioni DMA alternative nel sistema.
- MEMPOOL_DMA: - Rappresenta il pool di memoria per DMA. Questa opzione viene utilizzata per monitorare la memoria allocata per le operazioni DMA nel sistema.
- CONDIVISIONE_GLOBALE_MEMPOOL: - Rappresenta il pool di memoria per la memoria condivisa globale. Questa opzione viene utilizzata per monitorare la memoria allocata per le operazioni condivise a livello globale nel sistema.