A contagem de threads de Caixa de Correio e de Categorizador ultrapassa o limite recomendado

[Este tópico pretende solucionar um problema específico acarretado pela ferramenta Exchange Server Analyzer. Você deve aplicá-lo apenas a sistemas em que a ferramenta Exchange Server Analyzer tenha sido executada e estejam passando por esse problema específico. A ferramenta Exchange Server Analyzer, disponível como download gratuito, coleta remotamente dados de configuração de cada servidor da topologia e analisa automaticamente os dados. O relatório resultante detalha problemas importantes de configuração, problemas potenciais e configurações de produto diferentes do padrão. Ao seguir estas recomendações, você poderá atingir melhor desempenho, escalabilidade, confiabilidade e tempo de operação. Para obter mais informações sobre a ferramenta ou para baixar as últimas versões, consulte "Microsoft Exchange Analyzers" em https://go.microsoft.com/fwlink/?linkid=34707.]  

Tópico modificado em: 2010-04-01

O Microsoft Exchange Best Practices Analyzer examina os processos que estão em execução nos servidores de Transporte do Exchange 2007. Isso inclui os servidores que estão executando a função Transporte de Hub e os servidores que estão executando a função Transporte de Borda.

O Exchange Best Practices Analyzer determina o número de threads de trabalho que o driver do repositório usa para a entrega de caixa de correio (MaxConcurrentMailboxDeliveries) e o número de threads que o componente do categorizador usa.

Se a soma dos threads de driver do repositório e os threads de categorizador excederem 80 por cento do limite do pool de threads do CLR (Common Language Runtime) do Microsoft .NET Framework, o Analyzer gerará uma mensagem de aviso.

É recomendável um limite superior de 80 por centro do pool de threads do CLR para o uso de threads de caixa de correio e de categorizador. Se o servidor exceder esse limite, ele ficará mais lento. Especificamente, se o parâmetro MaxConcurrentMailboxDeliveries estiver definido como um valor alto, como 100 ou mais, o servidor de transporte poderá sofrer uma redução dos threads de categorizador. Neste cenário, problemas na entrega de mensagens poderão ocorrer no ambiente do Exchange.

O categorizador é um componente de transporte do Exchange que processa mensagens de entrada. Ele determina como entregar as mensagens com base nas informações sobre os destinatários pretendidos. Depois que o categorizador recupera as informações do destinatário, ele aplica as diretivas, roteia as mensagens e executa a conversão de conteúdo com base nas informações do destinatário.

Os servidores de Transporte de Borda do Exchange 2007 usam o categorizador para rotear a mensagem para o destino apropriado. Um servidor de Transporte de Hub do Exchange 2007 usa o categorizador para expandir listas de distribuição e identificar destinatários ou endereços de encaminhamento alternativos.

O driver de repositório no servidor de Transporte de Hub entrega mensagens de e para servidores de Caixa de Correio. O parâmetro MaxConcurrentMailboxDeliveries especifica o número máximo de threads de entrega que podem estar abertos ao mesmo tempo no servidor de Transporte de Hub específico para entregar mensagens. O valor padrão para o parâmetro MaxConcurrentMailboxDeliveries é 30. Geralmente, o driver do repositório retém threads por períodos maiores durante o processo de entrega de mensagens. Portanto, se o parâmetro MaxConcurrentMailboxDeliveries estiver definido como um valor alto, os threads do pool de threads poderão estar indisponíveis para atender outras solicitações.

Para corrigir esse problema, use o cmdlet Set-TransportServer para configurar um valor menor para o parâmetro MaxConcurrentMailboxDeliveries. A soma dos threads de driver de repositório e dos threads de categorizador desse valor não devem ultrapassar o máximo de 80 por cento recomendado do pool de threads do CLR.

noteObservação:
Para determinar o tamanho do pool de threads de CLR, multiplique o número de processadores lógicos no servidor por 25.

Para configurar o parâmetro MaxConcurrentMailboxDeliveries

  1. No servidor de Transporte de Hub, inicie o Shell de Gerenciamento do Exchange.

  2. Para recuperar o valor de MaxConcurrentMailboxDeliveries atual, execute o comando a seguir. Substitua <nomedoservidor> pelo nome do servidor Exchange.

    Get-TransportServer <servername> | format-list
    
  3. Para definir um novo valor de MaxConcurrentMailboxDeliveries, execute o comando a seguir. Substitua <nomedoservidor> pelo nome do servidor Exchange e substitua <valor> por um inteiro, como 30.

    Set-TransportServer <servername> -MaxConcurrentMailboxDeliveries <value>
    
  4. Saia do Shell de Gerenciamento do Exchange.

Para obter mais informações

Para obter mais informações sobre os parâmetros do cmdlet Set-TransportServer, consulte Gerenciando otimização de mensagens.

Para obter mais informações sobre como usar o cmdlet Set-TransportServer, consulte Set- TransportServer.