クライアント調整について

 

適用先: Exchange Server 2007 SP3, Exchange Server 2007 SP2, Exchange Server 2007 SP1, Exchange Server 2007

トピックの最終更新日: 2009-04-20

Microsoft Exchange Server 2007 のリリースにより、RPC クライアント調整と呼ばれる新機能を使用して、管理者がエンド ユーザーのパフォーマンスを管理できるようになりました。クライアント アプリケーションが Exchange サーバーに 1 秒間に送信する RPC 操作の数が多すぎると、サーバー全体のパフォーマンスが低下する可能性があります。RPC クライアント調整は、クライアント アプリケーションがこのように多数の RPC 操作を送信できないようにするために導入されました。これらのクライアント アプリケーションには、ユーザーのメールボックス内のすべてのオブジェクトを検索するデスクトップ検索エンジン、Exchange メールボックス内のデータを操作するために記述されたカスタム アプリケーション、エンタープライズ規模の電子メール アーカイブ製品、電子メールの自動タグ付けが有効になっている CRM 対応のメールボックスなどがあります。クライアント調整により、Exchange では少数ユーザーがサーバーを独占する状態を識別でき、それを防止できるようになります。クライアントがサーバーに過度の影響を与えていると Exchange サーバーによって確認されると、サーバーはサーバーのパフォーマンスに対する影響を低減するために、クライアントに "バックオフ" 要求を送信します。

note注 :
Microsoft Exchange Server 2003 では、「機能は、機能は、プログラムの Exchange Server 2003 が実行されているコンピュータへの MAPI アクセスを無効にするよう使用できます。」で示すように、"Disable MAPI Client Processes" という名前のレジストリ キーがありました。このレジストリ キーを有効にすると、特定のプロセスによる Information Store サービスへの接続を制限することができました。このレジストリ キーは Exchange 2007 には実装されず、この新しい RPC クライアント調整メカニズムに置き換えられています。

RPC クライアント調整のしくみ

Exchange 2007 サーバーで RPC の平均待機時間が通常よりも長い場合、Exchange サーバーのユーザーのサービスが大幅に低下し始める場合があります。エンド ユーザーの操作環境を許容範囲に維持するには、RPC の平均待機時間を 100 ミリ秒未満に抑える必要があります。

RPC クライアント調整では RPC の全体平均待機時間とリモート操作 (ROP) の統計に基づいた演算方法を使用して、特定のクライアントがサーバーに対して実行できる操作数を制限するために、そのクライアントに対するバックオフ要求の送信開始を決定します。この方法では、所定の 3 回以上のサンプリング収集期間から ROP の平均遅延を計算します。このロジックでは、過去 1 分間の ROP 率の移動平均を使用します。この値が決まると、RPC の平均待機時間全体と比較されます。この計算値が RPC の平均待機時間全体よりも低い場合、バックオフ要求がクライアントに送信されます。

important重要 :
短いスパイクの ROP が 1 秒あたりに多数発生しても最後の 1 分間の RPC の平均待機時間の値が低い限り、バックオフ要求はクライアントに送信されません。

たとえば、RPC の待機時間が 25 ミリ秒の場合、良好なクライアントは調整を受けることなく 1 秒あたり最大 40 ROP (40*25=1,000 ミリ秒) を正しく送信できます。RPC の待機時間が 100 ミリ秒に増え、クライアントが同じ量の ROP を送信しようとする場合、そのクライアントはサーバーからバックオフ要求を受信し始めます。この時点から、RPC の平均待機時間の次のサンプルが再度 100 ミリ秒未満になるまで、サーバーはクライアントに対して 1 秒あたり最大 10 ROP のみ送信することを許可します。

バックオフ要求のロジックは、主に 2 つの部分から構成されています。1 番目の部分はサーバーがクライアント調整を判断する方法で、2 番目の部分はクライアントがサーバーにアクセスするのをブロックする判断です。Information Store サービス内には、特定のサーバーに対する各ユーザーの動作を常に追跡するクライアント動作状況ログがあります。各クライアント動作状況ログは、ユーザーの MAPI セッションに関連付けられています。サーバーがクライアントを調整することを判断すると、そのユーザーの MAPI セッションのセッション バックオフ キューにバックオフ要求が追加されます。このバックオフ情報は、サーバーがクライアント要求を受け付けるか、または拒否するかを判断するために使用されます。ユーザーが 1 つの MAPI セッションで複数のメールボックスを開いている場合、その MAPI セッションのすべてのメールボックスにこのバックオフ情報が適用されます。

使用されている Microsoft Office Outlook のバージョンによって、サーバーはクライアントの RPC 応答ストリームに異なるバックオフ情報を送信します。

  • Microsoft Office Outlook 2007 クライアントの場合、ユーザーのバックオフ キューに ropBackoff 要求が追加されます。この要求には、現在のバックオフ遅延に関する情報が含まれており、その後のサーバーへの要求を指定期間遅らせるようにクライアントに通知します。クライアントは、一定期間を経過した後で要求の送信を再試行します。このバックオフ遅延の最大時間は 2,000 ミリ秒、つまり 2 秒にハードコードされています。

    note注 :
    クライアントに最適な操作環境を提供するには、Exchange 2007 サーバーに対して Outlook 2007 クライアントを使用することをお勧めします。
    note注 :
    ropBackoff は Outlook 2007 の新機能で、以前の Outlook のクライアントではこの機能が認識されません。
  • Microsoft Office Outlook 2003 以前のバージョンでは、RPC_S_SERVER_TOO_BUSY の状態コードが送信されます。この状態コードは、Information Store の RPC スレッドが使い果たされたときに Exchange 2003 サーバーがクライアントに送信する応答に類似しています。以前のバージョンは、この例外を認識すると、サーバーからクライアントへの応答に指定されている呼び出しが再試行されるまでの時間を待機するよう設計されています。この遅延時間の既定は 1 秒です。クライアントが 1 分間毎秒要求を試行しても同じ例外を毎回受信する場合、そのクライアントは試行を中止し、Exchange サーバーへのセッションを切断します。

1 秒あたりの多数の RPC 操作の監視条件

クライアントがバックオフを受信していることを検出するには、メールボックス サーバーの役割がインストールされている Exchange サーバーのパフォーマンス カウンタ "MSExchangeIS\RPC Client Backoff/sec" を監視して、バックオフ要求の発生率を判断できます。

カウンタ Outlook 2007 の予期される値 Outlook 2003 以前の予期される値

MSExchangeIS\RPC Client Backoff/sec

サーバーがクライアントにバックオフを通知する発生率。

クライアントあたり 50

クライアントあたり 1

調整を受けている Outlook 2007 クライアントの場合、"MSExchangeIS\RPC Client Backoff/sec" カウンタの値は、各クライアントに対して 1 秒あたり約 50 のバックオフを示すことが予期されます。Outlook 2003 以前のバージョンの場合、各クライアントに対して 1 秒あたり最大 1 つのバックオフを予期する必要があります。予期される発生率の差は、それぞれのクライアントに使用されているバックオフ方法の精度によるものです。Outlook 2003 のバックオフ最短期間が 1 秒であるのに対して、Outlook 2007 のバックオフ最短期間は 1 ミリ秒です。

バックオフ情報がクライアントに送信される場合、そのデータは 2 つの部分から構成されています。1 番目の部分はバックオフが挿入された時刻です。2 番目の部分はバックオフの期間です。バックオフの期間は、(MSExchangeIS\RPC Average Latency * RPC throttling factor)/1000 という式に基づいて計算されます。既定では、RPC 調整係数の値は 1000 です。つまり、バックオフ期間は RPC 平均待機時間の値と同じになります。サーバーがクライアントに送信するバックオフ値は、バックオフ期間が期限切れになるまでのミリ秒の数です。指定されたバックオフ期間が期限切れになる前にクライアントがサーバーに別の操作を送信すると、サーバーは更新された遅延値を持つ別の ropBackoff を返します。バックオフ期間が期限切れになるまでこれが継続して発生し、ユーザーのバックオフ キューから ropBackoff が削除されます。次の図にパフォーマンス モニタでの例を示します。

RPC クライアント バックオフのパフォーマンス モニター

1 秒あたりの多数の RPC 操作の調整

メールボックス サーバーの役割がインストールされている Exchange サーバーで、レジストリ キーを使用して計算を調整できます。このレジストリ キーは RPC Throttling Factor と呼ばれ、HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem キーの下にあります。

note注 :
この値は既定では設定されていません。前に示したキーの下に DWORD 値として追加する必要があります。

[HKLM\System\CurrentControlSet\Services\MSExchangeIS\ParametersSystem]

RPC Throttling Factor

DWORD: 値の範囲は 0 ~ 5000

RPC Throttling Factor の変更により機能がどう変化するかを示すために、RPC の平均待機時間の 2 倍など、長い時間クライアントをバックオフするようにサーバーを構成するシナリオを考えてみます。このために、RPC Throttling Factor を値 2,000 に設定します。これにより、各 MAPI セッションのバックオフ期間が 2 倍になります。この場合、RPC の平均待機時間は 50 ミリ秒でしたが、調整係数 2000 (50 ms * 2000/1000) は 100 ミリ秒になります。各バックオフ要求は既定の 50 ミリ秒ではなく 100 ミリ秒に延長されるため、サーバーへの追加のクライアント MAPI 要求に 100 ミリ秒の遅延が発生します。このような構成の変更が、クライアントにとってサーバーのパフォーマンスの低下に見える場合があります。ただし、このクライアントでサーバーの全体的なパフォーマンスが低下すると、このクライアントによる Exchange サーバーのリソース使用率は最小限に抑えられます。これにより、このサーバー上の他のすべてのユーザーで認識されるサーバーのパフォーマンスが向上します。

important重要 :
この問題がサーバー上の多くのクライアントまたはすべてのクライアントで発生している場合は、サーバー側の調査を実行して発生する可能性があるボトルネックを検出する必要があります。

この調整メカニズムを使用して最適なパフォーマンスを得るには、Outlook 2007 と Exchange 2007 以上をお勧めします。

調整係数を値 0 に設定すると調整を無効にできます。

important重要 :
Information Store のクライアント調整を無効にすることはお勧めしません。この変更を行うと、動作不良のクライアントによる、特定のサーバーのパフォーマンス低下を許容することになります。

クライアント調整を無効にする必要がある場合は、まずサーバーのパフォーマンス ボトルネックの原因を特定することをお勧めします。ほとんどの場合、原因の特定と解決により、サーバーがクライアントにバックオフ要求を送信する必要性が解消されます。

詳細情報

低速な RPC 要求処理の問題のトラブルシューティング方法の詳細については、「低速な RPC 要求処理の問題のトラブルシューティング」を参照してください。

クライアント側の監視を有効にする方法の詳細については、「クライアント側の監視を有効にする方法」を参照してください。

参照している情報が最新であることを確認したり、他の Exchange Server 2007 ドキュメントを見つけたりするには、Exchange Server TechCenter を参照してください。