Compreendendo falhas e ausências de buffer - Cisco Systems Home
Índice Introdução Pré-requisitos Requisitos Componentes Utilizados Convenções Senhoritas e falhas do buffer Pool de buffers comando Configuration dos bufferes Comandos show adicionais Discussões relacionadas da comunidade de suporte da Cisco
Informações Relacionadas Introdução Este documento discute ausências e falhas do buffer no Processador de Roteamento (RP). Pré-requisitos Requisitos Não existem requisitos específicos para este documento. Componentes Utilizados Este documento não se restringe a versões de software e hardware específicas. As informações neste documento foram criadas a partir de dispositivos em um ambiente de laboratório específico. Todos os dispositivos utilizados neste documento foram iniciados com uma configuração (padrão) inicial. Se a sua rede estiver ativa, certifique-se de que entende o impacto potencial de qualquer comando. Convenções Consulte as Convenções de Dicas Técnicas da Cisco para obter mais informações sobre convenções de documentos. Proteja senhoritas e falhas O RP divide sua memória de processador em associações. Cada conjunto contém um número de blocos de memória do mesmo tamanho. Esses blocos de memória são chamados de buffers. Pool de buffers Há seis pool de buffers: 104 bufferes pequeno- dos bytes Médio — 600 bufferes do byte Grande — 1524 bufferes do byte VeryBig — 4520 bufferes do byte Grande — 5024 bufferes do byte Enorme — 18024 bufferes do byte Por exemplo, se um processador de interface precisa de passar um pacote de bytes 20 ao RP, "pede" um buffer pequeno. Se um processador de interface precisa de passar um pacote de bytes 500 ao RP, pede um buffer médio, e assim por diante. Nota: O processador de interface deve pedir um buffer de um determinado tamanho. Quando o processador de interface pede um buffer, este ocorre: Se existir um buffer livre no conjunto solicitado, ele será concedido. Se não, o pedido gerencie um " perda " e as tentativas do algoritmo do buffer "criam" mais bufferes para esse pool. Quando os IO não obtêm um buffer pequeno, não deixa cair o pacote. Incrementa o contrário falhado e cai completamente ao buffer nivelado seguinte, que é o buffer médio e pede um buffer lá. Se não obtém um buffer médio, pede o buffer nivelado seguinte, que é um buffer grande. Este processo continua até que bata o pool de buffer enorme. Se não obtém um buffer enorme, então deixa cair o pacote. Quando você usa o conjunto de recursos IBM, uma falta gerencie quase sempre uma falha. Embora as características IBM possam ser comutados por processo, o código para conseguir um buffer passar um pacote de uma relação ao RP executa a nível de interrupção. Os bufferes não podem ser criados a nível de interrupção; consequentemente, uma falta enfileira seu pedido para mais bufferes ao RP. Porque um buffer adicional não pode ser criado na hora, o pedido do buffer falha, e o pacote é deixado cair. As falhas de buffer são um dos motivos mais comuns para cancelamento de pacotes. Quando as quedas de pacote de informação ocorrem devido à falha de buffer, esta ocorre: Após uma falha de buffer, o RP tem uma requisição considerável criar mais bufferes do tamanho apropriado para o pool particular. Quando o RP prestar serviços de manutenção ao pedido dos bufferes da criação, pode haver umas falhas adicionais no pool. O RP pode mesmo não cria mais bufferes, devido aos confinamentos de memória no sistema quando os bufferes extra são exigidos. Essencialmente, a operação dos bufferes da criação poderia tomar diversos microssegundos, em que os pacotes são deixados cair continuamente devido à falha de buffer. Além, se os bufferes são usados tão rapidamente como estão criados, o RP poderia ser forçado a passar mais tempo na criação do buffer do que no processamento do pacote. Isto pode fazer com que o RP comece a deixar cair tão rapidamente pacotes que o desempenho degrada e as sessões estão perdidas. Felizmente, conforme discutido nesse documento, os problemas de falhas de buffer não são difíceis de identificar e resolver. Esta saída do comando show buffers mostra o estado atual dos pool de buffers do roteador: dspu-7k#show buffers
Na saída de show buffers: O total identifica o número total de bufferes no pool, que incluem usado e bufferes não utilizados. Permanente identifica o número permanente de buffers alocados no pool. Estes bufferes estão sempre no pool e não podem ser aparados afastado. Na lista de livres, identifica o número de buffers que estão atualmente no conjunto e que estão disponíveis para uso. O minuto identifica o número mínimo de bufferes que o RP deve tentar se manter na lista livre: O parâmetro min é usado para antecipar a demanda do conjunto por buffers em qualquer momento especificado. Se o número de buffers na lista livre cair abaixo desse valor mínimo, o RP tentará criar mais buffers desse pool. MAX-permitido identifica o número máximo de bufferes que são permitidos na lista livre: O parâmetro MAX-permitido impede um pool dos bufferes de monopolização que não precisa anymore. Igualmente livra esta memória de volta ao sistema para um uso mais adicional. Se o número de buffer na lista livre é maior do que o valor MAX-permitido, o RP deve tentar aparar bufferes do pool. O contador Hits identifica o número de buffers que foram solicitados do conjunto. O contador de batidas fornece um mecanismo para determinar que pool deve encontrar a procura a mais alta para bufferes. As senhoritas identificam o número de vezes que um buffer esteve pedido e o RP esteve detectado em qual os bufferes adicionais do pool foram exigidos. Ou seja o número de buffer na lista livre deixou cair abaixo do nível do minuto. A contagem de ausências representa o número de vezes que o RP foi forçado a criar buffers adicionais. As guarnições identificam o número de buffer que o RP aparou do pool, quando o número de buffer na lista livre excedeu o número de bufferes MAX-permitidos. O valor Created (Criados) identifica o número de buffers que foram criados no conjunto. O RP cria bufferes nestas situações: Quando a procura para bufferes aumentar até que o número de buffer na lista livre estiver menos do que os bufferes mínimos. Uma falta ocorre porque há uns sem bufferes na lista livre. Ambas as situações anterior. As falhas identificam quando os IO não obtêm um buffer pequeno, ele não deixam cair o pacote. Incrementa o contrário falhado e cai completamente ao buffer nivelado seguinte, que é o buffer médio e pede um buffer lá. Se não obtém um buffer médio, pede o buffer nivelado seguinte, que é um buffer grande. Este processo continua até que bata o pool de buffer enorme. Se não obtém um buffer enorme, então deixa cair o pacote. No memory identifica o número de falhas causadas por memória insuficiente para criar buffers adicionais. Você pode enlatar examina as características de cada pool, para determinar que associações (eventualmente) estão encontrando problemas. Os parâmetros para um pool podem ser ajustados para permitir que o roteador esteja preparado melhor para segurar a carga, se o pool parece exibir estas características: O número de faltas e cria o incremento em uma taxa alta (como uma porcentagem das batidas). Há consistentemente um número baixo de bufferes na lista livre. O número de falhas ou de nenhum incremento de memória. comando Configuration dos bufferes Com os bufferes comando configuration, você pode ajustar estes parâmetros para cada pool de buffers: inicial — Bufferes provisórios que são atribuídos no recarregamento do sistema. MAX-livre — Número máximo de buffer livre. livres para o valor mínimo — Número mínimo de buffer livre. número permanente de bufferes permanentes. Buffers Iniciais Ajuste os buffers iniciais para acomodar o burst do tráfego de estabelecimento de sessões depois da recarga do roteador.
Esses buffers são conseqüentemente "cortados" e retornados ao sistema. Os buffers iniciais são projetados para manejar o estabelecimento de sessão, o que é sempre comutado por processo. Durante o estabelecimento de sessão, o esconderijo fastswitching (usado por outros protocolos da rota) é povoado; os bufferes comutados por processo já não são exigidos e podem ser retornados ao sistema. Para ajustar bufferes iniciais não pode ser a solução correta para o conjunto de recursos IBM, porque quase todos os pacotes (depois que estabelecimento de sessão) são comutados por processo e exigem a proteção adicional de qualquer maneira. Nota: Para as características comutados por processo IBM, você deve ajustar bufferes permanentes um pouco do que ajustam os bufferes iniciais provisórios. Máx. Buffers Livres Ajuste bufferes MAX-livres de modo que o valor seja igual ou maior do que aos bufferes permanentes. Se todos os bufferes permanentes estão na lista livre, a seguir o RP não deve tentar aparar bufferes permanentes. Max-free pode ser usado para garantir que buffers não utilizados que são criados durante bursts irregulares retornem para a memória do sistema.
Buffers Min-Free Ajuste bufferes dos livres para o valor mínimo de modo que o valor represente o número mínimo calculado de bufferes exigidos a qualquer hora. Os livres para o valor mínimo podem ser usados para antecipar condições da falha de buffer e para assegurar-se de que um número mínimo de bufferes esteja sempre disponível.
Buffers permanentes Ajuste bufferes permanentes de modo que o valor represente o número estimado de bufferes exigidos para o processamento normal.
Buffers permanentes são usados para acomodar os requisitos de buffers normais (incluindo intermitências freqüentes) do roteador. A determinação das exigências do buffer normal é um processo interativo, onde as saídas de buffer da mostra devam mostrar os bufferes total usados em um pool em um dado momento. Os buffers permanentes deverão ser ajustados em relação ao "total" consistente de buffers necessários. Quando você ajusta bufferes permanentes, você deve centrar-se sobre a redução de cria e a eliminação das faltas e das falhas. Comandos show adicionais Há outros dois comandos show que você pode usar para identificar problemas com alocação de buffer: mostre o identificador de interface das relações show source-bridge Esta mostra conecta o exemplo de saída de comando do identificador de interface inclui um contador para o sem buffer: dspu-7k#show interfaces channel 4/2
No comando show interfaces interface-identifier output: Os incrementos do contador sem buffer quando a relação não obtém um buffer para um pacote de entrada. O sem buffer e incremento dos contadores das gotas (fila de entrada) quando a relação não obtém um buffer para um pacote de entrada. Um contador sem buffer que incremente na mostra conecta correlações da saída às faltas contra essas incrementos na saída de bufferes da mostra. O pool de buffers apropriado pode ser ajustado. Este exemplo de saída de comando da fonte-ponte da mostra inclui um contador de interface para reguladores de pressão, quando a conexão de ligação de rota de origem (SRB) é configurada para a relação: dspu-7k#show source-bridge
Na saída do comando show source-bridge. Os reguladores de pressão opõem incrementos quando a relação não obtém um buffer para um pacote de entrada. Os reguladores de pressão opõem-se que os incrementos na saída do comando show interfaces correlacionam ao as faltas contra essas incrementos na saída do comando show buffers. O pool de buffers apropriado pode ser ajustado. Informações Relacionadas Notas Técnicas de Troubleshooting Document ID: 14620