Contents

Introduction

Prerequisites

Requirements

Componentes Utilizados

Conventions

Qual é a falha de alocação de memória?

Sintomas

Erro "Não é possível criar EXEC" ou quando o console não responde

Entender a mensagem de erro

Possíveis causas

Na memória do processador ("processador de conjunto" em todas as plataformas).

Na memória de pacote ("E/S" ou " Processador" em roteadores de ponta, "PCI" no 7200 Series e placas VIP)

Troubleshoot

Problema relacionado à segurança

O tamanho da memória não suporta a imagem do Cisco IOS Software

Erro de vazamento de memória

O processo *Dead*

Grande quantidade de memória utilizada para processos normais ou anormais

Problema ou bug de fragmentação de memória

Falha de Alocação de Memória no Processo = Nível de Interrupção

Redução da memória devido ao download por listas de acesso do usuário

Problemas conhecidos

Problema 70x0 Conhecido Quando o Cisco IOS Software Grande é Carregado do Flash ou do Netboot

Entrada de IP e CiscoWorks UT Discovery

Sem memória compartilhada suficiente para as interfaces

Erro de vazamento de buffer

O roteador está com pouca memória rápida

IPFAST-4-RADIXDELETE: erro ao tentar excluir entrada de prefixo [IP_address]/[dec] (esperado [hex], obtido [hex])

%SYS-2-CHUNKEXPANDFAIL: não foi possível expandir o pool de partes para Bitmap TACL. Memória indisponível

Summary

Falhas de alocação de memória do “processador” de conjunto

Falhas de Alocação de Conjunto de Memória de "E/S" ("Processador" em roteadores de ponta, "PCI" no 7200 Series)

Informações Relacionadas

Introduction

Este documento descreve os sintomas e as possíveis causas de falha de alocação de memória (MALLOCFAIL) e detalhes sobre como corrigir esses problemas.

Prerequisites

Requirements

Não existem requisitos específicos para este documento.

Componentes Utilizados

As informações neste documento são baseadas nestas versões de software e hardware:

- Todas as versões de software Cisco IOS®

- Todos os Cisco Routers

Observação: este documento não se aplica aos switches Cisco Catalyst que utilizam plataformas CatOS ou MGX.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. Se a rede estiver ativa, certifique-se de que você entenda o impacto potencial de qualquer comando.

Conventions

Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos.

Qual é a falha de alocação de memória?

Falha de alocação de memória significa:

- O roteador usou toda a memória disponível (permanente ou temporariamente) ou

- A memória foi fragmentada em partes tão pequenas que o roteador não consegue encontrar um bloco disponível que possa ser utilizado. Isso pode acontecer com a memória do processador (usada pelo Cisco Internet Operating System [Cisco IOS]) ou com a memória do pacote (usada pelos pacotes de entrada e saída).

Sintomas

Os sintomas de falha na alocação de memória incluem, mas não se limitam a:

- O console ou mensagem de log: "%SYS-2-MALLOCFAIL: Falha na alocação de memória de 1028 bytes de 0x6015EC84, Processador de Pool, alinhamento 0"

- Sessões Telnet recusadas

- O comando show processor memory é exibido independentemente do comando que você digita em um console

- Nenhuma saída de alguns comandos show

- Mensagens de "memória insuficiente"

- A mensagem do console "Unable to create EXEC - no memory or too many processes" (Não foi possível criar EXEC - sem memória ou muitos processos)

- Suspensão do roteador, sem resposta do console.

Erro "Não é possível criar EXEC" ou quando o console não responde

Quando um roteador está com pouca memória, em alguns casos não é possível executar telnet para o roteador. Neste ponto, é importante obter acesso à porta de console para coletar dados para a solução de problemas. No entanto, quando você se conecta à porta de console, pode ver isso:

%% Unable to create EXEC - no memory or too many processes

Se você vir a mensagem anterior, não haverá memória suficiente para permitir uma conexão de console. Há etapas que você pode executar para permitir a captura de dados através do console. Se você ajudar o roteador a liberar memória, o console poderá responder e você poderá capturar os dados necessários do roteador para solucionar problemas.

Observação: se o Border Gateway Protocol (BGP) estiver configurado no roteador, você poderá consultar Alcançar o Roteamento Ideal e Reduzir o Consumo de Memória BGP para reduzir o consumo de memória relacionado a esse processo.

Estas são as etapas a serem tentadas para capturar dados quando a porta de console estiver sob condições de memória muito baixa:

1. Desconecte os cabos LAN e WAN das interfaces no roteador. Isso pode fazer com que o roteador pare de transmitir pacotes.

2. Verifique o console novamente. Você consegue obter uma resposta e executar comandos? Depois de alguns instantes, deve haver memória suficiente disponível para permitir que o console responda.

3. Colete as informações necessárias no modo EXEC privilegiado (Router#). No mínimo, você deseja coletar a saída completa desses comandos: show memory allocating-process totals (ou show memory summary se show memory allocating-process totals não estiver disponível), show logging e, se possível, show technical-support .

4. Depois de coletar os dados necessários, reconecte todos os links de LAN e WAN e continue a monitorar o uso de memória do roteador.

Entender a mensagem de erro

Ao executar um comando show logging, você deve ver algo como:

%SYS-2-MALLOCFAIL: Memory allocation of [X] bytes failed from

0x6015EC84, pool [Pool], alignment 0 -Process=

"[Process]" ipl= 6, pid=5

[X] = quantidade de bytes que o roteador tentou alocar, mas não conseguiu encontrar memória livre suficiente para tanto

[Pool] indica se a memória do processador (' Pool Processor ') ou a memória do pacote (' pool I/O ') é afetada. Os roteadores de ponta (séries 7000 e 7500) têm seus buffers na memória dinâmica de acesso aleatório (DRAM) principal, de modo que a falta de memória de pacotes pode ser reportada como "processador de conjunto". As placas da série 7200 e VIP (Versatile Interface Processor) também podem relatar erros nas Informações de Controle de Protocolo (' pool PCI ')" da memória do pacote.

[Processo] é o processo que foi afetado pela falta de memória.

Possíveis causas

Na memória do processador ("processador de conjunto" em todas as plataformas).

O tamanho da memória não suporta a imagem do Cisco IOS Software

Erro de vazamento de memória

Grande quantidade de memória utilizada para processos normais ou anormais

Problema ou bug de fragmentação de memória

Falha na alocação de memória no processo = <nível de interrupção>

Problemas conhecidos

Problema conhecido de 70x0 ao carregar o software Cisco IOS de grande porte a partir do Flash ou Netboot

Entrada de IP e CiscoWorks UT Discovery

Na memória de pacote ("E/S" ou " Processador" em roteadores de ponta, "PCI" no 7200 Series e placas VIP)

Sem memória compartilhada suficiente para as interfaces

Erro de vazamento de buffer

Roteador com baixa execução na memória rápida

Troubleshoot

Problema relacionado à segurança

Geralmente, os erros de MALLOCFAIL são causados por um problema de segurança, como um worm ou vírus que opera em sua rede. Essa é a causa mais provável se não houve alterações recentes na rede, como uma atualização do Cisco IOS do roteador. Geralmente, uma alteração de configuração, como se você adicionasse linhas adicionais às suas listas de acesso, pode atenuar os efeitos desse problema. A página Avisos e avisos de segurança de produtos da Cisco contém informações sobre a detecção das causas mais prováveis e soluções específicas.

Para obter informações adicionais, consulte:

- 100 perguntas e respostas sobre ameaças da Internet

- Controle a ameaças da Cisco

O tamanho da memória não suporta a imagem do Cisco IOS Software

Primeiro, verifique a Área de Download do Software para obter o tamanho mínimo de memória para o conjunto de recursos e a versão que você executa. Certifique-se de que seja suficiente. Os requisitos de memória em Cisco.com são os tamanhos mínimos recomendados para o funcionamento correto do roteador na maioria das redes corporativas. Os requisitos reais de memória variam com base em protocolos, tabelas de roteamento e padrões de tráfego.

Observação: somente usuários registrados da Cisco têm acesso a informações e ferramentas internas da Cisco.

Erro de vazamento de memória

Se você tiver a saída de um comando show memory allocating-process totals, um comando show memory summary ou show technical-support (no modo de ativação) do dispositivo Cisco, poderá usar o Output Interpreter para exibir problemas e correções potenciais.

Observação: somente usuários registrados da Cisco têm acesso a informações e ferramentas internas da Cisco.

Um vazamento de memória ocorre quando um processo solicita ou aloca memória e, em seguida, esquece de liberar (desalocar) a memória quando termina essa tarefa. Como resultado, o bloco de memória fica reservado até o roteador ser recarregado. Com o tempo, mais e mais blocos de memória são alocados por esse processo até que não haja memória livre disponível. Com base na gravidade da situação de memória baixa neste ponto, a única opção é recarregar o roteador para torná-lo operacional novamente.

Este é um bug do Cisco Internet Operating System (Cisco IOS). Para se livrar dele, atualize para a versão mais recente em seu treinamento de versão, por exemplo, se você executar o Cisco IOS Software Release 11.2(14), atualize para a imagem mais recente do 11.2(x).

Se isso não resolver o problema, ou se você não quiser fazer upgrade do roteador, insira o comando show processes memory em intervalos regulares durante um período de tempo (por exemplo, a cada poucas horas ou dias, com base no fato de haver um vazamento rápido ou lento). Verifique se a memória livre continua a diminuir e nunca é retornada. A taxa na qual a memória livre desaparece depende da freqüência com que o evento ocorre que leva ao vazamento. Como a memória nunca é liberada, você pode rastrear o processo que usa a memória se tirar instantâneos da memória ao longo do tempo. Tenha em mente que diferentes processos alocam e desalocam memória conforme necessário, para que você possa ver as diferenças, mas à medida que o vazamento continua, você deve ver um processo que continuamente consome mais memória.

Observação: é normal para alguns processos, como o Border Gateway Protocol (BGP) ou o roteador Open Shortest Path First (OSPF), usar mais de um megabyte de memória; isso não significa que eles estejam vazando.

Para identificar o processo que consome mais memória, compare a coluna Holding do comando show processes memory durante o intervalo de tempo. Às vezes, você pode ver claramente que um processo está mantendo vários megabytes de memória. Às vezes são necessários vários snapshots para localizar o culprit. Quando uma quantidade significativa de memória tiver sido perdida, colete um comando show memory allocating-process totals ou show memory summary para Troubleshooting adicional. Em seguida, entre em contato com o Cisco Technical Assistance Center (TAC) e forneça as informações coletadas, juntamente com um resumo do show technical-support do roteador.

A ferramenta Output Interpreter permite que você receba uma análise do comando show memory allocating-process totals ou da saída de show memory summary .

Observação: somente usuários registrados da Cisco têm acesso a informações e ferramentas internas da Cisco.

A tabela fornece as três primeiras linhas da saída do comando show memory summary:

Router>show memory summary

Head       Total (b)   Used (b)  Free (b)   Lowest (b)  Largest (b)

Processor   60AB4ED0   5550384     2082996   3467388    3464996     3454608

I/O         40000000   16777216    1937280   14839936   14839936    14838908

Total = a quantidade total de memória disponível após a imagem do sistema ser carregada e criar suas estruturas de dados.

Used = a quantidade de memória atualmente alocada.

Free = a quantidade de memória atualmente livre.

Lowest = a menor quantidade de memória livre registrada pelo roteador desde a última inicialização.

Largest = o maior bloco de memória livre atualmente disponível.

O comando show memory allocating-process totals contém as mesmas informações que as três primeiras linhas do comando show memory summary.

Eis o que você pode saber sobre a saída do comando show processes memory:

Router>show processes memory

Total: 3149760, Used: 2334300, Free: 815460

PID   TTY   Allocated    Freed      Holding    Getbufs    Retbufs   Process

0     0     226548       1252       1804376    0          0         *Initialization*

0     0     320          5422288    320        0          0         *Scheduler*

0     0     5663692      2173356    0          1856100    0         *Dead*

1     0     264          264        3784       0          0         Load Meter

2     2     5700         5372       13124      0          0         Virtual Exec

3     0     0            0          6784       0          0         Check heaps

4     0     96           0          6880       0          0         Pool Manager

5     0     264          264        6784       0          0         Timers

6     0     2028         672        8812       0          0         ARP Input

7     0     96           0          6880       0          0         SERIAL A' detect

8     0     504          264        7024       0          0         ATM ILMI Input

9     0     0            0          6784       0          0         ILMI Process

10    0     136          0          6920       0          0         M32_runts pring

11    0     136          0          6920       0          0         Call drop procs

12    0     340          340        12784      0          0         ATMSIG Timer

13    0     445664       442936     13904      0          0         IP Input

14    0     2365804      2357152    17992      0          0         CDP Protocol

15    0     528          264        7048       0          0         MOP Protocols

16    0     188          0          9972       0          0         IP Background

17    0     0            1608       6784       0          0         TCP Timer

18    0     5852116      0          14236      0          0         TCP Protocols

Alocado = a quantidade total de bytes que foram alocados pelo processo desde que o roteador foi inicializado.

Liberados = a quantidade total de bytes que foram liberados por esse processo.

Holding = a quantidade total de bytes atualmente retidos por esse processo. Esta é a coluna mais importante para Troubleshooting, já que ela mostra a quantidade real de memória atribuída a este processo. A espera é necessariamente igual ao Alocado menos o Liberado porque alguns processos alocam um bloco de memória que é depois devolvido para o pool livre por outro processo.

O processo *Dead*

O processo *dead* não é um processo real. Ele está lá para contabilizar a memória alocada sob o contexto de outro processo que foi encerrado. A memória alocada para esse processo é recuperada pelo kernel e retornada ao pool de memória pelo próprio roteador quando necessário. É assim que o Cisco IOS trata a memória. Um bloco de memória é considerado inativo se o processo que criou o bloco sair (não estiver mais em execução). Cada bloco rastreia o endereço e o pid do processo que o criou. Durante a contagem periódica da memória, se o processo que o agendador descobre a partir de um bloco pid não corresponder ao processo que o bloco lembrou, o bloco é marcado como inativo.

Portanto, a memória marcada como pertencente ao processo *Dead* foi alocada sob o controle de um processo que não é mais executado. É normal ter um pedaço significativo de memória em tal estado. Aqui está um exemplo:

A memória é alocada quando a Network Address Translation (NAT) é configurada em uma sessão Telnet. Essa memória é contabilizada no processo Telnet ("Virtual Exec"). Uma vez que esse processo é terminado, a memória para a configuração NAT ainda está em uso. Isso é mostrado com o processo *dead*.

Você pode ver em que contexto a memória foi alocada com o comando show memory dead , na coluna "O quê":

Router#show memory dead

Head   Total(b)    Used(b)    Free(b)  Lowest(b) Largest(b)

I/O    600000    2097152     461024    1636128    1635224    1635960

Processor memory

Address  Bytes Prev.    Next     Ref  PrevF   NextF   Alloc PC  What

1D8310       60 1D82C8   1D8378     1                  3281FFE   Router Init

2CA964       36 2CA914   2CA9B4     1                  3281FFE   Router Init

2CAA04      112 2CA9B4   2CAAA0     1                  3A42144   OSPF Stub LSA RBTree

2CAAA0       68 2CAA04   2CAB10     1                  3A420D4   Router Init

2ED714       52 2ED668   2ED774     1                  3381C84   Router Init

2F12AC       44 2F124C   2F1304     1                  3A50234   Router Init

2F1304       24 2F12AC   2F1348     1                  3A420D4   Router Init

2F1348       68 2F1304   2F13B8     1                  3381C84   Router Init

300C28      340 300A14   300DA8     1                  3381B42   Router Init

Se um vazamento de memória for detectado e o processo *Dead* parecer ser o que consome a memória, inclua um show memory dead nas informações fornecidas ao TAC da Cisco.

Grande quantidade de memória utilizada para processos normais ou anormais

Essa é uma das causas mais difíceis de serem verificadas. O problema é caracterizado por uma grande quantidade de memória livre, mau um pequeno valor na coluna "Menor". Nesse caso, um evento normal ou anormal (por exemplo, uma grande instabilidade de roteamento) faz com que o roteador use, de modo incomum, uma grande quantidade de memória do processador em um curto período de tempo, durante o qual ocorre uma falta de memória. Durante esse período, o roteador relata um MALLOCFAIL. Pode acontecer que, logo depois, a memória seja liberada e o problema desapareça (por exemplo, a rede se estabilize). A falta de memória também pode ocorrer devido a uma combinação de fatores, como:

- um vazamento da memória que consumiu um grande volume de memória e, em seguida, uma instabilidade da rede reduzirão a memória livre a zero

- o roteador não possui memória suficiente para começar, mas o problema é descoberto somente durante um raro evento de rede.

Se o roteador não foi reinicializado, insira o comando show memory allocating-process totals (ou o comando show memory summary se show memory allocating-process totals  não está disponível) e observe as três primeiras linhas. As mensagens de registro podem fornecer pistas sobre qual processo consumiu muita memória:

Se o uso grande de memória foi devido a:

- evento normal, a solução é instalar mais memória.

- evento raro ou anormal, corrija o problema relacionado. Você pode então decidir comprar memória extra para "seguro" futuro.

Problema ou bug de fragmentação de memória

Essa situação significa que um processo consumiu uma grande quantidade de memória do processador e, em seguida, liberou a maior parte ou toda ela e deixa fragmentos de memória ainda alocados por esse processo ou por outros processos que alocaram memória durante o problema. Se o mesmo evento ocorrer várias vezes, a memória poderá se fragmentar em blocos muito pequenos, até o ponto em que todos os processos que requerem um bloco maior de memória não possam obter a quantidade de memória necessária. Isso pode afetar a operação do roteador ao ponto de você não conseguir se conectar ao roteador e receber um prompt se a memória estiver muito fragmentada.

Esse problema é caracterizado por um valor baixo na coluna "Largest" (abaixo de 20.000 bytes) do show memory , mas com um valor suficiente na coluna "Liberado" (1MB ou mais) ou com alguma outra grande disparidade entre as duas colunas. Isso pode acontecer quando o roteador fica com pouca memória, já que não há rotina de fragmentação no Cisco IOS.

Se suspeitar de fragmentação da memória, encerre algumas interfaces. Isso pode liberar os blocos fragmentados. Se isso funcionar, a memória se comporta normalmente e tudo o que você precisa fazer é adicionar mais memória. Se, ao desligar as interfaces, isso não ajudar, pode ser um bug. A melhor ação é entrar em contato com seu representante de suporte da Cisco com as informações coletadas.

Falha de Alocação de Memória no Processo = Nível de Interrupção

Essa situação pode ser identificada pelo processo na mensagem de erro. Se o processo estiver listado como <nível de interrupção>, como no próximo exemplo, a falha de alocação de memória é causada por um problema de software.

"%SYS-2-MALLOCFAIL: Memory allocation of 68 bytes failed from 0x604CEF48,

pool Processor, alignment 0-Process=

, ipl= 3"

Este é um bug do Cisco Internet Operating System (Cisco IOS). Você pode usar o Bug Toolkit para procurar uma ID de bug de software correspondente para esse problema. Uma vez identificado o bug do software, atualize para uma versão do software Cisco IOS que contenha a correção para resolver o problema.

Observação: somente usuários registrados da Cisco têm acesso a informações e ferramentas internas da Cisco.

Redução da memória devido ao download por listas de acesso do usuário

As listas de acesso podem consumir muita memória quando são usadas por usuário. As listas de acesso são muito grandes para serem classificadas como mini listas de controle de acesso (ACLs) e agora são compiladas como ACLs turbo. Cada vez que isso ocorre, o processo TACL tem que iniciar e processar a nova ACL. Isso pode resultar em tráfego permitido ou negado com base no tempo de compilação e no tempo de processo disponível.

As ACLs compiladas devem ser enviadas para o XCM. Quando há apenas espaço limitado disponível e uma vez que a memória é executada, as mensagens do console são vistas e o desfragmentador de memória é iniciado.

Esta é a solução:

- Uso de ACLs concisas, menos número de Application Control Engines (ACEs) que podem ser compilados como mini ACLs e que podem reduzir o consumo de memória e a potência do processo para compilação.

- Uso de ACLs predefinidas no roteador que são referenciadas através do atributo radius filterID.

Problemas conhecidos

Problema 70x0 Conhecido Quando o Cisco IOS Software Grande é Carregado do Flash ou do Netboot

Quando o Processador de Rota (RP) 7000 inicializa uma imagem no Flash, o RP primeiro carrega a imagem ROM e, em seguida, a imagem flash na memória. O RP antigo tem apenas 16 MB de memória, e as versões Enterprise do Cisco IOS Software Release posteriores à versão 11.0 são maiores que 8 MB quando descompactados. Portanto, quando você carrega a imagem da ROM e, em seguida, da Flash, o 7000 RP pode ficar sem memória ou a memória pode ficar fragmentada durante o processo de inicialização para que o roteador tenha mensagens de erro relacionadas à memória.

A solução é ativar a Inicialização rápida a partir do registro de configuração para que o RP carregue apenas um subconjunto mínimo da imagem do Cisco IOS Software na ROM e carregue o Cisco IOS Software completo a partir da Flash. Para habilitar a reinicialização rápida, configure o registro para 0x2112. Isso também pode acelerar o processo de inicialização.

Entrada de IP e CiscoWorks UT Discovery

Com o recurso UT Discovery do CiscoWorks, a quantidade de memória livre pode se tornar muito pequena em alguns dos seus roteadores. O comando show proc memory pode indicar uma grande quantidade de memória mantida pelo processo de "entrada IP". Este é um caso particular do problema de Grande Quantidade de Memória Usada para Processos Normais ou Anormais para o processo de "entrada de IP", que também pode resultar em um problema de Fragmentação de Memória , se a condição de memória baixa faz com que a memória seja fragmentada.

O recurso UT Discovery faz com que a Estação de Gerenciamento de Rede envie uma varredura de ping para todos os IPs em cada sub-rede descoberta. Os problemas de memória são causados pelo aumento do tamanho do cache de switching rápida de IP no roteador porque novas entradas de cache são criadas para cada novo destino. Como a máscara usada para as entradas no cache depende de como ela é dividida em sub-redes, a presença de um endereço com uma máscara de 32 bits (por exemplo, um endereço de loopback) em uma rede principal faz com que todas as entradas dessa rede usem uma máscara de 32 bits. Isso resulta na criação de um grande número de entradas de cache e no uso de uma grande quantidade de memória.

A melhor solução é desativar o UT Discovery. Você pode fazer isso com estas etapas:

1. Vá para C:\Program Files\CSCOpx\etc\cwsi\ANIServer.properties.

2. Adicione "UTPingSweep=0".

3. Reinicie o ANI.

Isso pode fazer com que a tabela User Tracking perca alguns servidores finais ou fique desatualizada (isso pode ser um problema com outro aplicativo da Cisco chamado User Registration Tool, que depende da UT), mas não afeta o Campus Discovery, que usa apenas o tráfego SNMP. A comutação CEF também pode melhorar essa situação (com o CEF, o cache IP é criado a partir da tabela de roteamento na inicialização). Consulte Como Escolher o Melhor Caminho de Switching de Roteador para a Sua Rede para obter mais informações sobre o CEF e outros caminhos de switching disponíveis.

Há muitos outros aplicativos que podem resultar em situações semelhantes de pouca memória. Na maioria dos casos, a causa raiz do problema não é o roteador, mas o próprio aplicativo. Normalmente, você deve ser capaz de evitar essas tempestades de pacotes verificando a configuração do aplicativo.

Sem memória compartilhada suficiente para as interfaces

Alguns roteadores (por exemplo, 2600, 3600 e 4000 Series) exigem uma quantidade mínima de memória de E/S para suportar determinados processadores de interface.

Se o roteador ficar com pouca memória compartilhada, mesmo após uma recarga, você poderá remover fisicamente as interfaces para resolver esse problema.

Nos 3600 Series Routers, o comando de configuração global  memory-size iomem i/o-memory-percentage pode ser usado para realocar a porcentagem de DRAM a ser usada para memória de E/S e memória do processador. Os valores permitidos para i/o-memory-percentage são 10 , 15 , 20 , 25 (o padrão), 30 , 40 e 50 . É necessário um mínimo de 4 MB de memória para a memória de E/S.

Para solucionar esse problema, consulte:

- Requisitos de memória compartilhada para os roteadores 4000/4500/4700.

Erro de vazamento de buffer

Se você tiver a saída de um  show buffers  ou  show technical-support  (no modo de ativação) do dispositivo Cisco, você pode usar o Output Interpreter para exibir problemas e correções potenciais.

Observação: somente usuários registrados da Cisco têm acesso a informações e ferramentas internas da Cisco.

Quando um processo é concluído com um buffer, o processo deve liberar o buffer. Um vazamento de buffer ocorre quando o código esquece de processar um buffer ou esquece de liberá-lo depois que ele é concluído com o pacote. Como resultado, o pool de buffers continua a crescer à medida que mais e mais pacotes ficam presos nos buffers. Você pode identificar um vazamento de buffer com o comando show buffers comando. Alguns pools de Buffer Público devem ser anormalmente grandes, com poucos buffers livres. Após um recarregamento, você pode ver que o número de buffers livres nunca se aproxima do número total de buffers.

A ferramenta Output Interpreter permite receber uma análise do show buffers saída.

No exemplo abaixo, os buffers do Meio são afetados. O  show buffers  indica que quase 8094 buffers são usados e não liberados (total de 8122 menos 28 livres):

Public buffer pools: Small buffers, 104 bytes (total 50, permanent 50):

50 in free list (20 min, 150 max allowed)

403134 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Middle buffers, 600 bytes (total 8122, permanent 200):

28 in free list (10 min, 300 max allowed)

154459 hits, 41422 misses, 574 trims, 8496 created

Big buffers, 1524 bytes (total 50, permanent 50):

50 in free list (5 min, 150 max allowed)

58471 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

VeryBig buffers, 4520 bytes (total 10, permanent 10):

10 in free list (0 min, 100 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Large buffers, 5024 bytes (total 0, permanent 0)

0 in free list (0 min, 10 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Huge buffers, 18024 bytes (total 0, permanent 0):

0 in free list (0 min, 4 max allowed)

0 hits, 0 misses, 0 trims, 0 created

0 failures (0 no memory)

Este é um bug do software Cisco IOS. Atualize para a versão mais recente do seu treinamento de versão para corrigir bugs de vazamento de buffer conhecidos (por exemplo, se você estiver executando o Cisco IOS Software Release 11.2(14), atualize para a imagem mais recente do 11.2(x). Se isso não ajudar, ou se não for possível atualizar o roteador, emita estes próximos comandos para o pool de problemas quando o roteador estiver com pouca memória. Estes comandos podem exibir informações adicionais sobre o conteúdo dos buffers:

- show buffer old  mostra os buffers alocados com mais de um minuto

- show buffer pool   (small - middle - big - verybig - large - huge)    mostra um resumo dos buffers do pool especificado

- show buffer pool (small - middle - big - verybig - large - huge) dump   mostra um dump hexadecimal/ASCII de todos os buffers em uso de um determinado pool.

Consulte Troubleshooting de Vazamentos de Buffer para obter detalhes adicionais.

O roteador está com pouca memória rápida

Esse problema é específico da série 7500. Se o roteador ficar sem memória "rápida", ele poderá usar sua RAM dinâmica principal (DRAM). Nenhuma ação é exigida.

IPFAST-4-RADIXDELETE: Erro  trying  para excluir entrada de prefixo [IP_address]/[dec] (esperado [hex], obtido [hex])

A mensagem de erro IPFAST-4-RADIXDELETE: Erro ao tentar excluir a entrada de prefixo [IP_address]/[dec] (esperada [hex], obtida [hex]) indica que a tabela de cache de switching rápida de roteadores na memória está corrompida. Quando o roteador tenta limpar a tabela de cache no processo normal ou clear ip cache for inserido, o sistema não conseguirá excluir entradas devido à corrupção da memória. Quando o roteador não consegue excluir tal entrada, a mensagem IPFAST-4-RADIXDELETE é relatada.

Para resolver um problema de corrupção de memória na tabela de cache, é necessário reinicializar o roteador. Uma reinicialização pode esculpir novamente as estruturas de memória do sistema e permitir que o cache rápido reconstrua sem corrupção.

%SYS-2-CHUNKEXPANDFAIL: não foi possível expandir o pool de partes para Bitmap TACL. Memória indisponível

O motivo para %SYS-2-CHUNKEXPANDFAIL: não foi possível expandir o pool de partes para Bitmap TACL. Mensagem de erro Memória insuficiente é que não há memória de processador suficiente para aumentar o pool de partes especificado. É possivelmente causada por um processo que se comporta de forma anormal.

A solução alternativa é capturar periodicamente (com base na frequência do problema) a saída desses comandos para que o uso da memória do roteador possa ser monitorado:

- show processes memory sorted

- show memory statistics

- show memory allocating-process totals

Summary

Falhas de alocação de memória do “processador” de conjunto

Siga estas etapas:

1. Verifique os requisitos de memória para a versão ou o conjunto de recursos do software Cisco IOS.

2. Se possível, atualize para a versão mais recente do software Cisco IOS em sua versão de treinamento.

3. Verifique se há uma grande quantidade de memória usada para processos normais ou anormais. Se necessário, adicione mais memória .

4. Verifique se isso é um vazamento ou uma fragmentação (vazamento de buffer em roteadores avançados).

5. Colete as informações relevantes e entre em contato com o TAC.

Falhas de Alocação de Conjunto de Memória de "E/S" ("Processador" em roteadores de ponta, "PCI" no 7200 Series)

Siga estas etapas:

1. Verifique os requisitos de memória compartilhada (consulte Não há memória compartilhada suficiente para as interfaces).

2. Se possível, atualize para a versão mais recente do Cisco IOS Software em seu treinamento de versão.

3. Determine qual pool de buffers é afetado, colete as informações relevantes e entre em contato com o TAC da Cisco.

Informações Relacionadas

- Solucionar problemas de vazamentos de buffer

- Faça Troubleshooting de Suspensões do Roteador

- Suporte técnico e downloads da Cisco