Compartilhar via


Dicas de desempenho de RPC diversas

Esta seção discute dicas de desempenho diversas para desenvolver servidores RPC de alto desempenho. Esta seção fornece muitas dicas que se referem ao cliente RPC. Desenvolver um cliente RPC corretamente 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 fornece servidores com melhor desempenho.

Usar o Acompanhamento de Identidade Estática

Se a segurança for usada, tente usar o acompanhamento de identidade estático. O rastreamento de identidade estático é mais barato em termos de uso de recursos do que o acompanhamento dinâmico de identidade. 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, verifique se a RPC está ciente desse fato para evitar que o RPC faça verificações de identidade alterada todas as vezes.

Usar a função RpcGetAuthorizationContextForClient

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

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

Se o acompanhamento dinâmico de identidade for usado, não modifique o token de thread/processo, a menos que seja absolutamente necessário. Mesmo que ele seja modificado para as configurações que tinha anteriormente, o token geralmente é suficientemente diferente do sistema de segurança para disparar 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 o 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.