Artigo: 918643 - Última revisão: segunda-feira, 28 de Fevereiro de 2011 - Revisão: 1.0 Como resolver uma fuga de memória ou de uma excepção de memória esgotada no processo do servidor de BizTalk
Nesta páginaSumárioFugas de memória são um problema comum. Poderá ter de experimentar
vários passos para localizar a causa específica de uma fuga de memória ou de uma excepção de-memória (OOM) no Microsoft BizTalk Server. Este artigo aborda questões importantes a considerar quando está a avaliar a utilização da memória e eventuais problemas relacionadas com a memória. Estas considerações incluem o seguinte:
INTRODUÇÃOEste artigo descreve como resolver problemas relacionados com uma fuga de memória ou
uma excepção de memória esgotada no processo do servidor de BizTalk do Microsoft BizTalk
Servidor. Mais InformaçãoO processo do servidor de BizTalk pode estar a ocorrer uma fuga de memória
Quando a utilização da memória no Gestor de tarefas do Microsoft Windows consome mais de 50
percentagem de memória RAM física. Uma fuga de memória pode causar uma excepção de memória esgotada
Quando a utilização da memória aumenta até o processo de fica sem memória de sistema ou
até que o processo deixa de funcionar. Quando este problema ocorre, uma mensagem de aviso semelhante a seguinte mensagem de erro é registada no registo de eventos: Evento
Tipo: aviso Tipo de evento: aviso Considerações importantesUtilização de RAM e memória físicaUma vez que pode ser um comportamento esperado para um processo utilizar cerca de metade da RAM física, utilize a utilização da memória como orientação. Por exemplo, se o servidor de BizTalk tiver 4 gigabytes (GB) de RAM e o processo do servidor BizTalk utiliza cerca de 500 megabytes (MB) de RAM, não haja fuga. Se o processo do servidor BizTalk utiliza cerca de 1 GB de RAM, poderá existir uma fuga de memória ou de uma situação de memória alta. O consumo de memória pode ser causado por um procedimento armazenado de execução longa ou orchestration. Certifique-se de que sabe que a quantidade de memória o anfitrião de BizTalk normalmente utiliza para determinar se uma fuga de memória ou a condição de memória alta está a ocorrer.Mensagens grandesQuando o BizTalk Server processa mensagens grandes, o sistema parece ter uma fuga de memória. No entanto, as mensagens podem estar a utilizar uma grande quantidade de memória. Para mais informações sobre mensagens grandes, visite os seguintes Web sites da MSDN (Microsoft Developer Network):http://blogs.msdn.com/biztalk_core_engine/Archive/2005/02/28/381700.aspx
(http://blogs.msdn.com/biztalk_core_engine/archive/2005/02/28/381700.aspx)
aspx de http://msdn.microsoft.com/en-us/library/aa560481 (BTS.10)
(http://msdn.microsoft.com/en-us/library/aa560481(BTS.10).aspx)
Além disso, considere a utilização de memória alta pode esperar que se BizTalk
Servidor está a processar mensagens grandes. Poderá pretender actualizar o hardware para
satisfazer os requisitos de desempenho do BizTalk Server no seu ambiente.Quanto tempo demora a reproduzir a fuga de memóriaFugas de memória podem ocorrer imediatamente ou podem acumular-se através de tempo. Ambos os cenários são comuns.Utilização do parâmetro /3GB em computadores de 32 bitsNormalmente, um processo pode aceder a 2 GB de espaço de endereçamento virtual. O/3GBparâmetro é uma opção para sistemas que necessitam de mais memória endereçável. Esta opção poderá melhorar a utilização da memória para o processamento de mensagens. No entanto, o/3GBcomutador permite apenas 1 GB de memória endereçável para operações de modo kernel. Além disso, este parâmetro pode aumentar o risco da falta de memória de conjunto.Para mais informações sobre o/3GBparâmetro, visite o seguinte Web site da MSDN (Microsoft Developer Network): http://msdn.microsoft.com/en-us/library/ms791558.aspx
(http://msdn.microsoft.com/en-us/library/ms791558.aspx)
Quando o/3GBcomutador está activada numa versão de 32 bits do Windows, o processo pode aceder a 3 GB de endereço virtual
espaço se o processo é grande-endereço tenha em atenção. Um processo é grande-endereço tenha em atenção quando o ficheiro executável tem o sinalizador IMAGE_FILE_LARGE_ADDRESS_AWARE definido no cabeçalho da imagem. Uma vez que o processo de BizTalk é grande-endereço tenha em atenção que BizTalk beneficiarão do parâmetro /3GB.Se uma instância de anfitrião do BizTalk de 32 bits estiver a executar uma versão de 64 bits do Windows (AMD64), os benefícios do processo de BizTalk da memória 4 GB espaço de endereços porque BizTalk é grande-endereço tenha em atenção. Por conseguinte, se mover as aplicações de memória alta para um servidor de 64 bits, poderá ser a melhor solução. Um processo de BizTalk de 64 bits numa versão de 64 bits do Windows (AMD64) tem 8 TB de memória endereçável. Também deve considerar os bytes virtuais e os bytes de privada utilizados pelo processo. Uma instância de anfitrião do BizTalk (que é um.NET Framework aplicação) poderá receber uma saída de erro de memória antes do valor de bytes do espaço Virtual atinge 2 GB. Isto pode ocorrer mesmo que o máximo de memória endereçável por um processo numa versão de 32 bits do Windows (sem o/3GBparâmetro) é 2 GB. Para obter uma explicação do motivo pelo qual esta situação pode ocorrer, visite os seguintes Web sites da MSDN (Microsoft Developer Network): http://msdn.microsoft.com/en-us/library/ms972959.aspx
(http://msdn.microsoft.com/en-us/library/ms972959.aspx)
http://blogs.msdn.com/tess/Archive/2005/11/25/496898.aspx
(http://blogs.msdn.com/tess/archive/2005/11/25/496898.aspx)
O/3GBparâmetro também aumenta o número máximo de bytes privado do processo de BizTalk de 800 MB para 1800 MB. Para mais informações sobre.NET Framework o desempenho de aplicações com o/3GBparâmetro activado, visite o seguinte Web site da Microsoft Developer Network (MSDN):http://msdn2.microsoft.com/en-us/library/ms998583.aspx
(http://msdn2.microsoft.com/en-us/library/ms998583.aspx)
A tabela seguinte resume estas informações e inclui os limites de práticos para bytes virtuais e de bytes privados.Reduzir esta tabela
http://msdn.microsoft.com/en-us/library/aa366778.aspx
(http://msdn.microsoft.com/en-us/library/aa366778.aspx)
A tabela seguinte lista de compatibilidade PAE e 3 GB para diferentes versões do BizTalk Server.Reduzir esta tabela
Componentes de BizTalk que são executados dentro de um processo de ' Serviços de informação Internet ' (IIS) poderá também beneficiar quando o/3GBcomutador está activada. O/3GBparâmetro não é suportado em computadores que executem o Windows SharePoint Services 2. 0 ou versões posteriores ou o SharePoint Portal Server 2003 SP2 ou versões posteriores.Para mais informações, clique no número de artigo seguinte para visualizar o artigo na Base de dados de conhecimento da Microsoft: 933560
(http://support.microsoft.com/kb/933560/
)
O parâmetro /3GB do Windows Server 2003 não é suportado no Windows SharePoint Services 2. 0 ou versões posteriores ou no SharePoint Portal Server 2003 Service Pack 2 ou de versões posteriores Utilização de componentes personalizadosSe utilizar componentes personalizados, tais como condutas ou componentes de serviço, tem de saber o que fazer estes componentes. Também tem de saber o efeito potencial estes componentes na utilização da memória. A problema de memória comum ocorre quando um componente está a transformar um documento. O a operação de transformação é uma operação que utilizem muita memória. Quando um documento estiver BizTalk Server transformados, transmite a sequência de mensagem para o Microsoft.NET QuadroXslTransformclasse no âmbito do processo de BizTalk.Outro problema comum ocorre quando não existe cadeia intensiva manipulação. Cadeia intensiva manipulação pode consumir muita memória. Para mais informações sobre formas de melhorar o desempenho, visite o seguinte Web site da Microsoft Developer Network (MSDN): http://msdn2.microsoft.com/en-us/library/ms998547
(http://msdn2.microsoft.com/en-us/library/ms998547)
Versão do.NET FrameworkO Microsoft.NET Framework 2. 0 e o.NET Framework 1. 1 têm o comportamento de memória diferente. Por conseguinte, poderá ver vários resultados entre eles. Se estiver a utilizar o.NET Framework, confirme que o mais tardar.NET Framework Service Pack 1 está instalado. Estes service packs resolvem vários problemas conhecidos de memória. Para mais informações, clique nos números de artigo que se segue:945757 (http://support.microsoft.com/default.aspx?scid=kb;EN-US;945757) Problemas corrigidos na.NET Framework 2. 0 Service Pack 1 867460 (http://support.microsoft.com/kb/867460/ ) Lista de erros corrigidos no.NET Framework 1. 1 Service Pack 1 Número de processadoresO common language runtime (CLR) tem o seguinte lixo colectores (GC):
Se o computador ou seja com o BizTalk Server é um sistema de processador único, o.NET Framework utiliza a versão de estação de trabalho do motor de execução. Esta é a predefinição comportamento. O algoritmo de atribuição do colector de lixo de estação de trabalho não é concebido para o dimensionamento ou para um débito máximo. Utiliza esta colector de lixo métodos do colector de lixo em simultâneo. Estes métodos são concebidos para aplicações que têm interfaces de utilizador complexos. Tais aplicações podem exigir recolha de lixo mais agressiva. ImportanteEsta secção, método ou tarefa contém passos que explicam como modificar o registo. No entanto, poderão ocorrer problemas graves se modificar o registo incorrectamente. Por conseguinte, certifique-se de que siga estes passos cuidadosamente. Para uma maior protecção, cópia do registo antes de o modificar. Em seguida, pode restaurar o registo se ocorrer um problema. Para mais informações sobre como efectuar cópias de segurança e restaurar o registo, clique no número de artigo seguinte para visualizar o artigo na Base de dados de conhecimento da Microsoft: 322756
(http://support.microsoft.com/kb/322756/
)
Como efectuar cópias de segurança e restaurar o registo no Windows Por vezes, poderá ser adequado executar a versão de estação de trabalho do motor de execução num sistema com múltiplos processadores. Pode utilizar a seguinte chave de registo para mudar para a versão de estação de trabalho do motor de execução.BizTalk 2006 e versões posterioresCrie a seguinte chave de registo de cadeia de hospedagem da CRL com os valores correspondentes:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTSSvc$BizTalkHostNameHospedagem de \CLR Nome: sabor Dados: wks BizTalk 2004Crie a seguinte chave de registo de cadeia de hospedagem da CRL com os valores correspondentes:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\BTSSvc {GUID} Anfitrião \CLR Nome: sabor Dados: wks Para mais informações, visite os seguintes Web sites da MSDN (Microsoft Developer Network): http://msdn2.microsoft.com/en-us/library/ms973838
(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 (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çõesUtilização da memória de processos e limiares de optimização de utilização de memória físicaOUtilização da memória de processoseUtilização da memória físicaoptimização de limiares pode ser alterada no BizTalk Server 2006 e em versões posteriores.
http://msdn.microsoft.com/en-us/library/aa559628.aspx
(http://msdn.microsoft.com/en-us/library/aa559628.aspx)
Desidratação de limiares de optimizaçãoOs limiares de desidratação de memória predefinido podem causar demasiado desidratação, quando orchestrations são executadas num anfitrião de 64 bits. Para mais informações sobre este problema, consulte oPropriedades predefinidas de desidrataçãotópico sobre o seguinte Web site da Microsoft Developer Network (MSDN):http://msdn.microsoft.com/en-us/library/aa560586.aspx
(http://msdn.microsoft.com/en-us/library/aa560586.aspx)
Notaanfitriões de 64 bits são suportadas no BizTalk Server 2006 e versões posteriores.Em hardware equivalente numa instância de anfitrião de 32 bits, desidratação observada é nominal quando os mesmos orchestrations são executadas utilizando a desidratação de memória predefinido limiares de optimização. Uma vez que a arquitectura de 64 bits fornece espaço de endereços de memória expandida (16 TB em vez de 4 GB), as instâncias de anfitrião de 64 bits são atribuídas significativamente mais memória do que instâncias de anfitrião de 32 bits. Isto pode causar os limiares de optimização de memória predefinido ser excedido. Para contornar este comportamento, altere os valores de VirtualMemoryThrottlingCriteria e PrivateMemoryThrottlingCriteria no ficheiro BTSNTSvc64.exe.config. Utilize os Bytes de Process\Virtual e os contadores do Monitor de desempenho do Process\Private Bytes para determinar a quantidade maior de memória que está a ser atribuída por uma instância de orchestration.
Se o valor de contador do Monitor de desempenho de Bytes de \Process\Private for 435689400 bytes (415 MB), defina o valor de OptimalUsage para PrivateMemoryThrottlingCriteria a 457 MB (435689400 * 1. 10 = 479258340 bytes). Defina o valor de MaximalUsage para PrivateMemoryThrottlingCriteria a 594 MB (479258340 * 1,30 = 623035842). Para este exemplo, os seguintes valores teriam de ser especificados no ficheiro BTSNTSvc64.exe.config para reduzir a aceleração. Reduzir esta tabela
<xlangs>
<Configuration>
<Dehydration>
<VirtualMemoryThrottlingCriteria OptimalUsage="6069" MaximalUsage="7889" IsActive="true" />
<PrivateMemoryThrottlingCriteria OptimalUsage="457" MaximalUsage="594" IsActive="true" />
</Dehydration>
</Configuration>
</xlangs>NotaA desidratação elevada poderá provocar uma diminuição significativa no desempenho quando a base de dados do BizTalkMsgBoxDb está em execução no SQL Server 2008. O BizTalk Server Service Packs e actualizações cumulativasBizTalk Server service packs e actualizações cumulativas incluem as correcções mais recentes. Estas incluem as que afectam os problemas conhecidos de System.OutOfMemoryException.2281783 (http://support.microsoft.com/default.aspx?scid=kb;en-US;2281783) Lista de Service Pack e de actualização cumulativa para o BizTalk Server 2006 R2 Microsoft BizTalk Server 2004 Service Pack 2 (http://www.microsoft.com/downloads/en/details.aspx?FamilyId=D20B4510-E5A6-4D7B-87A1-4BD52BDD57B8&displaylang=en) HeapDeCommitFreeBlockThresholdPor predefinição, o valor de chave de registo theHeapDeCommitFreeBlockThreshold é 0. Um valor de 0 significa que a área de dados dinâmicos Gestor de decommits de cada página de (KB) de 4 quilobytes que fica disponível. À anulação operações podem provocar a fragmentação de memória virtual. O tamanho dasHeapDeCommitFreeBlockThresholda definição no Gestor de pilha dependerá do tipo de trabalho que o sistema está a fazer. Um tamanho de 0x00040000 é um iniciar recomendada valor.Considere as seguintes informações antes de alterar o valor do HeapDeCommitFreeBlockThreshold registo
chave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session
Gestor Nome do valor: HeapDeCommitFreeBlockThreshold Tipo de valor: REG_DWORD Dados do valor: 0x00040000 (este é o valor inicial recomendado.) Valor predefinido: não presente 315407
(http://support.microsoft.com/kb/315407/
)
A chave de registo de "heapdecommitfreeblockthreshold" Operações de transformaçãoQuando o BizTalk Server efectua operações de transformação XML em relativamente grandes de mensagens de uma porta de recepção, de uma porta de envio, ou na XLANG, transformações XSL carregar a mensagem completa na memória..Para resolver este problema, utilize um dos seguintes métodos:
A maior parte das functoids de BizTalk a predefinição é implementados como script de inline. Estes itens podem causar System. byte [] objectos recolher na memória. Para minimizar o consumo de memória, recomendamos que coloque qualquer mapa que utiliza estes functoids numa assemblagem pequena. Em seguida, fazer referência a essa assemblagem. Utilizar o gráfico seguinte para determinar quais functoids utilizar o script de inline e que functoids não utilizar o script de inline. Na segunda coluna, "Sim" significa que este functoid é implementada como inline script e de que causará System. byte [] objectos recolher na memória. "Não" significa que este functoid não é implementada como script de inline e que não causará System. byte [] objectos recolher na memória. Reduzir esta tabela
http://msdn2.microsoft.com/en-us/library/aa560481.aspx
(http://msdn2.microsoft.com/en-us/library/aa560481.aspx)
Valores de atributo de grandes dimensões e valores de elemento de grandes dimensõesQuando o BizTalk Server executa uma recepção condutas de longa distância ou uma tubagem de envio num documento XML, o payload é processado de memória, se o documento contém um ou mais das seguintes entidades:
Componentes de tubagens personalizadoEstiver a utilizar um componente de tubagem personalizado que carrega todo transmissão em sequência na memória. Todos os componentes que estão incluídos com o BizTalk Server, excepto as transformações, suporta a transmissão em sequência. Estes componentes não utilizam o máximo memória durante a transmissão em sequência. No entanto, não poderão não suportar a componentes de tubagens personalizado transmissão em sequência.Transmissão em sequência sob tensão pesadoEnvie anfitriões ficou sem memória que operem sob tensão pesado. BizTalk Server enviar tubagens e enviar a transmissão em sequência de suporte de placas. No transmissão em sequência, cada componente carrega um pequeno fragmento da sequência na memória. Uma vez que cada mensagem inclui outras estruturas de dados, juntamente com uma mensagem contexto que pode ser grande ou pequena, este comportamento afecta o comportamento do BizTalk Servidor sob tensão pesado.O comportamento do BizTalk Server é afectado uma vez que o motor carrega um número de pré-configurado de mensagens. O número de mensagens que carrega o motor baseia-se os valores que aparecem do Campo de LowWaterMark e o campo HighWaterMark da tabela Adm_serviceClass. A tabela de Adm_serviceClass é a base de dados de Gestão BizTalk. Estes valores controlar o número de mensagens que o BizTalk Server processa ou envia o mesmo tempo. OHighWaterMarkvalor é o número total de mensagens que processa o motor ao mesmo tempo. O valor predefinido é de 200 mensagens por CPU. Por conseguinte, numa 8-processador servidor, o anfitrião de envio irá tentar processar mensagens de 1 600 (200 * 8) ao mesmo tempo. Se assumir que cada mensagem é 50 KB, as mensagens igual a 80 MB (1, 600 * 50 = 80, 000 KB). Para resolver este problema, pode alterar oHighWaterMarkvalor e oLowWaterMarkvalor na base de dados. Os valores que utilizar dependem do tamanho as mensagens. Para mais informações sobre causas comuns de um de memória condição, consulte a secção de "Memória crescimento no BizTalk Messaging" no seguinte Web site Microsoft: http://blogs.msdn.com/biztalkperformance
(http://blogs.msdn.com/biztalkperformance)
Para o BizTalk Server 2006 e versões posteriores, pode alterar o anfitrião predefinido
definições de optimização. Para mais informações sobre como alterar o anfitrião predefinido
definições de optimização, visite o seguinte Web site da Microsoft Developer Network (MSDN):http://msdn2.microsoft.com/en-us/library/aa559628.aspx
(http://msdn2.microsoft.com/en-us/library/aa559628.aspx)
Tente simplificar o problemaSe tiver identificado uma fuga de memória, tente determinar a causa pela remoção de componentes personalizados ou simplificar um mapa. Além disso, tente reproduzir o problema utilizando um orchestration simple ou uma solução simples. Normalmente, que deve criar separado receber anfitriões para recebem placas. Deverá também Crie anfitriões enviar separada para placas de envio. Quando utilizar este método, cada placa pode executar um processo em separado. Por conseguinte, se o processo do servidor de BizTalk experiências uma condição de memória esgotada, será sabe quais os componentes envolvidos.Os passos de resolução de problemasPara resolver uma condição de memória esgotada, utilize a depuração Ferramenta de diagnóstico para monitorizar as atribuições de memória ao longo do tempo. O diagnóstico de depuração ferramenta, pode criar e analisar um ficheiro de informação de fuga de memória (. dmp). Quando resolução de problemas de fugas de memória, o objectivo consiste em anexar Leaktrack.dll antes da mais alta Reproduz a condição de memória para memória crescimento ao longo do tempo de captura. Leaktrack.dll é incluído com a ferramenta Debug Diagnostics.
Como utilizar o registo do Monitor de desempenhoSeleccione os dados para iniciar sessãoPara seleccionar os dados para iniciar sessão, utilize o método adequado para o sistema operativo:
Obter o ficheiro de informaçãoPara obter o ficheiro de informação, utilize um dos seguintes métodos:
Parar o registo do Monitor de desempenhoSe estiver a capturar uma informação de memória e os dados do Monitor de desempenho, deixar de cerca de dois minutos depois de criada a informação de memória de registo do Monitor de desempenho.Analisar o ficheiro de informaçãoPara ajudar a determinar a causa de uma fuga de memória, pode utilizar a depuração Ferramenta de diagnóstico para analisar o ficheiro de informação. Para tal, siga estes passos:
Se utilizar personalizada DLLs, pode adicionar o caminho de símbolos dos ficheiros. pdb personalizados para análise. Fazer Isto, siga estes passos:
http://support.microsoft.com/contactus/?ws=support
(http://support.microsoft.com/contactus/?ws=support)
Antes de contactar o suporte técnico, comprima o ficheiro de informação, o registo do Monitor de desempenho, o ficheiro de mapa de análise e os registos de eventos actualizados (ficheiros. evt). Poderá ter de enviar o que engenheiro de suporte estes ficheiros para um servidor de BizTalk.A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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
(http://support.microsoft.com/kb/918643/en-us/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesObtenha Ajuda AgoraTraduções de Artigos |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo
