Como solucionar problemas de vazamento de memória ou uma exceção de falta de memória no processo de BizTalk Server

Traduções de Artigos Traduções de Artigos
Artigo: 918643 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Vazamentos de memória são um problema comum. Talvez seja necessário tentar várias etapas para encontrar a causa específica de um vazamento de memória ou uma exceção de falta de memória (OOM) no Microsoft BizTalk Server. Este artigo discute as considerações importantes ao avaliar o uso de memória e possíveis problemas relacionados à memória. Essas considerações incluem o seguinte:
  • RAM física
  • Processamento de mensagens grandes
  • Usar o /3GB switch
  • Uso de componentes personalizados
  • Qual versão do Microsoft.NET Framework, que o sistema está executando
  • O número de processadores

INTRODUÇÃO

Este artigo descreve como solucionar problemas de vazamento de memória ou uma exceção de falta de memória no processo de BizTalk Server do Microsoft BizTalk Servidor.

Mais Informação

O processo de BizTalk Server pode estar enfrentando um vazamento de memória Quando o uso de memória no Gerenciador de tarefas do Microsoft Windows consome mais de 50 Porcentagem de RAM física. Um vazamento de memória pode causar uma exceção de falta de memória Quando o uso da memória aumenta até que o processo é executado fora da memória do sistema ou até que o processo pára de funcionar.

Quando esse problema ocorre, uma mensagem de aviso semelhante a seguinte mensagem é registrada no log de eventos:

Evento Tipo: aviso
Categoria do evento: (1)
Identificação de evento: 5410
Descrição: Ocorreu um erro que requer o serviço BizTalk para encerrar. As causas mais comuns são inesperado do erro de memória e incapacidade de se conectar ou perda de conectividade a um dos bancos de dados do BizTalk. O de serviço será desligamento e reinicialização automática em 1 minuto. Se o banco de dados problemático permanece indisponível, esse ciclo se repetirá.
Mensagem de erro: exceção do tipo System. OutOfMemoryException foi lançada.
Origem do erro:
Host do BizTalk nome: BizTalkServerApplication
Nome de serviço do Windows: BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

Tipo de evento: aviso
Categoria do evento: (1)
Identificação de evento: 5410
Descrição: Ocorreu um erro que requer o serviço BizTalk para encerrar. As causas mais comuns são os seguintes: 1) um erro de memória inesperado insuficiente. OU 2) uma incapacidade de se conectar ou perda de conectividade a um dos bancos de dados do BizTalk. O de serviço será desligamento e reinicialização automática em 1 minuto. Se o banco de dados problemático permanece indisponível, esse ciclo se repetirá.
Mensagem de erro: exceção do tipo 'System. OutOfMemoryException' foi lançada.
Origem do erro: mscorlib
Nome de host do BizTalk: BizTalkServerApplication
Nome de serviço do Windows: BTSSvc$ BizTalkServerApplication

Considerações importantes

Uso de memória RAM e memória física

Pode ser um comportamento esperado para um processo de usar metade a RAM física, o uso de memória como uma diretriz. Por exemplo, se BizTalk Server tiver 4 gigabytes (GB) de RAM e o processo de BizTalk Server usa cerca de 500 megabytes (MB) de RAM, pode não haver vazamento. Se o processo de BizTalk Server usa cerca de 1 GB de RAM, pode haver um vazamento de memória ou uma situação de memória alta. O consumo de memória pode ser causado por um procedimento armazenado longa ou uma orquestração. Certifique-se de que você Saiba quanta memória o host do BizTalk normalmente usa para determinar se ocorre um vazamento de memória ou condição de memória alta.

Mensagens grandes

Quando BizTalk Server processa mensagens grandes, o sistema parece ter um vazamento de memória. No entanto, as mensagens podem estar usando uma grande quantidade de memória. Para obter mais informações sobre mensagens grandes, visite os seguintes sites da Microsoft Developer Network (MSDN):
http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

. aspx http://msdn.microsoft.com/en-us/library/aa560481 (BTS.10)

Além disso, considere o uso de memória alta pode ser esperado se BizTalk O servidor está processando mensagens grandes. Talvez você queira atualizar o hardware para atender às necessidades de desempenho de BizTalk Server em seu ambiente.

Quanto tempo demora para reproduzir o vazamento de memória

Vazamentos de memória podem ocorrer imediatamente ou eles podem se acumular em tempo. Ambos os cenários são comuns.

Uso da opção /3GB em computadores de 32 bits

Normalmente, um processo pode acessar 2 GB de espaço de endereço virtual. A opção /3GB é uma opção para sistemas que exigem mais memória endereçável. Essa opção pode melhorar o uso da memória para o processamento de mensagens. No entanto, a opção /3GB permite apenas 1 GB de memória endereçável para operações no modo kernel. Além disso, essa opção pode aumentar o risco de falta de memória de pool.

Para obter mais informações sobre a 3 GB , visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms791558.aspx
Quando a opção /3GB é habilitada em uma versão de 32 bits do Windows, o processo pode acessar 3 GB de endereço virtual espaço se o processo é endereço grande ciente. Um processo é endereço grande ciente quando o executável tem o sinalizador IMAGE_FILE_LARGE_ADDRESS_AWARE esteja definido no cabeçalho da imagem. Como o processo de BizTalk é endereço grande ciente, BizTalk será beneficiada com a opção /3GB.

Se estiver executando uma instância de host do BizTalk de 32 bits em uma versão de 64 bits do Windows (AMD64), os benefícios do processo de BizTalk da memória de 4 GB espaço de endereço como o BizTalk é endereço grande ciente. Portanto, mover os aplicativos de memória alta para um servidor de 64 bits pode ser a melhor solução.

Um processo de BizTalk de 64 bits em uma versão de 64 bits do Windows (AMD64) tem 8 TB de memória endereçável.

Você também deve considerar os bytes virtuais e os bytes particulares usados pelo processo. Uma instância de host do BizTalk (que é um.Aplicativo do NET Framework) pode receber um erro de memória insuficiente antes do valor de Bytes virtuais atinge 2 GB. Isso pode ocorrer mesmo que o máximo de memória endereçável por um processo em uma versão de 32 bits do Windows (sem a opção /3GB ) é de 2 GB. Para obter uma explicação de por que isso pode ocorrer, visite os seguintes sites da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/ms972959.aspx
http://blogs.msdn.com/TESS/archive/2005/11/25/496898.aspx
A opção /3GB também aumenta o máximo de bytes particular do processo de 800 MB BizTalk 1800 MB. Para obter mais informações sobre.Desempenho do aplicativo NET Framework com a opção /3GB habilitada, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms998583.aspx
A tabela a seguir resume essas informações e inclui os limites práticos para bytes virtuais e particular.
Reduzir esta tabelaExpandir esta tabela
ProcessoWindowsMemória endereçável (com um processo de reconhecimento de endereço grande)Limite prático de bytes virtuaisLimite prático de bytes particulares
32 bits32 bits2 GB1400 MB800 MB
32 bits32 bits com 3 GB3 GB2400 MB1800 MB
32 bits64 bits4 GB3400 MB2800 MB
64 bits64 bits8 TBNão aplicávelNão aplicável
Para obter mais informações sobre a memória endereçável de 32 bits versus 64 bits Windows, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa366778.aspx
A tabela a seguir lista PAE e 3 GB capacidade de suporte para versões diferentes do BizTalk Server.
Reduzir esta tabelaExpandir esta tabela
ProdutoPAE3 GB
BizTalk Server 2004SimNão
BizTalk Server 2006SimSim
BizTalk Server 2006 R2SimSim
BizTalk Server de 2009SimSim
Se você deve ativar a opção /3GB atender às necessidades de desempenho de um computador é executando BizTalk Server, você talvez queira considerar a adição de servidores para o grupo do BizTalk. Isso permite que você dimensione as instâncias host intensivo de memória.

Componentes do BizTalk executados dentro de um processo do Internet Information Services (IIS) pode também se beneficiam quando a opção /3GB é habilitada.

A opção /3GB não é suportada em computadores que estejam executando o Windows SharePoint Services 2.0 ou versões posteriores ou SharePoint Portal Server 2003 SP2 ou versões posteriores. Para obter mais informações, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
933560A opção /3GB do Windows Server 2003 não é suportada no Windows SharePoint Services 2.0 ou em versões posteriores ou no SharePoint Portal Server 2003 Service Pack 2 ou em versões posteriores

Uso de componentes personalizados

Se você usar componentes personalizados, como tubulações ou componentes de serviço Você deve saber o que fazem esses componentes. Você também deve saber o possível efeito desses componentes em uso de memória. A problema de memória comum ocorre quando um componente está transformando um documento. O operação de transformação é uma operação de memória. Quando um documento é BizTalk Server transformados, passa o fluxo de mensagens para o Microsoft.NET Classe de XslTransform Framework dentro do processo do BizTalk.

Outro problema comum Ocorre quando há manipulação intensiva. Seqüência de caracteres intensivo manipulação pode consumir muita memória. Para obter mais informações sobre maneiras de melhorar o desempenho, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms998547

Versão do.NET Framework

O Microsoft.NET Framework 2.0 e o.NET Framework 1.1 tem comportamento de memória diferentes. Portanto, você poderá ver resultados variados entre eles. Se você estiver usando o.NET Framework, confirme que a última.NET Framework Service Pack 1 está instalado. Esses service packs corrigem diversos problemas conhecidos de memória. Para obter mais informações, clique nos números abaixo:

945757 Problemas corrigidos no.NET Framework 2.0 Service Pack 1
867460 Lista de bugs corrigidos no.NET Framework 1.1 Service Pack 1

Número de processadores

O common language runtime (CLR) tem o seguinte lixo Coletores (GCs):
  • Estação de trabalho (mscorwks. dll)
  • Servidor (Mscorsvr.dll)
Se o computador que está executando o BizTalk Server é um sistema multiprocessador, o.NET Framework usa a versão do servidor do mecanismo de execução. Este é o comportamento padrão. O coletor de lixo do servidor destina-se a taxa de transferência máxima. Além disso, o coletor de lixo do servidor pode ser dimensionado para oferecer alto desempenho. Este coletor de lixo aloca memória e, em seguida, mais tarde libera memória para fornecer alto desempenho do sistema. Portanto, um computador que esteja executando o BizTalk Server junto com alguns.NET Framework components parece ter um vazamento de memória. No entanto, nesse cenário, o uso de memória alta é o comportamento esperado. Se o computador ficar sem memória de sistema ou o processo pára de funcionar devido à memória endereçável insuficiente, pode existir uma condição de vazamento de memória.

Se o computador Isto é executar o BizTalk Server é um sistema de processador único, o.NET Framework usa a versão de estação de trabalho do mecanismo de execução. Este é o padrão comportamento. Não é o algoritmo de alocação de coletor de lixo de estação de trabalho projetado para escalar ou para throughput máximo. Usa este coletor de lixo métodos de coletor de lixo simultâneas. Esses métodos são projetados para aplicativos com interfaces do usuário complexa. Tais aplicativos podem exigir coleta de lixo mais agressiva.

Importante Esta seção, método ou tarefa contém etapas que informam sobre como modificar o registro. No entanto, sérios problemas poderão ocorrer se você modificar o registro incorretamente. Portanto, certifique-se de seguir estas etapas cuidadosamente. Para proteção adicional, fazer backup do registro antes de modificá-lo. Em seguida, você pode restaurar o registro se ocorrer um problema. Para obter mais informações sobre como fazer backup e restaurar o registro, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
322756 Como fazer backup e restaurar o registro no Windows
Às vezes, pode ser apropriado executar a versão de estação de trabalho do mecanismo de execução em um sistema multiprocessador. Você pode usar a seguinte chave do registro para alternar para a versão de estação de trabalho do mecanismo de execução.

O BizTalk 2006 e versões posteriores

Crie a seguinte chave de registro de seqüência de caracteres de hospedagem do CRL com os valores correspondentes:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostName\CLR hospedagem

Nome: sabor
Dados: wks

BizTalk 2004

Crie a seguinte chave de registro de seqüência de caracteres de hospedagem do CRL com os valores correspondentes:

Host \CLR HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\BTSSvc {GUID}

Nome: sabor
Dados: wks

Para obter mais informações, visite os seguintes sites da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/ms973838

http://blogs.msdn.com/TESS/archive/2008/04/17/How-does-the-GC-Work-and-What-are-the-Sizes-of-the-different-generations.aspx

Causas comuns e resoluções

Uso de memória de processo e limites de otimização do uso de memória física

O uso de memória do processo e os limites da otimização do uso de memória física podem ser alterada em BizTalk Server 2006 e em versões posteriores.
  • Por padrão, o Uso de memória do processo limite de regulagem é definido como 25. Se esse valor for excedido e o uso de memória de processo do BizTalk é mais de 300 MB, pode ocorrer uma condição de regulagem. Em um servidor de 32 bits, você pode aumentar o valor de uso de memória do processo para 50. Em um servidor de 64 bits, você pode aumentar este valor para 100. Isso permite mais consumo de memória pelo processo do BizTalk antes que ocorra a otimização.
  • O Uso de memória física limite de regulagem tem um valor padrão de 0. Esse limite mede a memória total do sistema. Portanto, se um valor diferente de 0 é configurado, uma condição de regulagem pode ocorrer se um processo do BizTalk não está usando memória alta.
Para obter mais informações sobre os limites de regulagem, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa559628.aspx

Dehydration otimização limites

Os limites de dehydration de memória padrão podem causar muito dehydration quando orquestrações são executadas em um host de 64 bits. Para obter mais informações sobre esse problema, consulte o tópico Propriedades de padrão de Dehydration no seguinte site da Microsoft Developer Network (MSDN):
http://msdn.microsoft.com/en-us/library/aa560586.aspx
Observação hosts de 64 bits são suportados no BizTalk Server 2006 e versões posteriores.

Hardware equivalente em uma instância de host de 32 bits, dehydration observado é nominal quando as mesmas orquestrações são executadas usando o dehydration de memória padrão limites de otimização.

Como a arquitetura de 64 bits fornece espaço de endereço de memória expandida (16 TB em vez de 4 GB), instâncias de host de 64 bits são alocadas significativamente mais memória do que instâncias host de 32 bits. Isso pode causar os limites de otimização de memória padrão seja excedido.

Para contornar esse comportamento, altere os valores de VirtualMemoryThrottlingCriteria e PrivateMemoryThrottlingCriteria no arquivo BTSNTSvc64.exe.config. Use os Bytes de Process\Virtual e os contadores do Monitor de desempenho de Bytes de Process\Private para determinar a maior quantidade de memória alocada por uma instância de orquestração.
  • Defina o valor de OptimalUsage para ambas as propriedades com base no seguinte:
    VirtualMemoryThrottlingCriteria: valor de Bytes de \Process\Virtual + 10 %
    PrivateMemoryThrottlingCriteria: valor de Bytes de \Process\Private + 10 %
  • Definir MaximalUsage para ambas as propriedades para o valor de OptimalUsage + 30 %
Por exemplo, se o valor de contador do Monitor de desempenho de Bytes para uma instância de coordenação de \Process\Virtual 5,784,787,695 bytes (5,517 MB), defina o valor de OptimalUsage para VirtualMemoryThrottlingCriteria 6,069 MB (5,784,787,695 * 1,10 = 6,363,266,464.5 bytes). Defina o valor de MaximalUsage para VirtualMemoryThrottlingCriteria 7,889 MB (6,363,266,464.5 * 1,30 = 8,272,246,403.85 bytes).

Se o valor de contador do Monitor de desempenho de Bytes de \Process\Private 435689400 bytes (415 MB), defina o valor de OptimalUsage para PrivateMemoryThrottlingCriteria para 457 MB (435689400 * 1,10 = 479258340 bytes). Defina o valor de MaximalUsage para PrivateMemoryThrottlingCriteria a 594 MB (479258340 * 1,30 = 623035842).

Neste exemplo, os seguintes valores seriam especificados no arquivo BTSNTSvc64.exe.config para reduzir a aceleração.
Reduzir esta tabelaExpandir esta tabela
Contador do Monitor de desempenhoMemória alocadaOptimalUsageMaximalUsage
\Process\Virtual bytes5784787695 bytes (5517 MB)60697889
Bytes de \Process\Private435689400 bytes (415 MB)457594
Esses valores, em seguida, poderia ser representados no arquivo BTSNTSvc64.exe.config da seguinte maneira:
<xlangs>
      <Configuration>
                  <Dehydration>
                              <VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
                              <PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
                  </Dehydration>
      </Configuration>
</xlangs>
Para determinar qual instância do host está executando a orquestração, você pode adequar o processo de identificação do \BizTalk:Messaging\ID processo e \Process\ID os contadores do Monitor de desempenho do processo. Em seguida, verifique o valor médio exibido para o correspondente \Process\Virtual Bytes e \Process\Private os contadores do Monitor de desempenho de Bytes.

Observação Alta dehydration pode causar uma redução significativa no desempenho quando o banco de dados do BizTalkMsgBoxDb está em execução no SQL Server 2008.

BizTalk Server Service Packs e atualizações cumulativas

BizTalk Server service packs e atualizações cumulativas incluem as correções mais recentes. Estes incluem aqueles que afetam os problemas conhecidos de System. OutOfMemoryException.

2281783 Lista de Service Pack e a atualização cumulativa de BizTalk Server 2006 R2

Microsoft BizTalk Server 2004 Service Pack 2

HeapDeCommitFreeBlockThreshold

Por padrão, o valor da chave do registro theHeapDeCommitFreeBlockThreshold é 0. Um valor 0 significa que a pilha Gerenciador de decommits cada página (KB) de 4 kilobytes que fica disponível. Liberação as operações podem causar fragmentação da memória virtual. O tamanho da configuração HeapDeCommitFreeBlockThreshold no Gerenciador de heap dependerá do tipo de trabalho que o sistema está fazendo. Um tamanho de 0x00040000 é de partida recomendados valor.

Considere as seguintes informações antes de alterar o valor do
HeapDeCommitFreeBlockThreshold
Registro chave:
  • Essa alteração só se aplica a fragmentação de memória problemas.
  • Essa alteração é todo o sistema. Portanto, a maioria dos processos serão Use mais memória na inicialização.
  • Somente considera essa alteração para sistemas que têm o BizTalk Servidor como sua principal missão.
Para ajudar a reduzir a fragmentação da memória virtual, você pode aumentar o tamanho da configuração HeapDeCommitFreeBlockThreshold no Gerenciador de heap, alterando o valor da seguinte chave do registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Gerenciador


Nome do valor: HeapDeCommitFreeBlockThreshold
Tipo do valor: REG_DWORD
Dados do valor: 0x00040000 (Este é o valor inicial recomendado.)
Valor padrão: ausente
Para obter mais informações sobre a chave de registro HeapDeCommitFreeBlockThreshold, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
315407A chave de registro "HeapDecommitFreeBlockThreshold"

Operações de transformação

Quando BizTalk Server executa operações de transformação XML em mensagens relativamente grandes em uma porta de recebimento em uma porta de envio, ou em XLANG, transformações XSL carregar a mensagem inteira na memória..

Para resolver esse problema, use um dos seguintes métodos:
  • Diminuir o número de mensagens que BizTalk Server processos ao mesmo tempo.
  • Reduzir o tamanho da mensagem XML que está sendo transformados.
O objeto System.Policy.Security.Evidence é freqüentemente usado em transformações e pode consumir muita memória. Quando um mapa contém uma functoid de script que usa inline C# (ou qualquer outra linguagem embutida), o assembly é criado na memória. O objeto System.Policy.Security.Evidence usa o objeto do assembly de chamada real. Essa situação cria um objeto raiz que não é excluído até que o serviço BizTalk é reiniciado.

A maioria dos functoids de BizTalk padrão é implementada como script embutido. Esses itens podem causar System. Byte [] objetos coletar na memória. Para minimizar o consumo de memória, recomendamos que você coloque qualquer mapa que usa esses functoids em um assembly pequeno. Em seguida, referenciar o assembly. Use o gráfico a seguir para determinar quais functoids usar script embutido e quais functoids não use script embutido.

Na segunda coluna, "Sim" significa que este functoid é implementada como script embutido e que causará System. Byte [] objetos coletar na memória. "Não" significa que este functoid não é implementada como script embutido e que não causará System. Byte [] objetos coletar na memória.
Reduzir esta tabelaExpandir esta tabela
FunctoidsScript embutido?
Todos os Functoids de seqüênciaSim
Todos os Functoids matemáticosSim
Todos os Functoids lógicos, exceto IsNilSim
Lógica IsNil FunctoidNão
Todos os Functoids de data/horaSim
Todos os Functoids de conversãoSim
Todos os Functoids científicosSim
Todos os Functoids cumulativosSim
Todos os Functoids de banco de dadosNão
Functoids avançadaScript embutido?
Functoid loopNão
Achatamento Functoid de mapeamento de valorNão
Assert FunctoidNão
Tabela extrator FunctoidNão
Tabela de repetição FunctoidNão
Functoid de script com embutido C#Sim
Functoid de script com JScript.NET embutidoSim
Functoid de script com embutido Visual Basic.NETSim
Functoid de script com XSLT embutidoNão
Functoid de script com XSLT embutido chamada modeloNão
Chamando Assembly externo Functoid de scriptNão
Nil Functoid de valorNão
Functoid de mapeamento de valorNão
Functoid de cópia em massaNão
Functoid de iteraçãoNão
Índice FunctoidNão
Contagem de registros FunctoidNão
BizTalk Server 2006 e versões posteriores melhoram significativamente o gerenciamento de memória para documentos grandes. Para fazer isso, BizTalk Server implementa uma mensagem configurável limite de tamanho para carregar documentos na memória durante as operações de transformação. O limite de tamanho de mensagem padrão é 1 MB. Para obter mais informações sobre a configuração de TransformThreshold, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa560481.aspx

Valores de atributo grandes e elemento grande

Quando o BizTalk Server executa um recebimento pipeline ou um pipeline de envio em um documento XML, a carga é processada no memória se o documento contém uma ou mais das seguintes entidades:
  • Valores de atributo grande
  • Valores de elemento grande
  • Grandes marcas de elemento ou atributo
Para resolver esse problema, limite o tamanho dessas entidades. Se este método não é possível, certifique-se de que a instância de HOST do BizTalk não processa vários documentos como esses ao mesmo tempo.

Componentes de pipeline personalizados

Você está usando um componente de pipeline personalizado que carrega todo o fluxo na memória. Todos os componentes que estão incluídos no BizTalk Server, exceto transformações, suporte a streaming. Esses componentes não usam o máximo memória durante o fluxo contínuo. No entanto, os componentes de pipeline personalizados podem não suportar fluxo contínuo.

Fluxo contínuo sob carga excessiva

Envie hosts ficam sem memória quando eles operam sob carga excessiva. BizTalk Server envie pipelines e enviar o fluxo de suporte de adaptadores. Em cada componente de fluxo contínuo, carrega um pequeno fragmento do fluxo na memória. Porque cada mensagem inclui outras estruturas de dados, com uma mensagem contexto que pode ser grande ou pequeno, este comportamento afeta o comportamento do BizTalk Servidor sob carga excessiva.

O comportamento de BizTalk Server é afetado porque o mecanismo carrega um número pré-configurado de mensagens. O número de mensagens que carrega o mecanismo é baseado nos valores que aparecem na Campos LowWaterMark e HighWaterMark da tabela Adm_serviceClass. A tabela Adm_serviceClass está no banco de dados de gerenciamento do BizTalk. Esses valores controlar o número de mensagens que envia ou processa que BizTalk Server o mesmo tempo.

O valor de HighWaterMark é o número total de mensagens que o mecanismo processa ao mesmo tempo. O valor padrão é 200 mensagens por CPU. Portanto, em um 8-processador servidor, o host de envio tentará processar 1.600 mensagens (200 * 8) no mesmo tempo. Se você assumir que cada mensagem é de 50 KB, as mensagens igual a 80 MB (1, 600 * 50 = 80, 000 KB).

Para resolver esse problema, você pode alterar o valor de HighWaterMark e o valor de LowWaterMark no banco de dados. Os valores que você usa dependem do tamanho as mensagens.

Para obter mais informações sobre causas comuns de um falta de memória de condição, consulte a seção "Memória crescimento no BizTalk Messaging" no seguinte site da Microsoft:
http://blogs.msdn.com/biztalkperformance
BizTalk Server 2006 e versões posteriores, você pode alterar o host padrão configurações de otimização. Para obter mais informações sobre como alterar o host padrão configurações de otimização, visite o seguinte site da Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/aa559628.aspx

Simplificar o problema

Se você tiver identificado um vazamento de memória, tente determinar a causa removendo componentes personalizados ou simplificando um mapa. Além disso, tente reproduzir o problema usando uma orquestração simple ou uma solução simples. Normalmente, você deve criar separado receber hosts para receberem adaptadores. Você também deve Crie hosts de envio separado para adaptadores de envio. Quando você usar esse método, cada adaptador pode executar em um processo separado. Portanto, se o seu processo de BizTalk Server passa por uma condição de falta de memória, você será sabe quais componentes estão envolvidos.

Etapas de solução de problemas

Para solucionar uma condição de falta de memória, use a depuração Ferramenta de diagnóstico para monitorar as alocações de memória ao longo do tempo. O diagnóstico de depuração ferramenta pode criar e analisar um arquivo de despejo de vazamento de memória (. dmp). Quando você solucionar problemas de vazamento de memória, o objetivo é anexar Leaktrack.dll antes da alta Reproduz a condição de memória para capturar o aumento da memória ao longo do tempo. LeakTrack.dll está incluído com a ferramenta Debug Diagnostics.
  1. Instale a ferramenta Debug Diagnostic.

    O seguinte arquivo está disponível para download no Centro de Download da Microsoft:

    Reduzir esta imagemExpandir esta imagem
    Baixar
    Baixe agora o pacote da ferramenta Debug Diagnostic.

    Para obter mais informações sobre como baixar arquivos de suporte da Microsoft, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
    119591 Como obter arquivos de suporte da Microsoft de serviços on-line
    Microsoft examinou esse arquivo em busca de vírus. A Microsoft usou o software de detecção de vírus mais atual que estava disponível na data em que o arquivo foi publicado. O arquivo é armazenado em servidores com segurança avançada que ajudam a evitar qualquer alteração não autorizada no arquivo.
  2. Use o Monitor de desempenho para coletar dados sobre o sistema desempenho. Esses dados podem fornecer indicadores importantes sobre a eficiência de o ambiente BizTalk Server. O objetivo é capturar o desempenho do processo ao longo do tempo. Portanto, habilitar o log do Monitor de desempenho antes do vazamento de memória ocorre.

Como usar o log do Monitor de desempenho

Selecione os dados de log
Para selecionar os dados de log, use o método apropriado para seu sistema operacional:
  • Para Windows Server 2008 e Windows Server 2008 R2
    1. Em Ferramentas administrativas, abra Monitor de confiabilidade e desempenho.
    2. Direito Monitor de desempenho, clique em Novo e, em seguida, clique em Conjunto de Coletores de dados.
    3. No Nome caixa, digite um nome descritivo e clique em Avançar.
    4. Observe o diretório raiz e clique em Avançar.
    5. Clique em Iniciar agora conjunto de Coletores de dadose clique em Concluir.
    6. Expandir Conjuntos de Coletores de dados, expanda Definido pelo usuário e selecione seu arquivo.
    7. Direito Log do Monitor de sistemae clique em Propriedades.
    8. Clique em Adicionar sobre o Contadores de desempenho na guia Selecionar os objetos a seguir e clique em Adicionar Depois de selecionar cada objeto:
      • .NET exceções do CLR
      • .NET memória do CLR
      • O BizTalk: mensagens
      • BizTalk:TDDS
      • Memória
      • Processo
      • Processador
      • Orquestrações XLANG/s
      Se SQL Server for local, adicione também os seguintes objetos:
      • SQLServer: Databases
      • Estatísticas de SQLServer:General
      • SQLServer: Gerenciador
    9. Clique em OK.
    10. Alterar o Valor do intervalo de exemplo caixa 5 segundos.

      Observação O valor do intervalo de amostragem e a hora de começar a monitorar são subjetivas. Esses valores dependem quando o vazamento de memória é reproduzido. Porque o arquivo de log pode ser grande, especifique um intervalo no qual você pode obter as informações que você deve ter sem sobrecarregar o servidor.
    11. Clique em OK.
    Para interromper a coleta de dados, clique em Parar sobre o Ação menu.
  • Para Windows Server 2003 ou Windows XP
    1. Expandir Logs de desempenho e Alertas.
    2. Direito Logs do contadore depois Clique em Novas configurações de Log. O Novas configurações de Logcaixa de diálogo é exibida.
    3. No Nome Digite um descritivo nome e clique em OK.
    4. Observe o local do arquivo de log. (Você também pode clicar no Arquivos de log guia e clique Configurar para alterar o local do arquivo de log).
    5. Clique em Adicionar contadores.
    6. Selecione Todos os contadores e Todos os instâncias.
    7. No Objeto de desempenho lista, selecione os objetos a seguir. Clique em Adicionar Depois de selecionar cada objeto.
      • .NET exceções do CLR
      • .NET memória do CLR
      • O BizTalk: mensagens
      • BizTalk:TDDS
      • Memória
      • Processo
      • Processador
      • Orquestrações XLANG/s
      Se SQL Server for local, adicione também os seguintes objetos:
      • SQLServer: Databases
      • Estatísticas de SQLServer:General
      • SQLServer: Gerenciador
    8. Clique em Fechar.
    9. Alterar o valor Amostragem de dados Intervalo 5 segundos.

      Observação O valor do intervalo de amostragem de dados e a hora de começar a monitorar são subjetivas. Esses valores dependem quando o vazamento de memória é reproduzido. Porque o arquivo de log pode ser grande, especifique um intervalo no qual você pode obter as informações que você deve ter sem sobrecarregar o servidor.
    10. Clique em OK.
    Para interromper a coleta de dados, clique com o botão direito no nome do log de contador e clique em Parar.
Obtenha o arquivo de despejo
Para obter o arquivo de despejo, use um dos seguintes métodos:
  • Método 1: automático
    Criar uma regra de memória e o vazamento com DebugDiag é a abordagem recomendada para capturar um despejo de memória. A regra de memória e vazamento anexa automaticamente o Leaktrack.dll. Isso é usado para controlar as alocações de memória. Para criar a regra de memória e vazamento, siga estas etapas:
    1. Iniciar a depuração Ferramenta de diagnóstico 1.1.
    2. Selecione Memória e vazamento de identificador, e Clique em Avançar.
    3. Selecione o Btsntsvc.exe processo e, em seguida, clique em Avançar.
    4. Na página Configurar regras de vazamento, siga estas etapas:
      1. Clique para selecionar o Iniciar memória rastreamento imediatamente quando a regra está ativada caixa de seleção. Caso contrário, você pode especificar um tempo de aquecimento antes de LeakTrack.dll é injetado no processo de BTSNTSvc.exe.
      2. Clique em Configurar, e, em seguida, faça o seguinte:
        • Confirmar que Criar automaticamente uma regra crash está selecionada. Selecionando esta opção, um despejo de memória será criado automaticamente se parar o processo de BTSNTSvc.exe.
        • Clique para selecionar o Gerar um userdump quando atingem bytes virtuais caixa de seleção e manter o valor padrão de 1024.
        • Clique para selecionar o e cada adicionais caixa de seleção e manter o padrão de 200.
        Selecionando os bytes virtuais alcance opção, um despejo de memória será criado automaticamente quando bytes virtuais usa 1024 MB. Se bytes virtuais aumenta em 200 MB, outro despejo de memória será criado automaticamente.
      3. Clique em Salvar & fechar.
      4. Clique em Avançar.
    5. Na página Selecione despejo local e nome da regra, clique em Avançar.

      Observação Você também pode alterar o caminho do arquivo de despejo no Local de Userdump caixa nesta página.
    6. Clique em Concluir Para tornar a regra active agora.
    Observação Agora é controlar o status da regra. Sempre que um despejo de memória é criado, irá aumentar o valor na coluna contagem de Userdump na guia regras. O local de despejo de memória padrão é c:\Arquivos de Files\DebugDiag\Logs.
  • Método 2: Manual
    Você pode anexar manualmente Leaktrack.dll e obter manualmente o arquivo de despejo de memória. Isso permite que você controle quando o despejo de memória é criado. Para fazer isso, siga estas etapas:
    1. Iniciar a depuração Ferramenta de diagnóstico 1.1.
    2. Clique no Processos guia.
    3. Com o botão direito do Btsntsvc.exe processo e, em seguida, clique em Monitor de vazamentos.
    4. No Ferramenta de diagnóstico de depuração caixa de diálogo Clique em Sime clique em OK.
    Crie uma regra de travamento para monitorar o processo de Btsntsvc.exe mesmo no caso do processo pára antes de criar o despejo de memória:
    1. Iniciar Ferramenta de diagnóstico Debug 1.1.
    2. Selecione Travamentoe clique em Avançar.
    3. Selecione Um processo específicoe clique em Avançar.
    4. Selecione o mesmo processo de Btsntsvc.exe e clique em Avançar.
    5. Sobre o Configuração avançada (opcional) página, clique em Avançar.
    6. No Selecione despejo local e nome de regra (opcional) caixa de diálogo, clique em Avançar.
    7. Selecione Ativar a regra agorae clique em Concluir.
    Quando o processo atinge 60 a 80% de RAM, o processo de Btsntsvc.exe com o botão direito e clique em Criar Userdump total. Se o processo de BizTalk pára antes de criar o despejo do usuário, a regra de travamento deve entrem em vigor e criar o despejo de memória.
Parar o log do Monitor de desempenho
Se você estiver capturando um despejo de memória e dados de Monitor de desempenho, pare o Monitor de desempenho log cerca de dois minutos após o despejo de memória é criado.
Analisar o arquivo de despejo
Para ajudar a determinar a causa de um vazamento de memória, você pode usar a depuração Ferramenta de diagnóstico para analisar o arquivo de despejo. Para fazer isso, siga estas etapas:
  1. Clique no Análise avançadaguia.
  2. Clique em Adicionar arquivos de dadose localize a arquivo. dmp.
  3. Selecione o Análise de pressão de memóriascript e clique em Iniciar análise.
Por padrão, um arquivo de relatório de análise (. mht) será criado na pasta c:\Arquivos de Files\DebugDiag\Reports quando a análise for concluída. O arquivo de relatório também será exibido no navegador. O arquivo de relatório contém os resultados da análise. Além disso, o arquivo de relatório pode conter recomendações resolver o vazamento de memória.

Se você usar personalizado DLLs, você pode adicionar o caminho do símbolo de ficheiros. pdb personalizados para análise. Fazer Isso, siga estas etapas:
  1. Abra a ferramenta Debug Diagnostics.
  2. Sobre o Ferramentas menu, clique em Opções e configurações.
  3. No Caminho de pesquisa do símbolo para depuraçãoDigite o caminho do símbolo.
Se você desejar analisar o arquivo de despejo de Ajuda, contate a Microsoft Serviços de suporte ao cliente. Para obter uma lista completa de serviços de suporte técnico informações sobre os custos e números de telefone, visite o seguinte Site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Antes de contatar o atendimento, compacte o arquivo de despejo, o log do Monitor de desempenho, o arquivo de relatório de análise e os logs de eventos (arquivos. evt) atualizados. Talvez você precise enviar que esses arquivos para um BizTalk Server engenheiro de suporte.

Propriedades

Artigo: 918643 - Última revisão: 13 de junho de 2012 - Revisão: 2.0
A informação contida neste artigo aplica-se a:
  • Microsoft BizTalk Server Branch 2010
  • Microsoft BizTalk Server Developer 2010
  • Microsoft BizTalk Server Enterprise 2010
  • Microsoft BizTalk Server Standard 2010
  • Microsoft BizTalk Server 2009 Branch
  • Microsoft BizTalk Server 2009 Developer
  • Microsoft BizTalk Server 2009 Enterprise
  • Microsoft BizTalk Server 2009 Standard
  • Microsoft BizTalk Server 2006 R2 Branch
  • Microsoft BizTalk Server 2006 R2 Developer Edition
  • Microsoft BizTalk Server 2006 R2 Enterprise Edition
  • Microsoft BizTalk Server 2006 R2 Standard Edition
  • Microsoft BizTalk Server 2006 Enterprise Edition
  • Microsoft BizTalk Server 2006 Developer Edition
  • Microsoft BizTalk Server 2006 Standard Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Partner Edition
  • Microsoft BizTalk Server 2004 Standard Edition
Palavras-chave: 
kbhowto kbmt KB918643 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 918643

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com