Colaboração : Cisco ICM Logger

Melhor prática ajustar limites de buffer ICM MDS

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


Índice


Introdução

Este documento descreve como você pode fazer sob medida o registro da alocação de buffer de Message Delivery Service (MDS) a fim satisfazer todas suas necessidades em um ambiente de empreendimento do centro de contato de Cisco Intelligent Contact Management (ICM) /IP (IPCC). Este documento igualmente fornece notas da atualização e da manutenção.

Nota: Este documento não se aplica a ICM 7.0 porque a facilidade do gerenciamento de memória foi mudada.

Pré-requisitos

Requisitos

A Cisco recomenda que você tenha conhecimento destes tópicos:

  • Empresa de Cisco ICM/IPCC

Componentes Utilizados

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

  • Versão 4.6.2 do empreendimento ICM de Cisco, 5.x e 6.x

  • Versão 4.6.2 do IPCC corporativo de Cisco, 5.x e 6.x

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.

Proteção da mensagem

Um processo MDS é executado em cada lado do roteador de ICM de Cisco e de Peripheral Gateway (PG). O processo de Node Manager (NM) começa o processo MDS. O processo MDS fornece uma função de switching de mensagem para os clientes em seu lado do sistema. O processo MDS aceita as mensagens que os clientes enviam, e entrega as mensagens aos destinos relevantes. O processo MDS usa uma conexão externo do transporte da mensagem (EMT) para comunicar-se com cada cliente, que permite clientes residir em todo o nó.

Durante a operação de sistema normal, os clientes MDS leem e processam mensagens assim que as mensagens chegarem. Os eventos incomuns, por exemplo, re-sincronização do processo, podem fazer com que uns ou vários clientes pausem por um período indeterminado. Durante tais períodos, as mensagens continuam a chegar no cliente. Em tais vezes, as mensagens entram na fila de mensagem do cliente. Quando o cliente recomeça ler mensagens de entrada, em uma média, as mensagens dos processos cliente mais rapidamente do que as mensagens chegam. Consequentemente, a fila de entrada encolhe eventualmente a zero.

O processo MDS executa um esquema do gerenciamento de buffer. Quando uma mensagem está na fila, o número do buffer total aumenta. Quando o cliente lê a mensagem, a mensagem sae da fila, e das diminuições do número do buffer. O tamanho da fila é 90% dos bufferes disponíveis no pool de buffers. Uma marca d'água alta que você possa configurar, especifica o número máximo de bufferes para distribuir para enfileirar mensagens. Se uma mensagem que se junte à fila faz com que os bufferes excedam o nível da marca d'água alta, o processo MDS declara uma falha e para-a.

O processo MDS mantém um pool dos bufferes de mensagem. Há três tamanhos das associações, a saber, pequenas, médias e grandes. Estas associações acomodam vários tamanhos das mensagens. O grande buffer é grande bastante guardar um mensagem de tamanho máximo. O sistema atribui bufferes de mensagem da memória global do processo quando necessário. Quando os bufferes são já não necessários, o sistema libera os bufferes de volta à memória global do processo.

Registro do buffer

Processo MDS

Para o processo MDS, está aqui o trajeto da navegação para o registro máximo do buffer alocado na versão do ICM 4.6.2 de Cisco:

HKEY_LOCAL_MACHINE\SOFTWARE\GelTel\ICR\<cust_inst>\<Node>\MDS\
CurrentVersion\Process

Está aqui o trajeto da navegação para o registro máximo do buffer alocado na versão do ICM 5.x e 6.x de Cisco:

HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,Inc.\<cust_inst>\<Node>\MDS\
CurrentVersion\Process

Por exemplo, figura 1 indica a chave de registro para o BufferLimit e a BufferMaxFree para o processo MDS no PG1A na versão 5.x e 6.x de Cisco ICM/IPCC.

Figura 1 – Registro do processo MDS para o BufferLimit e a BufferMaxFree

/image/gif/paws/66960/BufferLimitGuide_01.gif

Processos do cliente MDS

Para os clientes MDS, está aqui o trajeto da navegação para o registro máximo do buffer alocado na versão do ICM 4.6.2 de Cisco:

HKEY_LOCAL_MACHINE\SOFTWARE\GelTel\ICR\<cust_inst>\<Node>\MDS\
CurrentVersion\Clients\<Client_ID>

Está aqui o trajeto da navegação para o registro máximo do buffer alocado na versão do ICM 5.x e 6.x de Cisco:

HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,Inc.\ICR\<cust_inst>\<Node>\MDS\
CurrentVersion\Clients\<Client_ID>

Por exemplo, figura 2 indica a chave de registro para o BufferLimit e a BufferMaxFree para o processo do pgag no PG1A na versão 5.x e 6.x de Cisco ICM/IPCC.

Figura 2 – Registro do processo do cliente MDS para o BufferLimit e a BufferMaxFree

/image/gif/paws/66960/BufferLimitGuide_02.gif

Recupere as estatísticas de medida

Você pode usar o comando dumplog com o argumento de /bin a fim obter as estatísticas de buffer. A fim obter suficientes dados, você deve recolher pelo menos um valor de duas horas dos dados para mostrar a estatística. A fim compreender as estatísticas, você exige pelo menos uma semana dos dados durante um período do tráfego elevado. Está aqui um exemplo do comando dumplog que você pode emitir para recolher duas horas de dados MDS:

C:\icm\lab60\ra\logfiles>dumplog mds /bin /hr 2

Estão aqui as saídas parciais do comando dumplog:


Events from September 20, 2005:
11:51:06 ra-mds MDS Process is reporting periodic overall metering statistics. 

  *** Buffer Pool Statistics ***
  Current / High / Max Allocated Buffers = 374 / 397 / 65536
  Current / High / Max Freelist (Small) = 344 / 345 / 400
  Current / High / Max Freelist (Medium) = 10 / 10 / 10
  Current / High / Max Freelist (Large) = 5 / 5 / 5
  Buffer Allocs Small / Medium / Large / Total = 18938158 / 1043172 / 4749 /
 19986079
    Allocs from Freelist Small / Medium / Large / Total = 18937799 / 1042064 /
 4742 / 19984605
  Buffer Frees Small / Medium / Large / Total = 22322177 / 1060637 / 5161 /
 23387975
    Frees to Freelist Small / Medium / Large / Total = 18938143 / 1042074 /
 4747 / 19984964
  Dups = 3401911

  *** Synchronizer Statistics ***
  Total messages ordered = 4292869
    MDS duplicates = 308
    DMP duplicates = 0
  Local low priority input msgs / bytes = 1119811 / 107490676
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 12 / 3136
  Local high priority input msgs / bytes = 848853 / 24508284
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 2 / 148
  Local medium priority input msgs / bytes = 61373 / 3017131
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 7 / 11480
  Remote low priority input msgs / bytes = 131595 / 9598544
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 15 / 2472
  Remote high priority input msgs / bytes = 6236914 / 65565092
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 8 / 228
  Remote medium priority input msgs / bytes = 318 / 52698
    Current input queue msgs / bytes = 0 / 0
    Highest input queue msgs / bytes = 3 / 7476
  Remote low priority output msgs / bytes = 1118701 / 107385640
    Current output queue msgs / bytes = 0 / 0
    Highest output queue msgs / bytes = 8 / 3136
  Remote high priority output msgs / bytes = 4301262 / 93354648
    Current output queue msgs / bytes = 0 / 0
    Highest output queue msgs / bytes = 7 / 204
  Remote medium priority output msgs / bytes = 61289 / 3012988
    Current output queue msgs / bytes = 0 / 0
    Highest output queue msgs / bytes = 5 / 7476
  Current local low priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 16 / 3168
  Current local high priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0
  Current local medium priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 7 / 11524
  Current remote low priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0
  Current remote high priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0
  Current remote medium priority ordering queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0
  Current low priority timed delivery queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 336 / 32736
  Current high priority timed delivery queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0
  Current medium priority timed delivery queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 32 / 24416
  Clock rate fast / slow / normal = 0 / 0 / 0
  Output waits / notifies = 2641679 / 2642109

  *** State Transfer Statistics ***
  Attempts / Successful completions = 11 / 11
  Bytes received / transmitted = 383710 / 1185727

11:51:06 ra-mds MDS Process is reporting periodic per-client summary meters. 

  *** Client 128 Statistics ***
  Connects / Disconnects = 0 / 0
  Messages / Bytes received from client = 0 / 0
  Messages / Bytes sent to client = 0 / 0
  Current output queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0

  ..
  ..

11:51:06 ra-mds MDS Process is reporting periodic per-client summary meters. 

  *** Client 70 Statistics ***
  Connects / Disconnects = 0 / 0
  Messages / Bytes received from client = 0 / 0
  Messages / Bytes sent to client = 0 / 0
  Current output queue msgs / bytes = 0 / 0
    Highest msgs / bytes = 0 / 0

  ..
  ..

Marcas d'água

O primeiro parte das estatísticas representa a filigrana para a alocação de buffer.

Figura 3 – Estatísticas do pool de buffers

BufferLimitGuide_03.gif

Estão aqui os significados e o espaço de algum denomina usos deste relatório:

Este relatório apresenta uma imagem da alocação de buffer durante a última hora. Use este relatório durante uma semana ou dois para verificar se o registro máximo do buffer alocado é bastante para o destino de mensagem. Os dois requisitos de buffer MDS são:

  • Para o processo MDS

  • Para os clientes MDS

Para a versão do ICM 4.6.2, está aqui o trajeto da navegação para o registro máximo do buffer alocado:

HKEY_LOCAL_MACHINE\SOFTWARE\GelTel\ICR\<cust_inst>\<Node>\MDS\
CurrentVersion\Clients\<Client_ID>

Estão aqui as chaves:

  • BufferLimit

    O BufferLimit define o buffer alocado máximo (veja a seta A em figura 1 e em figura 2).

  • BufferMaxFree

    A BufferMaxFree representa o freelist atribuído máximo (veja a seta B em figura 1 e em figura 2).

A maioria de informação importante nas estatísticas de medida é o valor dos bufferes alocado altos (veja figura 3). O alvo é manter o valor entre 65% e 75% dos bufferes alocado máximos. Para em qualquer altura que durante o período provado, se o número obtém mais altamente de 75%, você deve dobrar o valor no BufferLimit.

Nota: O valor é sempre uma potência de dois.

Mensagem de Erro da alocação de buffer

Quando o pool de buffers está vazio, o processo retira. O arquivo de registro indica esta mensagem:

Fail: Buffer Pool Exhausted (xxxx buffers allocated).

Nota: xxxx representam o número de buffer. Por exemplo, 1024, 2048, 4096 e assim por diante.

Use o utilitário dumplog para ver o arquivo de registro.

Pool de buffers esgotado: Caso 1

Este log fornece um exemplo do processo do lgr MDS que foi executado fora do buffer (veja a seta A em figura 4).

Figura 4 – Dumplog do processo MDS LGR

BufferLimitGuide_04.gif

Expanda o Limite de Buffer atual a fim resolver o problema. Contudo, você deve monitora então o processo para assegurar-se de que o erro não retorne.

Pool de buffers esgotado: Caso 2

Em alguns casos, o Mensagem de Erro aparece, mas expandir o Limite de Buffer atual não resolve a edição. Este Mensagem de Erro é apenas um sintoma. Por exemplo, uma série de logs salvar antes que o processo MDS pare. Estes logs produzem um relatório com o número de buffer atribuído entre os clientes MDS. Geralmente, este número é bastante para que você reduza para baixo em alguns problemas nos clientes que não se relacionam à alocação de buffer.

Figura 5 – Dumplog do processo MDS

BufferLimitGuide_05.gif

O exemplo na figura 5 indica que há 4085 mensagens enfileiradas para o processo de Open Peripheral Controller (OPC), e todos clientes restantes têm sem bufferes atribuídos. Este exemplo demonstra que o processo OPC é a causa do problema, e não o tamanho máximo da alocação de buffer.

Notas da atualização

Ocasionalmente, quando você executa uma elevação ou faz alterações principal a um sistema, o pool de buffers alcança o limite. Por exemplo, o pool de buffers pode alcançar o limite quando você adiciona periféricos. A fim impedir esta edição, aumente os limites do pool de buffers.

Antes que você execute uma elevação de 4.6.2 a 5.0 ou a 6.0, Cisco recomenda-o dobrar os ajustes do BufferLimit e da BufferMaxFree (veja figura 1). Quando você promove 5.0 a 6.0 você não precisa de dobrar os ajustes do BufferLimit se você dobrou os ajustes quando você promoveu 4.6.2 a 5.0. Se você não é certo aproximadamente mesmo se você aumentou o ajuste do BufferLimit durante a elevação precedente, verifique as estatísticas da utilização do buffer esboçadas dentro recuperam as estatísticas de medida para determinar se você deve aumentar bufferes.

Nota: A perda de memória não é um interesse porque os bufferes especificados pelo BufferLimit (exceto aqueles nas listas livres) PRE-não são atribuídos. Além, os bufferes são liberados ao montão de sistema eventualmente. Contudo, um BufferLimit muito grande (comparado ao sistema disponível RAM) pode mascarar a congestão subjacente de uma comunicação e retardar o sistema inteiro. Em algumas situações, uma solução melhor é afirmar um processo como o BufferLimit é alcançado, e confiar no projeto da tolerância de defeito do sistema para falhar sobre, dado limitações possíveis do recurso.

Notas da manutenção

Você pode monitorar algumas estatísticas do BufferLimit após uma elevação ou durante a manutenção de sistema normal. Você deve rever estas estatísticas antes e imediatamente depois de você adiciona a capacidade adicional ou os componentes a um sistema. O processo MDS grava as estatísticas do pool de buffers periodicamente. Se o alto valor de um buffer particular é próximo ao MAX, dobre esse ajuste particular do BufferLimit.

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: 66960