Sun Identity Manager Gateway は、接続ごとにスレッドを生成して、リソース種類、ゲートウェイホスト、およびゲートウェイポートの一意の組み合わせごとに異なるプールを使用します。ゲートウェイは、5 分ごとにアイドル中の接続がないかチェックします。60 分間アイドル中の接続が合った場合、ゲートウェイはその接続を閉じてプールから削除します。
ゲートウェイは要求を受け取ると、次の操作を行います。
そのプールにアイドル中の接続がなければ、ゲートウェイは接続を新規作成します。
そのプールにアイドル中のプールがあれば、ゲートウェイはその接続を検索して再利用します。
そのリソースの最大接続数を設定してください。また、その種類のすべてのリソースに対し、そのゲートウェイを使用しているのと同じ方法でこの接続を設定してください。このリソース種類では、所定のホストでゲートウェイに行った最初の接続とポートが、そのリソースの最大接続数を使用します。
そのリソースの最大接続数を変更する場合は、サーバーを再起動して変更内容を反映してください。
次の例は、接続、要求、およびゲートウェイスレッドの関係を示したものです。
Active Directory リソースで最大接続数を 10 に設定し、2 台の Identity Manager サーバーを使用している場合は、その Active Directory リソースのゲートウェイに最大 20 までの同時接続を設定できます (Identity Manager サーバーごとに 10)。このゲートウェイは、各サーバーから送信された 10 の同時要求を受け付けることができ、各要求を別々のスレッドで処理します。同時要求数がゲートウェイの最大接続数を超えた場合、それ以上の要求はゲートウェイが要求を完了して接続をプールに戻すまで、キューの中に入れられます。
ゲートウェイコードはマルチスレッドですが、この特性はゲートウェイで使用中の API やサービスに対応しません。Active Directory には、ゲートウェイは Microsoft から提供されている ADSI インタフェースを使用します。このインタフェースがゲートウェイの要求を並列に処理するかどうかを判断する調査は一切行われていません。
このほか、ゲートウェイのパフォーマンスを向上させる方法には、次のようなものがあります。
ゲートウェイを、(ネットワーク接続の観点から) 管理対象ドメインのドメインコントローラの近くに配備します。
ゲートウェイリソースのブロックサイズを大きく設定すると、調整やロード操作中のスループットを高めることができます。
スループットが高まる結果は、カスタムワークフローがなく、実行中の属性調整が一切ない基本的な調整で説明したとおりです。最初はゲートウェイが多くのシステムメモリーを消費しますが、このメモリーは次第に解放されていきます。
これは先細りしていくことをご了承ください。ある時点を境に、ブロックサイズを大きく設定してもパフォーマンスがそれほど向上しなくなります。たとえば次のデータは、Active Directory リソースから 10,000 ユーザーのリソースからの読み込みを監視した速度を表したものです。読み込み中のゲートウェイ処理には、ピークメモリー使用量も含まれています。
ブロックの設定 |
時間単位で作成されたユーザー |
ゲートウェイのピークメモリー使用量 |
---|---|---|
100 |
500 |
20 M バイト |
200 |
250 |
25 M バイト |
500 |
9690 |
60 M バイト |
1000 |
10044 |
92 M バイト |
Exchange Server 2007 では、PowerShellExecutor が Exchange Server 2007 の動作を実行します。次のレジストリ設定を修正すれば、ゲートウェイ中の PowerShellExecutor の動作を変更できます。
どちらの設定も、ゲートウェイの動作とメモリー使用量に大きな影響を及ぼすことができます。これらのパラメータに加える変更内容は、慎重にテストを行った上で検討してください。
powerShellTimeout
「内容」。PowerShell 動作 (レジストリ型 REG_DWORD) のタイムアウト
「デフォルト」。60000 ミリ秒 (1 分)
powerShellTimeout 設定がタイムアウトすると、PowerShell 環境内の異常動作を防ぐために、すべての RunSpace 動作が中断され取り消されます。これにより、ゲートウェイが反応しなくなります。
powerShellTimeout 値を小さい値に下げると、動作が途中で取り消され、RunSpace の初期化が正しく完了しなくなることがあります。プール範囲の最初の RunSpace の監視起動時間は、2 秒から 5 秒までです。
powerShellTimeout 値は、起動時に読み取り専用のため、ゲートウェイを再起動しないとこの値は変更できません。
runSpacePoolSize
「内容」。プール内の RunSpaces 数 (レジストリ型 REG_DWORD)
「デフォルト」。5
「最小」。5
「最大」。25
ゲートウェイから PowerShell 動作を並列実行できるプール内の RunSpaces 数。Exchange 2007 でのユーザーのプロビジョニング動作または更新が、実行中の複数の PowerShell 動作につながることがあります。
起動した RunSpace が、大量のメモリーを消費することがあります。最初の RunSpace の通常サイズは、約 40 M バイトです。その後の RunSpaces は、通常 10 M バイトから 20 M バイトの間を消費します。
以上の数値は環境ごとに異なるため、ガイドラインとしてのみ記載したものです。この値を変更する際はご注意ください。
runSpacePoolSize 値は、起動時に読み取り専用のため、ゲートウェイを再起動しないとプールサイズ値は変更できません。