Contents

Introdução

Informações de Apoio

Informações gerais

MEMPOOL_HEAPCACHE_X

Entendendo os alertas de memória de cache de pilha

MEMPOOL_GLOBAL_SHARED

Contexto do alerta

MEMPOOL_DMA e MEMPOOL_DMA_ALT1

Visão geral dos pools de memória DMA

Uso de memória DMA

Comportamento de pools de memória DMA

Quando se preocupar?

Monitoramento de SNMP

Introdução

Este documento descreve a compreensão de vários componentes de memória no Adaptive Security Appliance (ASA)/Firepower Threat Defense (FTD).

Informações de Apoio

Se você receber notificações relacionadas à memória, este artigo determinará quando tomar medidas preventivas e quando desconsiderá-las. A sondagem do Protocolo de Gerenciamento de Rede Simples (SNMP) é normalmente usada para iniciar alarmes relacionados à memória. Esse SNMP usará o resultado do comando show memory detail para coletar dados e disparar os alertas.

Informações gerais

Neste artigo, os elementos de memória mencionados abaixo são discutidos

- MEMPOOL_HEAPCACHE_X

- MEMPOOL_GLOBAL_SHARED

- MEMPOOL_DMA e MEMPOOL_DMA_ALT1

MEMPOOL_HEAPCACHE_X

Entendendo os alertas de memória de cache de pilha

1. Comportamento de Alocação de Heapcache

- Heapcache é o pool preferencial para alocações de memória.

- Quando o pool de Heapcache estiver esgotado, mais alocações serão obtidas do pool compartilhado global.

- O pool global compartilhado em si extrai memória da memória do sistema conforme necessário.

2. Alertas de Memória Heapcache

- O recebimento de alertas de memória Heapcache é normal e não indica um problema.

- Espera-se alto uso da memória Heapcache porque é o primeiro pool alocado para uso.

3. Ponto-chave para monitorar

- Concentre-se no uso da memória do sistema.

- Se a memória do sistema for suficiente, você não precisa se preocupar com alertas para os pools MEMPOOL_HEAPCACHE_0 ou MEMPOOL_GLOBAL_SHARED.

- Monitore a memória do sistema usando suas ferramentas SNMP para verificar se há limites críticos ou degradação do desempenho.

4. Alertas e comportamento esperado

- O comportamento de reserva de memória é normal.

- O sistema reserva e aloca a memória dinamicamente conforme necessário.

- Você pode ignorar com segurança os alertas relacionados ao Heapcache ou aos pools compartilhados globais, a menos que a própria memória do sistema se torne criticamente alta.

MEMPOOL_GLOBAL_SHARED

- Manuseio de Memória Dinâmica

MEMPOOL_GLOBAL_SHARED não pré-aloca toda a memória no momento da inicialização. Em vez disso, ele solicita memória do sistema operacional sob demanda, conforme necessário.

- Liberação de memória

Quando uma grande quantidade de memória é liberada, MEMPOOL_GLOBAL_SHARED retorna a memória de volta ao sistema operacional.

- Crescimento elástico/redução

O tamanho de MEMPOOL_GLOBAL_SHARED se expande e contrai dinamicamente com base na carga de trabalho. Esse comportamento adaptável garante a utilização eficiente da memória.

- Cache mínimo para velocidade

Uma pequena quantidade de memória permanece alocada dentro de MEMPOOL_GLOBAL_SHARED para acelerar futuras solicitações de alocação de memória e evitar latência.

Contexto do alerta

Se este alerta for exibido, ele descreverá o comportamento esperado de MEMPOOL_GLOBAL_SHARED. Como cresce, encolhe e gerencia a memória dinamicamente, o comportamento é normal e não indica nenhum problema. Você pode ignorar esse alerta com segurança, a menos que problemas específicos de desempenho relacionados à memória sejam observados.

MEMPOOL_DMA e MEMPOOL_DMA_ALT1

Visão geral dos pools de memória DMA

O sistema de memória Direct Memory Access (DMA) no Cisco ASA/FTD consiste em dois pools de memória chave:

1. MEMPOOL_DMA

2. MEMPOOL_DMA_ALT1

Esses dois pools trabalham juntos para garantir uma disponibilidade de memória tranquila:

- MEMPOOL_DMA é o pool principal.

- MEMPOOL_DMA_ALT1 serve como um backup quando o pool primário se esgota.

Uso de memória DMA

O pool de memória DMA é usado principalmente para tarefas que exigem acesso a dados de alta velocidade e operações que consomem muita memória. Ele é comumente usado para recursos relacionados à VPN e outros processos, incluindo:

1. Serviços de rede virtual privada (VPN):

- IPSec (IKEv1/IKEv2)

- Proxy TLS (Transport Layer Security)

- WebVPN (AnyConnect/VPN sem cliente)

2. Serviços de segurança e registro:

- Sistema de prevenção contra invasões (IPS)

- Syslogging ("host de registro ...")

- Conexões Secure Shell (SSH)

3. Gerenciamento e outros serviços:

- Adaptive Security Device Manager (ASDM) (servidor ASA HTTPS)

- Servidor DHCP (Dynamic Host Configuration Protocol)

Comportamento de pools de memória DMA

1. Alocação de Tempo de Inicialização:

Na inicialização, o ASA aloca a memória DMA com base nos recursos ativados.

2. Uso de Memória Dinâmica:

- Processa a solicitação de memória do MEMPOOL_DMA quando necessário.

- Quando os processos são concluídos, a memória é devolvida ao pool livre (com um pequeno atraso).

3. Fallback para MEMPOOL_DMA_ALT1:

- Se o MEMPOOL_DMA for totalmente utilizado, o sistema será automaticamente iniciado usando MEMPOOL_DMA_ALT1.

- Isso garante a operação contínua sem interrupções relacionadas à memória.

Quando se preocupar?

- Se a utilização de MEMPOOL_DMA for alta (perto de 100%), não haverá nenhum problema imediato, contanto que MEMPOOL_DMA_ALT1 tenha memória suficiente.

- Se o MEMPOOL_DMA_ALT1 também começar a ser preenchido, ele sinaliza um problema de esgotamento de memória e requer investigação adicional.

- Ação exigida:

- Monitore o uso de MEMPOOL_DMA_ALT1.

- Se ambos os pools se aproximarem da utilização completa, investigue o uso de recursos, a atividade de registro e os processos que consomem muita memória.

se estiver observando problemas relacionados à memória High DMA, verifique:

Servidor HTTP: se o HTTP for configurado, ele alocará 4, 80, 1550, 2048 e 2560 blocos de bytes e resultará no uso de aproximadamente 7Mb de DMA. Tente desativar o acesso ao ASDM por enquanto.

Servidor de URL: Se estiver configurado, isso adicionará mais 81Kb de memória DMA.

Internet Key Exchange (IKE) e WebVPN: Ter qualquer forma de VPN habilitada extrairá memória do pool de memória DMA.

Se você estiver usando uma VPN, isso também poderá usar essa memória. Verifique a utilização da VPN para garantir que ela não exceda a capacidade da caixa.

Registro: O DMA usado para o registro em log é controlado pelo tamanho da fila e pelo número de hosts de registro em log.

#sh log de execução

não usar fila de registro 0

não use a fila de registro 8192

não configurar mais de um servidor de registro

não configurar quadros jumbo

Monitoramento de SNMP

As Bases de Informações de Gerenciamento (MIBs - Management Information Bases) mostradas são utilizadas para o monitoramento de memória SNMP.

Entendendo os valores de Counter64 nesses MIBs e como eles podem ser usados:

Valores de Counter64 em MIBs

1. MIB .1.3.6.1.4.1.9.9.221.1.1.1.1.18: - Este MIB representa o objeto cempMemPoolHCUsed, que é um contador de alta capacidade para o pool de memória usado. Fornece a quantidade de memória usada no pool, medida em bytes.

2. MIB .1.3.6.1.4.1.9.9.221.1.1.1.20: - Esse MIB representa o objeto cempMemPoolHCFree, que é um contador de alta capacidade para o pool de memória livre. Fornece a quantidade de memória livre no pool, medida em bytes.

Finalidade de MIBs específicos:

1. MEMPOOL_MSGLYR_HB: - Representa o pool de memória para a pulsação da camada de mensagem. É usado para monitorar a memória alocada para mensagens de pulsação no sistema.

2. MEMPOOL_MSGLYR: - Representa o pool de memória para a camada de mensagem. Isso é usado para monitorar a memória alocada para operações gerais da camada de mensagem no sistema.

3. MEMPOOL_HEAPCACHE_1: - Representa o pool de memória para o cache de heap 1. Isso é usado para monitorar a memória alocada para o primeiro cache de heap do sistema.

4. MEMPOOL_HEAPCACHE_0: - Representa o pool de memória para o cache de heap 0. Isso é usado para monitorar a memória alocada para o cache de heap primário no sistema.

5. MEMPOOL_DMA_ALT1: - Representa o pool de memória para DMA alternativo 1. Isso é usado para monitorar a memória alocada para as primeiras operações DMA alternativas no sistema.

6. MEMPOOL_DMA: - Representa o pool de memória para DMA. É usado para monitorar a memória alocada para operações DMA no sistema.

7. MEMPOOL_GLOBAL_SHARED: - Representa o pool de memória para a memória compartilhada global. É usado para monitorar a memória alocada para operações compartilhadas globalmente no sistema.