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
- 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.
- 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.
- 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.
- 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:
- MEMPOOL_DMA
- MEMPOOL_DMA_ALT1
Esses dois pools trabalham juntos para garantir uma disponibilidade de memória tranquila:
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:
- Serviços de rede virtual privada (VPN):
- Serviços de segurança e registro:
- Sistema de prevenção contra invasões (IPS)
- Syslogging ("host de registro ...")
- Conexões Secure Shell (SSH)
-
Gerenciamento e outros serviços:
Comportamento de pools de memória DMA
- Alocação de Tempo de Inicialização:
Na inicialização, o ASA aloca a memória DMA com base nos recursos ativados.
- 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).
- 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
- 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.
- 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:
- 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.
- 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.
- 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.
- 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.
- 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.
- MEMPOOL_DMA: - Representa o pool de memória para DMA. É usado para monitorar a memória alocada para operações DMA no sistema.
- 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.