Compreendendo a limitação de cliente
Aplica-se a: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007
Tópico modificado em: 2009-04-20
Com a versão do Microsoft Exchange Server 2007, um novo recurso conhecido como Limitação de Cliente RPC está disponível para administradores para ajudar a gerenciar a experiência de desempenho de usuário final. A limitação de cliente RPC foi apresentada para ajudar a impedir que os aplicativos clientes enviassem um excesso de operações RPC por segundo ao servidor Exchange que pudessem reduzir o desempenho geral do servidor. Esses aplicativos clientes incluem mecanismos de pesquisa do computador que pesquisam todos os objetos dentro da caixa de correio de um usuário, aplicativos personalizados desenvolvidos para manipular dados que estão nas caixas de correio do Exchange, produtos de arquivamento de email de classe corporativa ou caixas de correio habilitadas para CRM com marcação automática de email. A otimização de cliente permite que o Exchange identifique e ajude a impedir a monopolização do servidor por poucos usuários. Quando um cliente for identificado pelo servidor Exchange como o causador do efeito de desproporção no servidor, o servidor enviará uma solicitação de "retirada" para que o cliente reduza o efeito do desempenho no servidor.
Dica
No Microsoft Exchange Server 2003, havia uma chave de Registro chamada “Desabilitar Processos de Cliente MAPI” conforme descrito em Um recurso está disponível para desabilitar o acesso do programa MAPI a um computador que está executando o Exchange Server 2003. A chave de Registro poderia ser habilitada para ajudar a bloquear determinados processos de se conectar ao serviço Armazenamento de Informações. A chave de Registro não é mais implementada no Exchange 2007 e foi substituída por esse novo mecanismo Limitação de Cliente RPC.
Como a Limitação de Cliente RPC funciona
Se a latência média de RPC no Exchange 2007 for maior que o normal, os usuários do servidor Exchange podem começar a perceber uma degradação de serviço. A latência média de RPC deve ser mantida abaixo de 100 para manter uma experiência de usuário final aceitável.
A Limitação de Cliente RPC usa um método computacional baseado nas latências médias gerais de RPC e em estatísticas de operação remota (ROP) para determinar se um determinado cliente começará a receber solicitações de retirada para limitar o número de operações que o cliente pode executar no servidor. Esse método computa o atraso médio entre ROPs em três períodos de amostra por um determinado minuto. Essa lógica usa uma média de rolagem de uma taxa de ROP para o último minuto. Assim que esse valor for determinado, ele será comparado com a latência média de RPC geral. Se esse valor computador for inferior à latência média de RPC geral, as solicitações de retirada serão enviadas para o cliente.
Importante
Pequenos picos de ROPS altos por segundo não resultarão no envio de uma solicitação de retirada pelo cliente, desde que a latência média de RPC do último minuto seja baixa.
Por exemplo, se você tiver uma latência de RPC de 25 milissegundos, um cliente com bom funcionamento pode enviar com êxito até 40 ROPS por segundo (40*25=1000 milissegundos) sem limitação. Se a latência de RPC aumentou para 100 milissegundos, e o cliente tentou enviar a mesma quantidade de ROPS, então o cliente deve começar a receber solicitações de retirada do servidor. A partir deste ponto, o servidor permitirá apenas que o cliente envie até 10 ROPS por segundo, até que a próxima amostra de latência média de RPC seja novamente inferior a 100 milissegundos.
A lógica das solicitações de retirada possui duas partes principais. A primeira é como o servidor decide limitar o cliente e a segunda é a determinação de impedir o cliente de acessar o servidor. No serviço Armazenamento de Informações, existe um log de atividade do cliente que controla a atividade de cada usuário em um determinado servidor. Cada log de atividade do cliente é associado a uma sessão MAPI de usuários. Se o servidor decidir limitar um cliente, uma solicitação de retirada será adicionada à fila de retiradas da sessão para a sessão MAPI desse usuário. Essas informações de retirada são usadas para determinar se a solicitação do cliente foi aceita ou recusada pelo servidor. Se o usuário tiver várias caixas de correio abertas para uma única sessão MAPI, essas informações de retirada se aplicarão a todas as caixas de correio dessa sessão MAPI.
Dependendo da versão do Microsoft Office Outlook usada, o servidor enviará informações de retirada diferentes para o fluxo de resposta de RPC do cliente.
Para clientes do Microsoft Office Outlook 2007, uma solicitação ropBackoff é adicionada à fila de retiradas do usuário. Essa solicitação contém informações referentes ao atraso de retirada atual, e informa o cliente para atrasar o envio de outras solicitações para o servidor por um período específico. Então, o cliente tentará enviar novamente as solicitações depois que o período especificado expirar. O tempo máximo desse atraso de retirada é codificado para 2000 milissegundos ou dois segundos.
Dica
Recomendamos a utilização de clientes do Outlook 2007 em um servidor Exchange 2007 para uma excelente experiência de cliente.
Dica
O ropBackoff é um novo recurso do Outlook 2007 e os clientes anteriores do Outlook não compreendem essa função.
Para o Microsoft Office Outlook 2003 ou versões anteriores, um código de status RPC_S_SERVER_TOO_BUSY é enviado. Esse código de status simula a resposta que os servidores Exchange 2003 enviam para os clientes quando os threads de RPC de Armazenamento de Informações se esgotarem. As versões anteriores foram criadas para detectar essa exceção e aguardar um período antes de tentar a chamada novamente, conforme especificado na resposta do servidor para o cliente. O período padrão desse atraso é de um segundo. Se o cliente tentar a solicitação a cada segundo, durante um minuto, e ainda receber a mesma exceção todas as vezes, o cliente desiste e desconecta sua sessão com o servidor Exchange.
Monitorando condições de segundo por operações de RPC alto
Para ajudar a detectar quando clientes estão sendo retirados, o contador de desempenho “MSExchangeIS\Retirada de Cliente RPC/s” pode ser monitorado em servidores Exchange com a função de servidor Caixa de Correio instalada para determinar a velocidade com que as solicitações de retirada estão ocorrendo.
Contador | Valores esperados do Outlook 2007 | Valores esperados do Outlook 2003 e versões anteriores |
---|---|---|
MSExchangeIS\Retirada de Cliente RPC/s A taxa em que o servidor notifica um cliente para retirada. |
50 por cliente |
1 por cliente |
Para os clientes do Outlook 2007 que estão sendo limitados, você pode esperar que o contador “MSExchangeIS\Retirada de Cliente RPC/s” mostre aproximadamente 50 retiradas por segundo para cada cliente. Para o Outlook 2003 e versões anteriores, você deve esperar, no máximo, uma retirada por segundo para cada cliente. A diferença nas taxas esperadas é causada pela granularidade do método de retirada usado para os respectivos clientes. O menor período de retirada do Outlook 2003 é um segundo, embora o menor período de retirada do Outlook 2007 seja um milissegundo.
Quando as informações de retirada são enviadas para o cliente, os dados contêm duas partes. A primeira parte é o período em que a retirada foi inserida. A segunda parte é a duração do período da retirada. A duração do período da retirada é calculada com base nesta fórmula: (MSExchangeIS\Latência Média de RPC * Fator de limitação de RPC)/1000. Por padrão, o fator de limitação de RPC é 1000. Isso significa que o período da retirada é exatamente o valor da latência média de RPC. O valor de retirada que o servidor envia para o cliente é o número de milissegundos até o período de retirada expirar. Se o cliente enviar outra operação para o servidor antes que o período de retirada determinado expire, o servidor retornará outra ropBackoff com uma valor de atraso atualizado. Isso continuará ocorrendo até o período de retirada expirar, e removerá a ropBackoff da fila de retiradas do usuário. Um exemplo de como isso ocorre no Monitor de Desempenho pode ser visualizado no seguinte gráfico:
Ajustando condições de segundo por operações de RPC alto
Em servidores Exchange com a função de servidor Caixa de Correio instalada, uma chave de Registro está disponível para ajudar a ajustar a computação de limitações. Essa chave de Registro é chamada de Fator de Limitação de RPC e está localizada na chave HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem.
Dica
Esse valor não é definido por padrão e deve ser adicionado como um valor DWORD em uma chave mencionada anteriormente.
[HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem]
Fator de Limitação de RPC
DWORD: Pode variar entre 0 e 5000
Para mostrar como a modificação do Fator de Limitação de RPC funciona, considere o cenário em que você deseja configurar o servidor para retirar clientes por um longo período, como em 2 x Latência Média de RPC. Você pode fazer isso definindo o Fator de Limitação de RPC com um valor de 2000. Isso aumentará o período de retirada de cada sessão MAPI por um fator de dois. Nesse caso, se a Latência Média de RPC era de 50 milissegundos, um fator de limitação igual a 2000 (50 ms * 2000/1000) resultará em 100 milissegundos. Cada solicitação de retirada será estendida do padrão de 50 milissegundos para 100 milissegundos, o que atrasará outras solicitações MAPI de clientes no servidor por 100 milissegundos. Uma alteração de configuração como essa pode parecer para o cliente um desempenho reduzido do servidor. Contudo, se esse cliente tiver um efeito contrário no desempenho geral do servidor, a utilização de recursos no servidor Exchange por esse cliente será minimizada. Isso melhora a percepção do desempenho do servidor para todos os seus usuários.
Importante
Se esse problema ocorrer em muitos ou todos os clientes do servidor, uma investigação deve ser realizada no servidor, para detectar qualquer afunilamento que possa estar ocorrendo.
Para garantir uma excelente experiência com esse mecanismo de limitação, é recomendável ter pelo menos o Outlook 2007 e o Exchange 2007.
Você pode desabilitar todas as limitações, definindo o fator de limitação como 0.
Importante
Não recomendamos desabilitar a limitação de cliente no Armazenamento de Informações. Fazer essa alteração permitirá que clientes com funcionamento inadequado degradem o desempenho de qualquer servidor.
Se você acredita que deve desabilitar a limitação de cliente, é recomendável primeiro determinar a causa do afunilamento de desempenho no servidor. Na maioria dos casos, a identificação e a solução dessa causa determinarão a necessidade de o servidor enviar solicitações de retirada para os clientes.
Para obter mais informações
Para obter mais informações sobre como solucionar problemas de processamento de solicitação de RPC lento, consulte Solucionando problemas de processamento de solicitação de RPC lenta.
Para obter mais informações sobre como habilitar um monitoramento de cliente, consulte Como habilitar o monitoramento do lado do cliente.