Другие советы по производительности RPC
В этом разделе рассматриваются другие советы по повышению производительности для разработки серверов RPC высокой производительности. В этом разделе содержится множество советов, ссылающихся на клиент RPC. Разработка клиента RPC правильно позволяет серверу RPC выполнять меньше работы.
Использование Kerberos
Если используется безопасность, используйте Kerberos. На стороне сервера Kerberos не требует доступа к KDC. Это перемещает рабочую нагрузку с сервера на клиент, что обеспечивает более эффективное выполнение серверов.
Использование отслеживания статических удостоверений
Если используется безопасность, попробуйте использовать отслеживание статических удостоверений. Отслеживание статических удостоверений дешевле с точки зрения использования ресурсов, чем динамическое отслеживание удостоверений. Если удостоверение клиента изменяется, и сервер не должен знать об изменении, используйте динамическое отслеживание вместо создания другого дескриптора привязки для каждого удостоверения. Но если удостоверение совпадает, убедитесь, что RPC знает об этом факте, чтобы избежать того, чтобы RPC проверял изменение удостоверения каждый раз.
Использование функции RpcGetAuthorizationContextForClient
Если вам нужно проверить доступ в Windows XP, используйте функцию RpcGetAuthorizationContextForClient. Результирующий контекст Authz обеспечивает очень быстрые проверки доступа, которые эффективно кэшируются временем выполнения RPC.
Не изменяйте маркер, если не требуется
Если используется динамическое отслеживание удостоверений, не изменяйте маркер потока или процесса, если это не обязательно. Даже если он изменен на параметры, которые он ранее имел, маркер часто достаточно отличается от системы безопасности, чтобы активировать создание нового контекста безопасности.
Рассмотрим сериализацию смешанного режима для дескрипторов контекста
Режим сериализации по умолчанию для дескриптора контекста сериализуется (эксклюзивный). Рассмотрите возможность выполнения всех вызовов, которые не изменяют состояние дескриптора контекста в режиме общей сериализации. Дополнительные сведения см. в RpcSsContextLockExclusive.