その他の RPC パフォーマンスのヒント
このセクションでは、高パフォーマンス RPC サーバーを開発するためのその他のパフォーマンスのヒントについて説明します。 このセクションでは、RPC クライアントを参照する多くのヒントを提供します。 RPC クライアントを適切に開発すると、RPC サーバーのパフォーマンスが低下します。
Kerberos を使用する
セキュリティを使用する場合は、Kerberos を使用します。 サーバー側では、Kerberos は KDC へのアクセスを必要としません。 これにより、ワークロードがサーバーからクライアントに移動され、パフォーマンスの高いサーバーが提供されます。
静的 ID 追跡を使用する
セキュリティを使用する場合は、静的 ID 追跡を使用してみてください。 静的 ID 追跡は、動的 ID 追跡よりもリソース使用量の点で低コストです。 クライアント ID が変更され、サーバーが変更を認識しないようにする必要がある場合は、ID ごとに異なるバインド ハンドルを作成する代わりに動的追跡を使用します。 ただし、ID が同じ場合は、RPC が変更された ID を毎回チェックしないように、RPC がその事実を認識していることを確認してください。
RpcGetAuthorizationContextForClient 関数を使用する
Windows XP でアクセスをチェックする必要がある場合は、RpcGetAuthorizationContextForClient 関数を使用します。 結果として得られる Authz コンテキストにより、RPC ランタイムによって効率的にキャッシュされる非常に高速なアクセス チェックが可能になります。
必要な場合を除き、トークンを変更しないでください
動的 ID 追跡を使用する場合は、絶対に必要でない限り、スレッド/プロセス トークンを変更しないでください。 以前の設定に変更された場合でも、多くの場合、トークンはセキュリティ システムと十分に異なり、新しいセキュリティ コンテキストの確立をトリガーします。
コンテキスト ハンドルの混合モードシリアル化を検討する
コンテキスト ハンドルの既定のシリアル化モードはシリアル化 (排他) されます。 共有シリアル化モードでコンテキスト ハンドルの状態を変更しないすべての呼び出しを行うことを検討してください。 詳細については、「 RpcSsContextLockExclusive 」を参照してください。