其他 RPC 性能提示
本部分讨论开发高性能 RPC 服务器的其他性能提示。 本部分提供了许多引用 RPC 客户端的提示。 正确开发 RPC 客户端可使 RPC 服务器执行更少的工作。
使用 Kerberos
如果使用安全性,请使用 Kerberos。 在服务器端,Kerberos 不需要访问 KDC。 这会将工作负荷从服务器移动到客户端,从而提供性能更好的服务器。
使用静态标识跟踪
如果使用安全性,请尝试使用静态标识跟踪。 静态标识跟踪在资源使用方面比动态标识跟踪便宜。 如果客户端标识发生更改,并且服务器不应知道更改,请使用动态跟踪,而不是为每个标识创建不同的绑定句柄。 但是,如果标识相同,请确保 RPC 知道这一事实,以避免 RPC 每次都检查更改的标识。
使用 RpcGetAuthorizationContextForClient 函数
如果需要在 Windows XP 中检查访问权限,请使用 RpcGetAuthorizationContextForClient 函数。 生成的 Authz 上下文可实现非常快速的访问检查,这些检查由 RPC 运行时有效缓存。
除非必要,否则请勿修改令牌
如果使用动态标识跟踪,除非绝对必要,否则不要修改线程/进程令牌。 即使它修改为之前具有的设置,令牌通常与安全系统大不相同,从而触发新安全上下文的建立。
考虑上下文句柄的混合模式序列化
上下文句柄的默认序列化模式是序列化 (独占) 。 请考虑在共享序列化模式下进行所有不修改上下文句柄状态的调用。 有关详细信息 ,请参阅 RpcSsContextLockExclusive 。