Partilhar via


Dicas diversas de desempenho de RPC

Esta seção discute diversas dicas de desempenho para o desenvolvimento de servidores RPC de alto desempenho. Esta seção fornece muitas dicas que se referem ao cliente RPC. O desenvolvimento adequado de um cliente RPC permite que o servidor RPC execute menos trabalho.

Usar Kerberos

Se a segurança for usada, use Kerberos. No lado do servidor, o Kerberos não requer acesso ao KDC. Isso move a carga de trabalho do servidor para o cliente, o que proporciona servidores com melhor desempenho.

Usar o rastreamento de identidade estática

Se a segurança for usada, tente usar o rastreamento de identidade estática. O rastreamento de identidade estática é mais barato em termos de uso de recursos do que o rastreamento de identidade dinâmico. Se a identidade do cliente for alterada e o servidor não estiver ciente da alteração, use o controle dinâmico em vez de criar um identificador de associação diferente para cada identidade. Mas se a identidade for a mesma, certifique-se de que a RPC esteja ciente desse fato para evitar que a RPC faça verificações de identidade alterada todas as vezes.

Use a função RpcGetAuthorizationContextForClient

Se você precisar verificar o acesso no Windows XP, use a função RpcGetAuthorizationContextForClient. Os contextos Authz resultantes permitem verificações de acesso muito rápidas, que são eficientemente armazenadas em cache pelo tempo de execução RPC.

Não modifique o token a menos que seja necessário

Se o rastreamento dinâmico de identidade for usado, não modifique o token de thread/processo, a menos que seja absolutamente necessário. Mesmo que seja modificado para configurações que tinha anteriormente, o token muitas vezes é suficientemente diferente do sistema de segurança para desencadear o estabelecimento de um novo contexto de segurança.

Considere a serialização de modo misto para identificadores de contexto

O modo de serialização padrão para identificador de contexto é serializado (exclusivo). Considere fazer todas as chamadas que não modificam o estado do identificador de contexto no modo de serialização compartilhada. Consulte RpcSsContextLockExclusive para obter mais informações.