Cisco Interfaces and Modules : Processadores de interface de canal da Cisco

Compreendendo falhas e ausências de buffer

19 Setembro 2015 - Tradução por Computador
Outras Versões: Versão em PDFpdf | Inglês (22 Agosto 2015) | Feedback


Índice


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 gera 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 gera 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

Buffer elements:
     500 in free list (500 max allowed)
     2370 hits, 0 misses, 0 created

Public buffer pools:
Small buffers, 104 bytes (total 16, permanent 10):
     11 in free list (0 min, 10 max allowed)
     1770 hits, 33 misses, 22 trims, 28 created
     9 failures (0 no memory)
Middle buffers, 600 bytes (total 90, permanent 90):
     89 in free list (10 min, 200 max allowed)
     590 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Big buffers, 1524 bytes (total 90, permanent 90):
     90 in free list (5 min, 300 max allowed)
     126 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, 300 max allowed)
     50 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Large buffers, 5024 bytes (total 10, permanent 10):
     10 in free list (0 min, 30 max allowed)
     0 hits, 0 misses, 0 trims, 0 created
     0 failures (0 no memory)
Huge buffers, 18024 bytes (total 2, permanent 0):
     0 in free list (0 min, 13 max allowed)
     2 hits, 2 misses, 0 trims, 2 created
     0 failures (0 no memory)

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.

buffers small initial 250

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 small max-free 175

buffers small permanent 125

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 small min-free 50

Buffers permanentes

Ajuste bufferes permanentes de modo que o valor represente o número estimado de bufferes exigidos para o processamento normal.

buffers small permanent 125

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

Channel4/2 is up, line protocol is up
  Hardware is cxBus IBM Channel
  MTU 4472 bytes, BW 98304 Kbit, DLY 100 usec, rely 255/255, load 1/255
  Encapsulation CHANNEL, loopback not set, keepalive not set
  Virtual interface
  Last input 0:00:04, output 0:00:04, output hang never
  Last clearing of "show interface" counters never
  Output queue 0/40, 0 drops; input queue 0/75, 8 drops
  5 minute input rate 0 bits/sec, 0 packets/sec
  5 minute output rate 0 bits/sec, 0 packets/sec
     646 packets input, 27760 bytes, 8 no buffer
     Received 0 broadcasts, 0 runts, 0 giants
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     328 packets output, 16959 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets, 0 restarts
     0 output buffer failures, 0 output buffers swapped out

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

Local Interfaces:                        receive            transmit
       srn bn  trn r p s n  max hops     cnt:bytes          cnt:bytes      drops
Ch4/2  666  1   99 *   f    7  7  7      652:26020            6:266           0

Global RSRB Parameters:
 TCP Queue Length maximum: 100

Ring Group 99:
  This TCP peer: 150.10.20.2
   Maximum output TCP queue length, per peer: 100
  Peers:                 state     bg lv  pkts_rx  pkts_tx  expl_gn   drops TCP
   TCP 150.10.20.1       open         *3      261      266        0       0   0
   TCP 150.10.20.2       -            *3        0        0        0       0   0
  Rings:
   bn: 1  rn: 888  locvrt ma: 4000.7000.fff1 Buff Ring888          fwd: 0
   bn: 1  RN: 666  local  ma: 4000.0c48.2e80 Channel4/2            fwd: 261
   bn: 1  RN: 88   remote ma: 4000.4000.fff1 TCP 150.10.20.1       fwd: 322
   bn: 1  RN: 250  remote ma: 4000.300f.7c09 TCP 150.10.20.1       fwd: 0

Explorers: ------- input -------             ------- output -------
         spanning  all-rings     total      spanning  all-rings     total
Ch4/2           0          0         0             0          1         1

  Local: fastswitched 0         flushed 0         max Bps 256000

         rings      inputs         bursts         throttles output drops
         Ch4/2           0              0                 8            0

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.

Discussões relacionadas da comunidade de suporte da Cisco

A Comunidade de Suporte da Cisco é um fórum onde você pode perguntar e responder, oferecer sugestões e colaborar com colegas.


Informações Relacionadas


Document ID: 14620