この章では、Communications Express のパフォーマンスを改善するために考慮する必要のある情報について説明します。
この節では、LDAP プールをセットアップおよび設定する方法、および Communications Express の効率を改善するように LDAP 接続を設定する方法について説明します。Communications Express の一部のコンポーネントでは、情報を取得して管理するのに、LDAP サーバーに接続する必要があります。多数のユーザーがログインしていると、接続を確立して LDAP サーバーから情報を取得するのに非常に時間が掛かる場合があります。Communications Express が使用できる LDAP 接続のプールがすでに作成されている場合は、接続を確立して情報を取得するためのターンアラウンドタイムを削減できます。
一般的な Communications Express の本稼動環境では、LDAP 負荷分散およびフェイルオーバーのメカニズムが導入されています。ここでは、1 台の LDAP サーバー (マスターと呼ばれる) は情報を取得する役割があり、別のサーバーのセット (フェイルオーバーサーバーと呼ばれる) は障害時 (マスターサーバーのエラー時) の予備用に使用されます。このようにして、シングルポイント障害は回避されます。
Communications Express に含まれる LDAP フェイルオーバーマネージャーモジュールが、マスターまたはスレーブサーバーから接続を取得します。各負荷分散サーバーは、使用可能な空き接続のプールを維持します。Communications Express コンポーネントが LDAP サーバーへの接続を必要とする場合は、LDAP フェイルオーバーマネージャーにより、LDAP 接続のプールからの接続を保持するコンポーネントが常に提供されます。
LDAP フェイルオーバーマネージャーを作成するように Communications Express を設定するには、uwcauth.properties ファイルにいくつかのパラメータを設定する必要があります。
uwc-deploy-path /WEB-INF/config/ ディレクトリに移動します。
uwcauth.properties ファイルを編集して、次のパラメータを設定します。
ldapusersession.ldapport : このパラメータに、LDAP サーバーが動作しているポートを設定します。
ldapusersession.ldaphost: このパラメータに、LDAP サーバー名の LDAP ホストリストを設定します。このリストは、カンマで区切ることができます。デフォルト以外のポートで LDAP サーバーが動作している場合は、カンマで区切って指定できます。たとえば、host1, host2:1290, host3, host4:2546 と指定します。この例では、host1 と host3 はデフォルトのポートで動作し、host2 と host4 はデフォルト以外のポートで動作しています。
Communications Express が配備されている Web コンテナを再起動します。
大量のデータが転送されるようなネットワーク依存の製品シナリオでは、サーバー応答の圧縮を有効にすることによりパフォーマンスを改善できます。このように、データが圧縮されてネットワークに送信されるため、パフォーマンスが改善されます。
サーバー応答の圧縮を有効にするには、uwcconfig.properties ファイルに uwc.gzip.compression パラメータを設定するようにしてください。
uwcconfig.properties ファイルで、uwc.gzip compression パラメータの値を true に設定して、サーバー応答の圧縮を有効にします。
たとえば、uwc.gzipcompression = true に設定して、Communications Express が配備されている Web コンテナを再起動します。
ユーザーが Communications Express にログオンすると、サーバー側でそのユーザーのセッションが作成されます。セッションには各ユーザーに関するデータが含まれ、サーバー側で保持されます。大量のユーザーが同時にログインすると、セッションデータを管理するのにリソースが必要となる場合があります。セッションごとに session-timeout を最適な値に設定して、開いていても使用されていないセッションや長時間アクティブでないセッションを閉じると、パフォーマンスを改善できます。
Communications Express の session-timeout をカスタマイズするには、uwc-deploy-dir/WEB-INF ディレクトリにある web.xml ファイルを編集します。この XML ファイルには、属性 session-timeout を含む XML タグ session-config が含まれています。この属性によって、セッションタイムアウトが秒単位で定義されます。session-timeout 属性の値を希望の値に変更します。
たとえば、次の指定によって session-timeout が 10 分に定義されます。
<session-config> <session-timeout>10</session-timeout> </session-config> |
この節では、パフォーマンスを向上するために Directory Server で実行可能なチューニングについて説明します。
ユーザーまたはグループ LDAP Directory Server およびアドレス帳サーバー設定の nsSizeLimit および nsLookthroughLimit パラメータは、検索を正常に完了させるだけの十分なサイズにすることが重要です。
これらのパラメータに適切な値が設定されていることを確認するには、以下のコマンドを入力します。
ldapsearch -b /base/ (&(icscalendarowned=*/user/*)(objectclass=icsCalendarUser))
ここで
/base/ は、Calendar Server のユーザーおよびリソースのデータがある Directory Server の LDAP ベース DNです。
/user/ は、エンドユーザーが Communications Express の「登録」オプションで、「カレンダの検索」ダイアログに入力できる値です。
nsSizeLimit または nsLookthroughLimit パラメータが十分なサイズでない場合、LDAP サーバーはエラーを返します。
次に示すガイドラインに従って、nsSizeLimit または nsLookthroughLimit パラメータを再設定します。
nsSizeLimit パラメータの値は、検索されたすべての結果が返されるのに十分なサイズである必要があります。不足する場合、一部の結果が欠落したり、検索結果全体が表示されなくなります。
nsLookthroughLimit パラメータのサイズが、LDAP ディレクトリ内のすべてのユーザーおよびリソースの検索を完了するだけの十分なサイズであることを確認します。可能であれば、nsLookthroughLimit は -1 に設定してください。この設定にすると、nsLookthroughLimit には検索の制限が設定されません。
LDAP ではユーザーまたはグループ、およびアドレス帳のエントリを別々に設定することをお勧めします。
Web Server のパフォーマンスを向上するには、この節で説明する手順を実行します。
server.xml で、<vs\> (仮想サーバー) 要素の属性 acceptorthreads の値を、Web Server をホストするマシンの CPU 数に変更します。
次に例を示します。
<VS id="https-siroe.com" connections="ls1" mime="mime1"aclids="acl1" urlhosts="<webserver hostname" acceptorthreads="<noofcpus\>" \> |
Web Server の server.xml ファイルで、次に示す JVM オプションを追加または設定します。
<JVMOPTIONS>-Xms/JVMOPTIONS> (使用可能なメモリーに応じた概算値)
<JVMOPTIONS>-Xmx /JVMOPTIONS> (使用可能なメモリーに応じた概算値)
<JVMOPTIONS>—XX: NewSize = <割り当てられたヒープの 1/3></JVMOPTIONS>
<JVMOPTIONS>-XXMaxNewSize =<割り当てられたヒープの 1/3></JVMOPTIONS>
最初のオプションは最大のヒープサイズを示し、2 番目のオプションは最小のヒープサイズを示します。
両方のオプションに同じ値を設定することをお勧めします。
次の JVM オプションを追加します。
JVMOPTIONS -server /JVMOPTIONS
JVMOPTIONS-XX:+UseParNewGC/ JVMOPTIONS
JVMOPTIONS-XX:ParallelGCThreads= number-of-CPUs/JVMOPTIONS
JVMOPTIONS-XX:+UseConcMarkSweepGC/ JVMOPTIONS
この節では、Calendar Server 上の複数 CPU にわたる負荷分散によってパフォーマンスを向上させる方法を説明します。
サーバーに複数の CPU が搭載されている場合、デフォルトで Calendar Server は cshttpd プロセスなどの HTTP サービスと、csdwpd プロセスなどの分散データベースサービスを複数の CPU に分散させます。
ics.conf ファイル内の service.http.numprocesses および service.dwp.numprocesses パラメータは、各サービスで実行するプロセスの実際の数を決定します。デフォルトで、これらのパラメータはインストール時にサーバーの CPU 数に設定されますが、管理者が再設定することも可能です。たとえば、サーバーに 8 CPU あり、cshttpd および csdwpd プロセスを 4 CPU だけで実行させる場合は、次のようにパラメータを設定します。
service.http.numprocesses="4"
service.dwp.numprocesses="4"
service.loadbalancing パラメータを ics.conf ファイルに追加します。
service.loadbalancing を「no」に設定します。
Calendar Server を再起動して、変更内容を有効にします。
負荷分散の詳細については、『Sun Java System Calendar Server 6.3 管理ガイド』の付録 C「Calendar Server 設定ワークシート」を参照してください。