Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Calendar Server 管理ガイド 

第 19 章
Calendar Server のパフォーマンスの調整

Sun JavaTM System Calendar Server のパフォーマンスを向上させるには、次のオプション設定を検討します。


LDAP ディレクトリサーバーのインデックス設定

Calendar Server が LDAP ディレクトリサーバーにアクセスするときのパフォーマンスを向上するには、LDAP 設定ファイルの次の属性にインデックスを追加します。

 Directory Server セットアップスクリプト (comm_dssetup.pl) を実行して Directory Server 5.x を設定する場合、icsCalendar 属性と icsCalendarOwned 属性のインデックス設定はこのスクリプトによって行われます。

ディレクトリサーバーインデックスの追加方法については、次の Web サイトで入手できる『Directory Server Configuration, Command, and File Reference』を参照してください。

http://docs.sun.com/db/coll/S1_ipDirectoryServer_51


DWP 環境でのカレンダー検索のパフォーマンス向上

複数のバックエンドサーバー上にカレンダーデータベースがある場合、つまり、DWP 環境にいる場合、カレンダーの検索に非常に時間がかかる可能性があります。最初に LDAP エントリを探し、カレンダーが存在している DWP ホストで直接検索すると、時間を短縮できます。

最初に LDAP ディレクトリ、次にカレンダーデータベースを対象とするカレンダー検索を有効にするには、ics.conf ファイルで以下のようにパラメータが設定されていることを確認します。これはデフォルト値です。

service.calendarsearch.ldap = "yes"

次の処理を行うことで、LDAP ディレクトリのカレンダー検索のパフォーマンスを向上させることができます。

icsCalendarOwned 属性のインデックス設定

LDAP ディレクトリサーバーのカレンダー検索のパフォーマンスを向上させることができるかどうかを調べるには、次の LDAP コマンドを実行してみます。

ldapsearch -b "base"
"(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"

base は、Calendar Server のユーザーとリソースのデータが格納されているディレクトリサーバーの LDAP ベース DN です。user は、エンドユーザーが「予約購読」->「カレンダーの検索」ダイアログで入力できる値です。

60,000 エントリを使ったテストでは、icsCalendarOwned のインデックスを設定しない場合、前述した検索に要した時間は 50 〜 55 秒でした。インデックスの設定後に検索に要した時間は、約 1 〜 2 秒でした。

Directory Server で icsCalendarOwned 属性にインデックスを設定するには、Solaris システムで次のコマンドを使用します。

server5/bin/slapd db2index -D slapd-serverID
-t icsCalendarOwned:eq,pres,sub:2.16.840.1.113730.3.3.2.11.1

slapd-serverID は、slapd-serverID ディレクトリへの完全パスです。

nsSizeLimit パラメータと nsLookthroughLimit パラメータの設定

LDAP ディレクトリサーバー設定の nsSizeLimit パラメータと nsLookthroughLimit パラメータは、検索の正常な実行に必要な、十分なサイズに設定する必要があります。

これらのパラメータに適切な値が設定されているかどうかを調べるには、次のコマンドを実行します。

ldapsearch -b "base"
"(&(icscalendarowned=*user*)(objectclass=icsCalendarUser))"

base は、Calendar Server のユーザーとリソースのデータが格納されているディレクトリサーバーの LDAP ベース DN です。user は、エンドユーザーが「予約購読」->「カレンダーの検索」ダイアログで入力できる値です。

LDAP サーバーがエラーを返す場合、nsSizeLimit または nsLookthroughLimit パラメータの値が十分でない可能性があります。次のガイドラインに従って、これらのパラメータを設定してください。

CLD キャッシュオプションの使用

LDAP 検索を最適化するには、CLD キャッシュオプションを次のように設定します ("yes" がデフォルト)。

caldb.cld.cache.enable = "yes"

「CLD キャッシュオプションの使用」も参照してください。


LDAP データキャッシュオプションの使用

LDAP データキャッシュオプションを使用することで、LDAP ディレクトリサーバーがコミットされたデータの可用性の遅延を許容するように設定されている場合でも、LDAP データをコミット直後に利用できるようになります。

たとえば、Calendar Server がスレーブ LDAP ディレクトリサーバーを通じてマスター LDAP ディレクトリにアクセスするマスター / スレーブ LDAP 構成をサイトに配備したために、コミットされた LDAP データの可用性に遅延生じるようになった場合でも、LDAP データキャッシュを使用することで、Calendar Server クライアントは常に正しい LDAP データを持つことができます。

ここで説明する内容は次のとおりです。

LDAP データキャッシュの使用に関する注意

サイトで LDAP データキャッシュを利用するべきかどうか、次のガイドラインに基づいて検討してください。

マスター / スレーブの LDAP 構成

マスター / スレーブの LDAP 構成には、マスター (ルート) ディレクトリサーバーと、1 つまたは複数のスレーブ (コンシューマまたはレプリカ) ディレクトリサーバーが含まれます。Calendar Server は直接、またはスレーブディレクトリサーバー経由でマスター LDAP ディレクトリサーバーにアクセスできます。

2 番目の構成では、コミットされた LDAP データをスレーブディレクトリサーバーで利用できるまでに遅延が発生するため、不正確な LDAP データが存在する問題があります。

たとえば、Calendar Server が LDAP データの変更をコミットしても、マスターディレクトリサーバーが各スレーブディレクトリサーバーを更新するまでの遅延により、ある程度の時間が経過するまで新しいデータは利用できません。それに続く Calendar Server の操作では、古い LDAP データが使用されるため、表示内容も古いままとなります。

スレーブディレクトリサーバーの更新遅延が短ければ (数秒程度)、クライアントは問題に気づかないかもしれません。しかし、遅延が数分から数時間におよぶ場合、遅延時間中はクライアントは不正確な LDAP データを表示することになります。

表 19-1 は、Calendar Server が スレーブ LDAP ディレクトリサーバー経由でマスター LDAP ディレクトリサーバーにアクセスする、マスター / スレーブの LDAP サーバー構成で遅延の影響を受ける LDAP 属性を示しています。

表 19-1 遅延の影響を受ける Calendar Server の LDAP 属性

操作

影響を受ける LDAP 属性

自動プロビジョニング

icsCalendar、icsSubscribed、icsCalendarOwned、icsDWPHost

カレンダーグループ

icsSet

カレンダーの作成

icsCalendarOwned、icsSubscribed

カレンダーの登録

icsSubscribed

ユーザーオプション

icsExtendedUserPrefs、icsFirstDay、icsTimeZone、icsFreeBusy

カレンダー検索

icsCalendarOwned

エンドユーザーが確実に最新の LDAP データにアクセスできるようにするには、次の「LDAP データキャッシュ」および「LDAP データキャッシュの設定パラメータ」に従って LDAP データキャッシュを設定します。

LDAP データキャッシュ

LDAP データキャッシュは、マスターディレクトリサーバーがスレーブディレクトリサーバーを更新していない場合でも、最新の LDAP データを Calendar Server のクライアントに提供することで、マスター / スレーブの LDAP 構成の問題を解決します。

LDAP データキャッシュを有効にすると、Calendar Server はコミットされた LDAP データをキャッシュデータベース (ldapcache.db ファイル) に書き込みます。デフォルトでは、LDAP キャッシュデータベースは cal_svr_base/var/opt/SUNWics5/csdb/ldap_cache ディレクトリに格納されますが、別の場所を指定することもできます。

クライアントが 1 人のユーザーの LDAP データを変更すると、Calendar Server は変更されたデータを LDAP キャッシュデータベースに書き込みます (スレーブディレクトリサーバーにも書き込まれる)。それに続くクライアント操作では、LDAP データはキャッシュデータベースから取得されます。このデータ取得は、1 人のユーザーに関する次の操作に適用されます。

つまり、LDAP データキャッシュデータベースには次の機能があります。

制約

LDAP データキャッシュは次のような操作では機能しません。

LDAP データキャッシュの設定パラメータ

表 19-2 は、ics.conf ファイル内の LDAP データキャッシュに関するパラメータを示しています。

表 19-2 LDAP データキャッシュの設定パラメータ 

パラメータ

説明

local.ldap.cache.enable

LDAP データキャッシュを有効 (yes) または無効 (no) にする。デフォルトは no

local.ldap.cache.checkpointinterval

チェックポイントスレッドがスリープするまでの秒数を指定する。デフォルトは 60 秒

local.ldap.cache.circularlogging

処理が完了した後にデータベースログファイルを削除するかどうかを指定する。デフォルトは yes

local.ldap.cache.homedir.path

LDAP データキャッシュデータベースの物理的な場所を指定する。デフォルトは cal_svr_base/var/opt/SUNWics5/csdb/ldap_cache

local.ldap.cache.logfilesizemb

チェックポイントファイルの最大サイズをメガバイト単位で指定する。デフォルトは 10 メガバイト

local.ldap.cache.maxthreads

LDAP データキャッシュデータベースの最大スレッド数を指定する。デフォルトは 1000

local.ldap.cache.mempoolsizemb

共有メモリのサイズをメガバイト単位で指定する。デフォルトは 4 メガバイト

local.ldap.cache.entryttl

LDAP データキャッシュエントリの存続時間 (TTL) を秒単位で指定する。デフォルトは 3600 秒 (1 時間)

local.ldap.cache.stat.enable

LDAP データキャッシュへのアクセスをログに記録し、ログファイルに統計情報を出力するかどうかを指定する。デフォルトは no

: このパラメータはデバッグモードだけに適用される

local.ldap.cache.stat.interval

統計情報レポートをログファイルに書き込む間隔を秒単位で指定する。デフォルトは 1800 秒 (30 分)

local.ldap.cache.cleanup.interval

データベースクリーンアップの間隔を秒単位で指定する。デフォルトは 1800 秒 (30 分)


警告

Calendar Server、または Calendar Server が稼動するサーバーを適切な方法で停止しなかった場合、データベースの破損によって以後の再起動時に問題が生じないように、ldap_cache ディレクトリ内のすべてのファイルを手動で削除します。



CLD キャッシュオプションの使用

CLD プラグインを使用している場合は、ics.conf ファイルの次の設定パラメータを yes (各パラメータのデフォルト値) に設定します。

caldb.cld.cache.enable = "yes"

このパラメータは CLD キャッシュオプションを有効にします。このキャッシュがカレンダーユーザーの DWP ホストサーバー情報 (icsDWPHost LDAP 属性) を格納することで、LDAP ディレクトリサーバーに対する呼び出しを減らすことができます。

設定できるその他の CLD キャッシュオプションパラメータは次のとおりです。

これらのパラメータやその他の関連する ics.conf パラメータの詳細については、付録 E 「Calendar Server の設定パラメータ」を参照してください。


セッションデータベース用のメモリベースのファイルシステムの使用

Solaris オペレーティングシステムでのパフォーマンスを向上するには、ics.conf ファイルの次のパラメータを設定して、セッションデータベース用のメモリベースのファイルシステム (tmpfs) を設定します。

local.instance.use.tmpfs を "true"

tmpfs ファイルシステムは、service.http.sessiondir.path パラメータと service.admin.sessiondir.path パラメータの値に基づいてオーバーレイされます。

詳細については、次のサイトで入手できる Solaris のマニュアルで tmpfs(7FS) および mount_tmpfs(1M) のマニュアルページを参照してください。

http://docs.sun.com/db/prod/solaris


複数 CPU 間でのロードバランスの使用

サーバーが複数の CPU を利用できる場合、デフォルトでは Calendar Server は HTTP サービス (cshttpd プロセス) と分散データベースサービス (csdwpd プロセス) を複数の CPU に分散します。

各サービスを実際に実行するプロセッサの数は、service.http.numprocesses および service.dwp.numprocesses パラメータによって決定されます。デフォルトでは、これらのパラメータはインストール時にサーバーの CPU 数に設定されますが、この値を設定しなおすことができます。たとえば、サーバーに 8 つの CPU がある場合に、cshttpd および csdwpd プロセスを 4 つの CPU だけで実行するときは、これらのパラメータを次のように設定します。

service.http.numprocesses="4"
service.dwp.numprocesses="4"

ロードバランスを無効にするには、値として no を指定した service.loadbalancing パラメータを ics.conf ファイルに追加します。次に、Calendar Server を再起動して変更を適用します。


タイムアウト値の使用

Calendar Server のパフォーマンスは、さまざまな ics.conf パラメータのタイムアウト値を使用して調整できます。

次のタイプのタイムアウトが存在します。

ics.conf パラメータの編集については、「ics.conf 設定ファイルの編集」を参照してください。

csadmind のタイムアウト値

表 19-3 は、管理サービス (csadmind) が使用する、ics.conf ファイル内の Calendar Server タイムアウトパラメータを示しています。

表 19-3 管理サービス (csadmind) の HTTP タイムアウト値

パラメータ

説明

service.admin.idletimeout

csadmind サービスがアイドル状態の HTTP 接続をタイムアウトにするまでの秒数

デフォルトは 120 秒 (2 分)

service.admin.resourcetimeout

csadmind サービスがリソースカレンダーの HTTP セッションをタイムアウトにするまでの秒数

デフォルトは 900 秒 (15 分)

service.admin.sessiontimeout 

csadmind サービスが HTTP セッションをタイムアウトにするまでの秒数

デフォルトは 1800 秒 (30 分)

エンドユーザーの HTTP タイムアウト値

表 19-4 は、エンドユーザーに適用される、ics.conf ファイル内の Calendar Server HTTP タイムアウトパラメータを示しています。

表 19-4 ics.conf に設定され、エンドユーザーに適用される HTTP タイムアウト値 (cshttpd サービス)

パラメータ

説明

service.http.idletimeout

cshttpd サービスがアイドル状態の HTTP 接続をタイムアウトにするまでの秒数を指定する

デフォルトは 120 秒 (2 分)

service.http.resourcetimeout

cshttpd サービスがリソースカレンダーの HTTP セッションをタイムアウトにするまでの秒数を指定する

デフォルトは 900 秒 (15 分)

service.http.sessiontimeout

cshttpd サービスが HTTP セッションをタイムアウトにするまでの秒数を指定する

デフォルトは 1800 秒 (30 分)

GSE キューのタイムアウト値

ics.conf ファイルの次のパラメータは、要求されたジョブを Calendar Server が GSE (グループスケジューリングエンジン) キューで走査するまでの時間を秒単位で指定します。

gse.belowthresholdtimeout = "3"

キューに含まれるジョブが許容最大しきい値より多い場合、最後のスレッドが常にキューをもう一度走査します。このため、この設定はジョブの数が最大しきい値より少ない場合にだけ適用されます。

デフォルトは 3 です。この値を大きくすると、サーバーがキューを走査する回数が減り、全体的なパフォーマンスを向上できます。ただし、予定のボリュームが増大したためにキューが大きくなりすぎた場合、キューの処理速度を上げるための時間が短くなる可能性があります。これによって全体のパフォーマンスは低下しますが、予定はすぐに更新されます。


再表示オプションの使用

Refresh View オプションによって Calendar Express のエンドユーザーのパフォーマンスが向上します。このオプションを使用すると、Calendar Server データベースに更新情報を要求せずに、ブラウザキャッシュ内のカレンダーデータを使用して表示を更新することができます。

Refresh View オプションを有効にするには、ics.conf ファイルの次のパラメータに yes を指定します。

browser.cache.enable = "yes"

パラメータの設定を変更したら、Calendar Server を停止して再起動し、変更を適用します。

サイトに Refresh View オプションが設定されている場合、Calendar Express では「表示」タブのすべてのカレンダー表示に「Refresh View」を表示します。

ユーザーが「Refresh View」をクリックすると、Calendar Express はカレンダーデータベースに更新を要求する前に、ビューのカレンダーデータが変更されているかどうかを調べます。データが変更されていない場合は、Calendar Express はブラウザキャッシュの情報を使用して表示を更新します。カレンダーデータベースへの不要な要求を回避できるので、カレンダーに多数の予定や作業が設定されている場合は特に有用です。

予定または作業が変更されている場合、Calendar Express はカレンダーデータベースに更新内容を要求し、それを使用して表示を更新します。このため、ユーザーは Refresh View を使用することで、Calendar Express に常に最新のカレンダーデータを表示することができます。


Calendar Express ツールバーの再表示オプションの無効化

ツールバー再表示オプションを使用すると、ユーザーが再表示のボタンをクリックしたときに、Calendar Express の表示が再表示 (再読み込み) されます。しかし、ツールバーの表示を更新するときに Calendar Server は XML と XSLT の変換を行うため、このオプションがパフォーマンス上の問題となることがあります。

ツールバーの再表示オプションを無効にするには、ics.conf ファイルの次のパラメータの値に no を指定します。

ui.toolbar.repainting.enable="no"

ui.toolbar.repainting.enable に no を指定すると、Calendar Express のどのビューで再表示を実行してもデフォルトビューに戻ります。

ui.toolbar.repainting.enable を no に設定することで、Calendar Express はツールバーの XML と XSLT の変換を行わなくなるため、パフォーマンスが向上します。

ブラウザのキャッシュオプション (browser.cache.enable パラメータ) が yes に設定されている場合、ツールバーの再表示オプションは使用されません。


クライアントブラウザの XSL レンダリング

Calendar Server では、XSLT 処理をエンドユーザーのブラウザにダウンロードすることで、クライアント側のレンダリングを実行します。このため、Calendar Server が実行する必要のある処理は減少します。Calendar Server は、ブラウザが XSLT 処理のレンダリングに対応している場合にだけ XSLT 処理をダウンロードします。現在のリリースでは、この機能は Internet Explorer 6.0 以降だけに適用されます。

テストでは、クライアント側のレンダリングによってインタフェース (UI) のスケーラビリティが 4 〜 6 倍に向上する結果が示されています。これは、CPU のパフォーマンスを大幅に下げることなく、Calendar Server が 4 〜 6 倍の数の並行エンドユーザーをサポートできることを意味します。

クライアント側のレンダリングは、ics.conf ファイルの次のパラメータによって制御されます (現在は Internet Explorer 6.0 以降のみが対象)

render.xslonclient.enable="yes"

このパラメータはデフォルトで yes に設定されます。クライアント側のレンダリングをオフにするには、このパラメータに no を指定し、Calendar Server を再起動します。



前へ      目次      索引      次へ     


Copyright 2004 Sun Microsystems, Inc. All rights reserved.