Introduction
Ce document décrit la compréhension de divers composants de mémoire dans l'appliance de sécurité adaptatif (ASA) / Firepower Threat Defense (FTD).
Informations générales
Si vous recevez des notifications relatives à la mémoire, cet article déterminera quand prendre des mesures préventives et quand les ignorer. L'interrogation SNMP (Simple Network Management Protocol) est généralement utilisée pour lancer des alarmes relatives à la mémoire. Ce protocole SNMP utilise le résultat de la commande show memory detail pour collecter des données et déclencher les alertes.
Informations générales
Dans cet article, les éléments de mémoire mentionnés ci-dessous sont abordés
- MEMPOOL_HEAPCACHE_X
- MEMPOOL_GLOBAL_SHARED
- MEMPOOL_DMA et MEMPOOL_DMA_ALT1
MEMPOOL_HEAPCACHE_X
Présentation des alertes Heapcache Memory
- Comportement d'allocation Heapcache
- Heapcache est le pool préféré pour les allocations de mémoire.
- Une fois le pool Heapcache épuisé, d'autres allocations sont prises à partir du pool partagé global.
- Le pool partagé global extrait lui-même la mémoire de la mémoire système selon les besoins.
- Alertes de mémoire Heapcache
- La réception d'alertes de mémoire Heapcache est normale et n'indique pas de problème.
- Une utilisation élevée de la mémoire Heapcache est attendue car il s'agit du premier pool alloué pour l'utilisation.
- Point clé du moniteur
- Concentrez-vous sur l'utilisation de la mémoire système.
- Si la mémoire système est suffisante, vous n'avez pas besoin de vous soucier des alertes pour les pools MEMPOOL_HEAPCACHE_0 ou MEMPOOL_GLOBAL_SHARED.
- Surveillez la mémoire système à l'aide de vos outils SNMP pour détecter les seuils critiques ou la dégradation des performances.
- Alertes et comportement attendu
- Le comportement de réservation de mémoire est normal.
- Le système réserve et alloue la mémoire dynamiquement selon les besoins.
- Vous pouvez ignorer en toute sécurité les alertes liées à Heapcache ou aux pools partagés globaux, sauf si la mémoire système elle-même devient critique.
MEMPOOL_GLOBAL_SHARED
- Gestion dynamique de la mémoire
MEMPOOL_GLOBAL_SHARED ne préalloue pas toute la mémoire au démarrage. Au lieu de cela, il demande de la mémoire au système d'exploitation à la demande si nécessaire.
- Libération De Mémoire
Lorsqu'une grande quantité de mémoire est libérée, MEMPOOL_GLOBAL_SHARED renvoie la mémoire au système d'exploitation.
- Croissance/retrait élastique
La taille de MEMPOOL_GLOBAL_SHARED se développe et se contracte dynamiquement en fonction de la charge de travail. Ce comportement adaptatif assure une utilisation efficace de la mémoire.
- Mémoire cache minimale pour la vitesse
Une petite quantité de mémoire reste allouée dans MEMPOOL_GLOBAL_SHARED pour accélérer les futures demandes d'allocation de mémoire et éviter la latence.
Contexte d'alerte
Si cette alerte s'affiche, elle décrit le comportement attendu de MEMPOOL_GLOBAL_SHARED. Comme il augmente, réduit et gère la mémoire de manière dynamique, le comportement est normal et n'indique aucun problème. Vous pouvez ignorer cette alerte en toute sécurité, sauf si des problèmes de performances spécifiques liés à la mémoire sont observés.
MEMPOOL_DMA et MEMPOOL_DMA_ALT1
Présentation des pools de mémoire DMA
Le système de mémoire DMA (Direct Memory Access) de Cisco ASA/FTD se compose de deux pools de mémoire clés :
- MEMPOOL_DMA
- MEMPOOL_DMA_ALT1
Ces deux pools fonctionnent ensemble afin d'assurer une disponibilité de mémoire fluide :
Utilisation de la mémoire DMA
Le pool de mémoire DMA est principalement utilisé pour les tâches nécessitant un accès aux données à haut débit et des opérations gourmandes en mémoire. Il est couramment utilisé pour les fonctionnalités VPN et d'autres processus, notamment :
- Services de réseau privé virtuel (VPN) :
- Services de sécurité et de journalisation :
- Système de prévention des intrusions (IPS)
- Syslogging ("logging host ...")
- Connexions SSH (Secure Shell)
-
Gestion et autres services :
Comportement des pools de mémoire DMA
- Allocation du temps de démarrage :
Au démarrage, l'ASA alloue la mémoire DMA en fonction des fonctionnalités activées.
- Utilisation dynamique de la mémoire :
-
Traite la requête de mémoire de MEMPOOL_DMA si nécessaire.
-
Lorsque les processus sont terminés, la mémoire est renvoyée au pool libre (avec un léger retard).
- Retour à MEMPOOL_DMA_ALT1 :
-
Si MEMPOOL_DMA devient complètement utilisé, le système commence automatiquement à utiliser MEMPOOL_DMA_ALT1.
-
Ceci assure un fonctionnement continu sans interruptions liées à la mémoire.
Quand s'inquiéter ?
-
Si l'utilisation de MEMPOOL_DMA est élevée (près de 100%), il n'y a aucun problème immédiat tant que MEMPOOL_DMA_ALT1 a suffisamment de mémoire.
-
Si MEMPOOL_DMA_ALT1 commence également à se remplir, il signale un problème d'épuisement de la mémoire et nécessite une étude plus approfondie.
- Mesure à prendre:
-
Surveillez l'utilisation de MEMPOOL_DMA_ALT1.
-
Si les deux pools approchent de l'utilisation complète, examinez l'utilisation des fonctionnalités, l'activité de journalisation et les processus gourmands en mémoire.
si vous observez des problèmes liés à la mémoire DMA élevée, vérifiez les points suivants :
Serveur HTTP : si le protocole HTTP est configuré, il allouera 4, 80, 1550, 2048 et 2560 blocs d'octets, ce qui entraînera l'utilisation d'environ 7 Mo de DMA. Essayez de désactiver l'accès ASDM pour le moment.
Serveur URL : S'il est configuré, cela ajoutera 81 Ko de mémoire DMA.
Internet Key Exchange (IKE) et WebVPN : Si une forme quelconque de VPN est activée, la mémoire sera retirée du pool de mémoire DMA.
Si vous utilisez un VPN, cela pourrait également utiliser cette mémoire. Vérifiez l'utilisation du VPN afin de vous assurer qu'elle ne dépasse pas la capacité du module.
Journalisation: Le DMA utilisé pour la journalisation est régi par la taille de la file d'attente et le nombre d'hôtes de journalisation.
#sh run log
n'utilisez pas logging queue 0
n'utilisez pas logging queue 8192
ne configurez pas plus d'un serveur de journalisation
ne configurez pas les trames jumbo
Surveillance SNMP
Les bases MIB (Management Information Bases) indiquées sont utilisées pour la surveillance de la mémoire SNMP.
Comprendre les valeurs Counter64 dans ces MIB et comment on peut les utiliser :
Valeurs Counter64 dans les MIB
- MIB .1.3.6.1.4.1.9.9.221.1.1.1.18 : - Cette MIB représente l'objet cempMemPoolHCUsed, qui est un compteur à haute capacité pour le pool de mémoire utilisé. Elle indique la quantité de mémoire utilisée dans le pool, exprimée en octets.
- MIB .1.3.6.1.4.1.9.9.221.1.1.1.20 : - Cette MIB représente l'objet cempMemPoolHCFree, qui est un compteur de haute capacité pour le pool de mémoire libre. Il fournit la quantité de mémoire libre dans le pool, mesurée en octets.
Objectif des MIB spécifiques :
- MEMPOOL_MSGLYR_HB : - Représente le pool de mémoire pour la pulsation de la couche de messages. Elle permet de surveiller la mémoire allouée aux messages de pulsation dans le système.
- MEMPOOL_MSGLYR : - Représente le pool de mémoire pour la couche messages. Elle permet de surveiller la mémoire allouée aux opérations générales de la couche de messages dans le système.
- MEMPOOL_HEAPCACHE_1 : - Représente le pool de mémoire pour le cache de segment de mémoire 1. Il est utilisé pour surveiller la mémoire allouée au premier cache de segment de mémoire du système.
- MEMPOOL_HEAPCACHE_0 : - Représente le pool de mémoire pour le cache de segment de mémoire 0. Il est utilisé pour surveiller la mémoire allouée au cache de segment de mémoire principal dans le système.
- MEMPOOL_DMA_ALT1 : - Représente le pool de mémoire de l'autre DMA 1. Il est utilisé pour surveiller la mémoire allouée aux premières opérations DMA alternatives dans le système.
- MEMPOOL_DMA : - Représente le pool de mémoire pour DMA. Elle permet de surveiller la mémoire allouée aux opérations DMA dans le système.
- MEMPOOL_GLOBAL_SHARED : - Représente le pool de mémoire pour la mémoire partagée globale. Elle permet de surveiller la mémoire allouée aux opérations partagées globalement dans le système.