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

Traduções deste artigo Traduções deste artigo
ID do artigo: 918643 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

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 (OOM memória Insuficiente) de falta de memória no Microsoft BizTalk Server. Este artigo discute as considerações importantes ao avaliar o uso da 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 Alternar
  • 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 um vazamento de memória ou uma exceção de falta de memória no processo do BizTalk Server do Microsoft BizTalk Server.

Mais Informações

O processo do 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 por cento de RAM física. Um vazamento de memória pode causar uma exceção de memória insuficiente ao uso da memória aumenta até que o processo seja 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 à seguinte é registrada no log de eventos:

Tipo de evento: aviso
Categoria do evento: (1)
Identificação do 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 impossibilitar a conexão ou a perda de conectividade com um banco de dados do BizTalk. O desligamento do serviço será e a reinicialização automática em 1 minuto. Se o banco de dados problemático permanece indisponível, repita esse ciclo.
Mensagem de erro: exceção do tipo System. OutOfMemoryException foi lançada.
Fonte de erro:
Nome de host do BizTalk: BizTalkServerApplication
Nome de serviço do Windows: BTSSvc {DCC899FE-C62F-41BE-851A-8720B2EB9C14}

Tipo de evento: aviso
Categoria do evento: (1)
Identificação do 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 inesperado Erro de falta de memória. OU 2) impossibilitar a conexão ou a perda de conectividade com um banco de dados do BizTalk. O desligamento do serviço será e a reinicialização automática em 1 minuto. Se o banco de dados problemático permanece indisponível, repita esse ciclo.
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 da RAM e memória física

Como isso pode ser o comportamento esperado de um processo usar cerca de metade a RAM física, o uso de memória como uma diretriz. Por exemplo, se o BizTalk Server possui 4 gigabytes (GB) de RAM e o processo do BizTalk Server usa cerca de 500 megabytes (MB) de RAM, não haverá vazamento. Se o processo do 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 de execução demorada ou coordenação. Certifique-se de que você saiba quanta memória o host do BizTalk normalmente usa para determinar se um vazamento de memória ou uma condição de memória alta está ocorrendo.

Mensagens grandes

Quando o 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 as mensagens grandes, visite os seguintes sites da Microsoft Developer Network (MSDN):
http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx

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

Além disso, considere o uso alto da memória que pode ser esperado se BizTalk Server está processando as mensagens grandes. Convém atualizar o hardware para atender os requisitos de desempenho do BizTalk Server em seu ambiente.

Quanto tempo demora para reproduzir o vazamento de memória

Vazamento de memória pode ocorrer imediatamente ou eles podem se acumular ao longo do 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 requerem mais memória endereçável. Esta opção pode aumentar 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 o /3GB , 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 espaço de endereço virtual se o processo de endereço grande ciente. Um processo é endereço grande ciente de quando o executável tem o sinalizador IMAGE_FILE_LARGE_ADDRESS_AWARE definido no cabeçalho de imagem. Como o processo do 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 de 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 do 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 (o que é um aplicativo do.NET Framework) pode receber um erro de falta de memória 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 ) é 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 BizTalk de 800 MB para 1800 MB. Para obter mais informações sobre o desempenho dos aplicativos do.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 os bytes particulares.
Recolher 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-bit4 GB3400 MB2800 MB
64-bit64-bit8 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 3GB de capacidade de suporte para versões diferentes do BizTalk Server.
Recolher esta tabelaExpandir esta tabela
ProdutoPAE3GB
BizTalk Server 2004SimNão
BizTalk Server 2006SimSim
BizTalk Server 2006 R2SimSim
BizTalk Server 2009SimSim
Se você deve ativar a opção /3GB atender às necessidades de desempenho de um computador que esteja executando o BizTalk Server, é aconselhável considerar a adição de servidores para o grupo do BizTalk. Isso permite que você redimensione as instâncias host com uso intenso de memória.

Componentes do BizTalk que são executados dentro de um processo do Internet Information Services (IIS) também podem se beneficiar quando a opção /3GB é ativada.

A opção /3GB não é suportada em computadores que estejam executando o Windows SharePoint Services 2.0 ou posterior ou o 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 Microsoft:
933560 A opção de /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 efeito em potencial desses componentes no uso da memória. Um problema de memória comum ocorre quando um componente está transformando um documento. A operação de transformação é uma operação muita memória. Quando um documento é transformado, o BizTalk Server passa o fluxo de mensagens para a classe do Microsoft.NET Framework XslTransform dentro do processo do BizTalk.

Outro problema comum ocorre quando há manipulação intensiva. Manipulação intensiva pode consumir muita memória. Para obter mais informações sobre as 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 têm comportamento de memória diferentes. Portanto, você poderá ver resultados variados entre eles. Se você estiver usando o.NET Framework, confirme que o.NET Framework Service Pack 1 mais recente está instalado. Estes service packs corrigem diversos problemas de memória conhecidos. Para obter mais informações, clique nos números abaixo:

945757 Problemas que são 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 os seguintes Coletores de lixo (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. Esse é 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 desempenho muito alto. Este coletor de lixo aloca memória e, em seguida, posteriormente libera memória para oferecer alto desempenho no sistema. Portanto, um computador que esteja executando o BizTalk Server em conjunto com alguns componentes do.NET Framework parece ter um vazamento de memória. No entanto, nesse cenário, o uso alto da memória é o comportamento esperado. Se o computador ficar sem memória do sistema, ou se o processo parar de funcionar devido a insuficiência de memória endereçável, pode existir uma condição de vazamento de memória.

Se o computador que está executando 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. Esse é o comportamento padrão. O algoritmo de alocação do coletor de lixo de estação de trabalho não foi projetado para escalar ou de taxa de transferência máxima. Este coletor de lixo utiliza métodos de coletor de lixo simultâneas. Esses métodos destinam-se a aplicativos com interfaces de usuário complexas. Tais aplicativos podem exigir mais agressiva coleta de lixo.

Importante Nesta 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 que segue estes passos cuidadosamente. Para maior proteção, faça backup do registro antes de modificá-lo. Em seguida, você poderá 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 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 hospedagem CRL com os valores correspondentes:

Hospedagem de \CLR do HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostName

Nome: tipo
Dados: wks

BizTalk 2004

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

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

Nome: tipo
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 da memória física podem ser alterada no BizTalk Server 2006 e em versões posteriores.
  • Por padrão, o uso de memória de processo otimização do limite é 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 esse valor para 100. Isso permite mais consumo de memória pelo processo do BizTalk antes que ocorra a otimização.
  • O uso da memória física otimização do limite tem um valor padrão de 0. Este limite mede a memória total do sistema. Portanto, se for configurado um valor diferente de 0, uma condição de regulagem pode ocorrer se um processo do BizTalk não está usando a 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 de 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 otimização limites.

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 fazer com que os limites de limitaçã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 do Process\Private Bytes 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 nos seguintes itens:
    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 do contador de desempenho de Bytes para uma instância de orquestraçã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 do contador 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 para 594 MB (479258340 * 1,30 = 623035842).

Para este exemplo, os seguintes valores seriam especificados no arquivo BTSNTSvc64.exe.config para reduzir a otimização.
Recolher 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 poderia ser representados no arquivo BTSNTSvc64.exe.config da seguinte forma:
<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 de host está em execução a orquestração, você pode adequar o processo de identificação do processo de \BizTalk:Messaging\ID 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 A 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. Isso inclui aquelas que estão afetando os problemas conhecidos de System. OutOfMemoryException.

2281783 Lista de Service Pack e a atualização cumulativa para o 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 indica que o Gerenciador de heap decommits cada página de 4 kilobytes (KB) que fica disponível. Liberação operações podem causar a 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 é um valor de partida recomendado.

Considere as seguintes informações antes de você alterar o valor da
HeapDeCommitFreeBlockThreshold
chave do registro:
  • Essa alteração se aplica somente a fragmentationproblems de memória.
  • Essa alteração é todo o sistema. Portanto, a maioria processa usará mais memória na inicialização.
  • Somente considera essa alteração para sistemas que têm BizTalkServer 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 Manager


Nome do valor: HeapDeCommitFreeBlockThreshold
Tipo do valor: REG_DWORD
Dados do valor: 0x00040000 (Este é o valor de partida recomendado.)
Valor padrão: não presente
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 Microsoft:
315407 A chave de registro "HeapDecommitFreeBlockThreshold"

Transformar as operações

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

Para resolver esse problema, use um dos seguintes métodos:
  • Diminua o número de mensagens que o BizTalk Serverprocesses ao mesmo tempo.
  • Reduza o tamanho da mensagem XML que é beingtransformed.
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 conjunto é criado na memória. O objeto System.Policy.Security.Evidence usa o objeto do assembly chamado real. Essa situação cria um objeto com raiz que não é excluído até que o serviço BizTalk for 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, é recomendável que você coloque qualquer mapa que usa esses functoids em um pequeno conjunto. Em seguida, fazer referência a esse 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, "Yes" significa que este functoid é implementada como script embutido e que fará com que objetos do System. Byte [] coletar na memória. "Não" significa que este functoid não é implementada como script embutido, e que ele não fará com que objetos do System. Byte [] coletar na memória.
Recolher esta tabelaExpandir esta tabela
FunctoidsScript embutido?
Todos os Functoids de cadeia de caracteresSim
Todos os Functoids matemáticosSim
Todos os Functoids lógicos exceto IsNilSim
Lógica Functoid de IsNilNã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
Valor de nivelamento Functoid de mapeamentoNão
Declarar FunctoidNão
Tabela extrator FunctoidNão
Tabela Functoid loopNão
Functoid de script com Inline C#Sim
Functoid de script com JScript.NET embutidoSim
Functoid de script com o .NET Visual Basic embutidoSim
Functoid de script com o XSLT embutidoNão
Functoid de script com modelo de chamada XSLT embutidoNão
Functoid de script chamando Assembly externoNão
Nil Functoid de valorNão
Valor Functoid de mapeamentoNão
Functoid de cópia em massaNão
Functoid de iteraçãoNão
Functoid de índiceNã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, o BizTalk Server implementa um limite de tamanho de mensagem configurado 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 pipeline de recebimento ou de um pipeline de envio em um documento XML, a carga é processada na 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 esse método não for possível, certifique-se de que a instância de HOST do BizTalk não processa vários documentos como essas ao mesmo tempo.

Componentes de pipeline personalizados

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

Fluxo contínuo sob carga excessiva

Envie hosts fique sem memória ao operam sob carga excessiva. BizTalk Server envie pipelines e enviar o fluxo de suporte de adaptadores. Em fluxo, cada componente carrega um pequeno fragmento do fluxo na memória. Porque cada mensagem inclui outras estruturas de dados, juntamente com um contexto de mensagem podem ser grandes ou pequenos, este comportamento afeta o comportamento do BizTalk Server sob carga excessiva.

O comportamento do BizTalk Server é afetado porque o mecanismo carrega um número pré-configurado de mensagens. O número de mensagens que carrega o mecanismo baseia-se nos valores que são exibidos no campo LowWaterMark e o campo HighWaterMark da tabela Adm_serviceClass. A tabela Adm_serviceClass está no banco de dados de gerenciamento do BizTalk. Esses valores de controlam o número de mensagens do BizTalk Server processa ou envia ao 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 servidor com oito processadores, o host de envio irá tentar processar mensagens de 1.600 (200 * 8) ao mesmo tempo. Se você assumir que cada mensagem seja 50 KB, as mensagens igual a 80 MB (1, 600 * 50 = 80, 000KB).

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 das mensagens.

Para obter mais informações sobre causas comuns de uma condição de falta de memória, consulte a seção "Memória crescimento no BizTalk Messaging" no seguinte site da Microsoft:
http://blogs.msdn.com/biztalkperformance
Para o 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

Tente simplificar o problema

Se você identificou 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 criar 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 processo do BizTalk Server passa por uma condição de falta de memória, você saberá quais componentes estão envolvidos.

Etapas de solução de problemas

Para solucionar uma condição de falta de memória, use a ferramenta Debug Diagnostics para monitorar as alocações de memória ao longo do tempo. A ferramenta Debug Diagnostic 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 que reproduz a condição de memória alta para capturar o aumento da memória ao longo do tempo. Leaktrack.dll está incluído com a ferramenta Debug Diagnostic.
  1. Instale a ferramenta Debug Diagnostic.

    O seguinte arquivo está disponível para download no Microsoft Download Center:

    Recolher esta imagemExpandir esta imagem
    Faça o download
    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 Microsoft:
    119591 Como obter arquivos de suporte da Microsoft de serviços online
    Microsoft examinou esse arquivo em busca de vírus. A Microsoft usou o mais recente software de detecção de vírus que estava disponível na data em que o arquivo foi publicado. O arquivo está armazenado em servidores de 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 systemperformance. Esses dados podem fornecer indicadores importantes sobre a eficiência ofyour ambiente do BizTalk Server. O objetivo é capturar o tempo do processo performanceover. Portanto, habilite o registo do Monitor de desempenho antes dos leakoccurs de memória.

Como usar o registo do Monitor de desempenho

Selecione os dados para efetuar logon
Para selecionar os dados para fazer logon, use o método apropriado para seu sistema operacional:
  • Para o Windows Server 2008 e Windows Server 2008 R2
    1. Em Ferramentas administrativas, abra o Monitor de desempenho e confiabilidade.
    2. Clique duas vezes o Desempenho do sistema, clique em novo e, em seguida, clique em Conjunto de Coletores de dados.
    3. Na caixa nome , digite um nome descritivo e, em seguida, clique em Avançar.
    4. Observe o diretório raiz e, em seguida, clique em Avançar.
    5. Clique em Iniciar agora conjunto de Coletores de dadose, em seguida, clique em Concluir.
    6. Expanda Conjuntos de Coletores de dadosdefinido pelo Usuário e, em seguida, selecione o arquivo.
    7. Clique com botão direito Log do Monitor de sistemae, em seguida, clique em Propriedades.
    8. Clique em Adicionar na guia Contadores de desempenho os objetos a seguir e, em seguida, clique em Adicionar , depois que você selecionar cada objeto:
      • Exceções do .net CLR
      • Memória do .net CLR
      • BizTalk: mensagens
      • BizTalk:TDDS
      • Memória
      • Processo
      • Processador
      • Orquestrações XLANG/s
      Se o SQL Server for local, adicione também os seguintes objetos:
      • SQLServer: Databases
      • Estatísticas de SQLServer:General
      • SQLServer: Gerenciador de
    9. Clique em OK.
    10. Altere a caixa valor do intervalo de amostragem de 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. Como o arquivo de log pode ser grande, especifique um intervalo no qual você pode obter as informações que você precisa sem sobrecarregar o servidor.
    11. Clique em OK.
    Para interromper a coleta de dados, clique em Parar no menu ação .
  • Para o Windows Server 2003 ou para Windows XP
    1. Expanda Logs de desempenho e alertas.
    2. Logs do contadorde atalho e, em seguida, clique em Novas configurações de Log. Será exibida a caixa de diálogo Novas configurações de Log .
    3. Na caixa nome , digite um nome descritivo e, em seguida, clique em OK.
    4. Anote o local do arquivo de log. (Você pode também clicar na guia Arquivos de Log e, em seguida, clique em Configurar para alterar o local do arquivo de log.)
    5. Clique em Adicionar contadores.
    6. Selecione todos os contadores e todas as instâncias.
    7. Na lista de objetos de desempenho , selecione os objetos a seguir. Clique em Adicionar depois de selecionar cada objeto.
      • Exceções do .net CLR
      • Memória do .net CLR
      • BizTalk: mensagens
      • BizTalk:TDDS
      • Memória
      • Processo
      • Processador
      • Orquestrações XLANG/s
      Se o SQL Server for local, adicione também os seguintes objetos:
      • SQLServer: Databases
      • Estatísticas de SQLServer:General
      • SQLServer: Gerenciador de
    8. Clique em Fechar.
    9. Altere o valor no Intervalo de amostragem de dados como 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. Como o arquivo de log pode ser grande, especifique um intervalo no qual você pode obter as informações que você precisa sem sobrecarregar o servidor.
    10. Clique em OK.
    Para interromper a coleta de dados, clique com botão direito no nome do contador de log e, em seguida, clique em Parar.
Obter 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 vazamento de identificador com DebugDiag é a abordagem recomendada para capturar um despejo de memória. A regra de memória e vazamento de identificador anexa automaticamente Leaktrack.dll. Isso é usado para controlar as alocações de memória. Para criar a regra de memória e vazamento de identificador, siga estas etapas:
    1. Inicie a ferramenta Debug Diagnostic 1.1.
    2. Selecione memória e vazamento de identificadore, em seguida, clique em Avançar.
    3. Selecione o processo de Btsntsvc.exe e, em seguida, clique em Avançar.
    4. Na página Configurar regra de vazamento, siga estas etapas:
      1. Clique para selecionar a caixa de seleção Iniciar memória rastreamento imediatamente quando a regra é ativada . Caso contrário, você pode especificar um tempo de aquecimento antes de LeakTrack.dll é injetado no processo de BTSNTSvc.exe.
      2. Clique em Configurare, em seguida, faça o seguinte:
        • Confirme se criar automaticamente uma regra crash está selecionada. Ao selecionar esta opção, um despejo de memória será criado automaticamente se parar o processo BTSNTSvc.exe.
        • Clique para selecionar a caixa de seleção gerar um userdump quando atingem bytes virtuais e manter o valor padrão de 1024.
        • Clique para selecionar a caixa de seleção e cada adicionais e mantenha o padrão de 200.
        Selecionando os bytes virtuais alcance opção, um despejo de memória será criado automaticamente quando os 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 de memória na caixa Local de Userdump nesta página.
    6. Clique em Concluir para ativar a regra agora.
    Observação Agora está controlando o status da regra. Toda vez que um despejo de memória é criado, o valor aumenta na coluna contagem de Userdump na guia regras. O local de despejo de memória padrão é C:\Program Files\DebugDiag\Logs.
  • Método 2: Manual
    Você pode anexar manualmente Leaktrack.dll e obter o arquivo de despejo de memória manualmente. Isso permite que você controle quando o despejo de memória é criado. Para fazer isso, execute as seguintes etapas:
    1. Inicie a ferramenta Debug Diagnostic 1.1.
    2. Clique na guia processos .
    3. Clique com botão direito o processo de Btsntsvc.exe e, em seguida, clique em Monitor de vazamentos.
    4. Na caixa de diálogo Ferramenta Debug Diagnostics , clique em Sime, em seguida, clique em OK.
    Crie uma regra crash para monitorar o mesmo processo de Btsntsvc.exe, caso o processo é interrompido antes de criar o despejo de memória:
    1. Inicie a ferramenta Debug Diagnostic 1.1.
    2. Selecione a Falhae, em seguida, clique em Avançar.
    3. Selecione um processo específicoe, em seguida, clique em Avançar.
    4. Selecione o mesmo processo de Btsntsvc.exe e, em seguida, clique em Avançar.
    5. Na página Configuração avançada (opcional) , clique em Avançar.
    6. Na caixa de diálogo Selecione despejo local e nome da regra (opcional) , clique em Avançar.
    7. Selecione Ativar a regra agorae, em seguida, clique em Concluir.
    Quando o processo atinge 60% a 80% de RAM, o processo de Btsntsvc.exe de atalho e, em seguida, clique em Create Full Userdump. Se o processo do BizTalk pára antes de criar o despejo do usuário, a regra falha deve entrem em vigor e crie o despejo de memória.
Parar o log do Monitor de desempenho
Se você estiver capturando um despejo de memória e dados de desempenho do sistema, 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 ferramenta Debug Diagnostics para analisar o arquivo de despejo. Para fazer isso, execute as seguintes etapas:
  1. Clique na guia Advanced Analysis.
  2. Clique em Adicionar arquivos de dadose, em seguida, localize o arquivo the.dmp.
  3. Selecione o script de Análise de pressão de memóriae, em seguida, clique em Start Analysis.
Por padrão, um arquivo de relatório de análise (. mht) será criado na pasta C:\Program Files\DebugDiag\Reports quando a análise estiver 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 sobre como resolver o vazamento de memória.

Se você usar DLLs personalizadas, você pode adicionar o caminho do símbolo de ficheiros. pdb personalizados para análise. Para fazer isso, execute as seguintes etapas:
  1. Abra a ferramenta Debug Diagnostic.
  2. No menu Ferramentas , clique em Configurações de Optionsand.
  3. Na caixa Símbolo pesquisa caminho para depuração, digite o caminho do símbolo.
Se você deseja analisar o arquivo de despejo de Ajuda, entre em contato com o suporte técnico da Microsoft. Para obter uma lista completa dos números de telefone do serviços de suporte e informações sobre custos de suporte, visite o seguinte site da Microsoft:
http://support.microsoft.com/contactus/?ws=support
Antes de entrar em contato com o suporte técnico, compacte o arquivo de despejo, o log do Monitor de desempenho, o arquivo de relatório de análise e os logs de eventos atualizados (arquivos. evt). Você terá que enviar que esses arquivos para um BizTalk Server engenheiro de suporte.

Propriedades

ID do artigo: 918643 - Última revisão: quinta-feira, 30 de janeiro de 2014 - Revisão: 3.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 pelo software de tradução automática da Microsoft e eventualmente pode ter sido editado pela Microsoft Community através da tecnologia Community Translation Framework (CTF) ou por um tradutor profissional. A Microsoft oferece artigos traduzidos automaticamente por software, por tradutores profissionais e editados pela comunidade para que você tenha acesso a todos os artigos de nossa Base de Conhecimento em diversos idiomas. No entanto, um artigo traduzido pode conter erros de vocabulário, sintaxe e/ou gramática. A Microsoft não é responsável por qualquer inexatidão, erro ou dano causado por qualquer tradução imprecisa do conteúdo ou por seu uso pelos nossos clientes.
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