Sun ONE Portal Server 6.2 インストールガイド |
第 4 章
Sun ONE Portal Server のチューニングこの章では、SunTM ONE Portal Server のパフォーマンスおよび容量を最適化する設定パラメータについて説明します。Sun ONE Portal Serverに組み込まれている perftune スクリプト (portal-server-install-root/SUNWps/bin ディレクトリ) は、この章で説明されているチューニングプロセスのほとんどを自動的に実行します。
はじめにperftune スクリプトは次のとおりです。
- SolarisTM オペレーティングシステムのカーネルと TCP の設定をチューニングする (「Solaris のチューニング」を参照してください)
- 各製品の次の設定ファイルを変更する
- Sun ONE Portal Server デスクトップサービス、および SunTM ONE Identity Server の認証サービスのプロパティを変更する
チューニング方法perftune スクリプトを実行する場合、最適稼動および最大稼動と呼ばれる 2 つの標準的な使用シナリオに対してパフォーマンスチューニングオプションが提供されます。これらのシナリオは、Sun ONE Portal Server 使用パターンの大部分を処理するように定義されています。これらの配備シナリオには、次のような特徴があります。
たとえば、企業ポータルに対するビジネスのピーク時には、企業の多数の雇用者が最大稼動環境で同時にポータルに接続します。
メモリ割り当てJVM ごとに割り当てる大容量メモリは、次の 2 つのパラメータによって決定されます。
チューニングを実行する JVM パフォーマンスマトリックスでは、スループット、フットプリント、およびプロンプトネスは、次のように定義されます。2 番目、3 番目、4 番目の列は、それぞれ、最適稼動と最大稼動環境のスループット、フットプリント、プロンプトネスの領域のパフォーマンスレベルを表します。
説明 :
チューニング手順perftune スクリプトを実行する場合、次のチューニングの推奨事項を実行するかどうかを指定できます。推奨事項を注意深く検討し、perftune スクリプトを使用して、推奨されるこれらの変更を実行します。
perftune スクリプトは、次の手順で行います。
チューニングプロセスの間、perftune スクリプトがサーバーの開始および停止の処理を実行します。このスクリプトにより、filename-orig-date-pid 形式で、修正ファイルのバックアップコピーが作成されます。スクリプトを実行したあと、チューニングの変更を反映させるため、システムを再起動します。
Solaris のチューニング
カーネルのチューニング
/etc/system ファイルに対して、スクリプトは次の設定を追加します。
TCP パラメータのチューニング
/dev/tcp で TCP パラメータ (カッコ内) への変更に含まれるのは次のとおりです。
- TCP 時間待機間隔 (tcp_time_wait_interval) : 接続の終了後に TCP ソケットを TIME_WAIT 状態にする期間を 60000 に設定する
- TCP 終了待機 2 間隔 (tcp_fin_wait_2_flush_interval) : 接続の終了後に TCP ソケットを FIN_WAIT_2 状態にする期間を 60000 に設定する
- TCP 最大接続サイズ (tcp_conn_req_max_q) : 完全に確立された接続の最大値を 8192 に設定する
- TCP リストキュー (tcp_conn_req_max_q0) : 確立されていない接続を含めたキューのサイズを 8192 に設定する
- TCP パケットドロップ時間 (tcp_ip_abort_interval) : パケットがドロップするまでの期間を 60000 に設定する
- TCP キープアライブ間隔 (tcp_keepalive_interval) : 90000 に設定する
- TCP 最大再送間隔 (tcp_rexmit_interval_max) : 6000 に設定する
- TCP 最小再送間隔 (tcp_rexmit_interval_min) : 3000 に設定する
- TCP 初期再送間隔 (tcp_rexmit_interval_initial) : 500 に設定する
- TCP 最小匿名ポート (tcp_smallest_anon_port) : 1024 に設定する
- スロースタートアルゴリズムの TCP 初期パケット (tcp_slow_start_initial) : 2 に設定する
- TCP 送信/受信バッファサイズ制限 (tcp_xmit_hiwat と tcp_recv_hiwat) : それぞれ 32768 に設定する
システムを再起動するときに ndd コマンドを自動的に実行するため、perftune スクリプトが S99ndds_tcp ファイルを /etc/rc2.d/ ディレクトリにコピーします。
Sun ONE Identity Server のチューニング
Directory Server 接続プール
portal-server-install-root/SUNWam/config/ums/serverconfig.xml ファイルの変更内容は次のとおりです。
LDAP 認証サービス
LDAP 認証
サービス設定パラメータ
portal-server-install-root/SUNWam/lib/AMConfig.properties ファイルの変更内容は次のとおりです。
Sun ONE Portal Server 6.2 では /opt/SUNWam/lib/AMConfig.properties ファイルに次のスレッドプールプロパティが指定されています。
Sun ONE Directory Server のチューニング
SunTM ONEDirectory Server を他のアプリケーションと共有する場合、パラメータが他のアプリケーションのパラメータのチューニングと衝突しないことを確認する必要が生じることがあります。
/tmp/slapd-DSinstance1 には、十分な仮想メモリスペースを与える必要があり、ページングを避けるために、データベースキャッシングに割り当てた分を含む使用メモリの総容量は、物理メモリサイズを超過してはなりません。少なくとも、slapd プロセス自体に使用される nsslapd-dbcachesize + nsslapd-cachememsize + fixed memory の累積値は、プロセスアドレス空間の 4G バイトを超過できません。Nsslapd は 32 ビットのアプリケーションです。
リソースプール (接続およびスレッド) のサイジングに関しては、Sun ONE Directory Server によって、オペレーションの検索タイプに対して 15 前後の同時レベルで、最良のパフォーマンスが提供されます。
perftune スクリプトは、ns-slapd スレッディング、db cache、およびデータベースファイルシステムマッピングを /var/opt/mps/serverroot/slapd-hostname/config/dse.ldif ファイルで次のようにチューニングします。
Sun ONE Web Server 6.0 のチューニング
次に、perftune スクリプトによる JVM のチューニングについて説明します。最適稼動および最大稼動環境での Sun ONE Portal Server のパフォーマンスのために SunTM ONE Web Server をチューニングすることが可能です。
最適稼動
ヒープサイズ
ヒープサイズは、注目すべき重要なオプションです。ここでのパラメータの詳細については、Sun ONE Web Server のチューニングマニュアルを参照してください。perftune スクリプトは次のとおりです。
- web-server-install-root/SUNWwbsvr/https-hostname/config に配備されている magnus.conf に次のように指定します。
- web-server-install-root//https-/hostname//config に配備されている web-apps.xml ファイルに、次のように指定します (修正箇所は太字)。
- web-app タグの上に次のセッションマネージャを定義する
<session-manager class="com.iplanet.server.http.session.IWSSessionManager>
<init-param>
<param-name>maxSessions</param-name>
<param-value>50000</param-value>
</init-param>
<init-param>
<param-name>timeOut</param-name>
<param-value>360</param-value>
</init-param>
<init-param>
<param-name>reapInterval</param-name>
<param-value>180</param-value>
</init-param>
</session-manager>
- 予定された同時セッション数がデフォルト値を超えた場合、maxSession (デフォルトは 50000) を増やす
- クラスのリロード間隔を 5 分 (デフォルトは 30 秒) に定義する
<class-loader classpath="[...]" delegate="false" reload-interval="300"/>
- JVM をチューニングするために web-server-install-root//https-/hostname//config に配備されている server.xml ファイルに次のように指定します。
- 代替の T2 libthread に対して、start-jvm ファイルに次のように指定します。
NSES_JRE_RUNTIME_LIBPATH=/usr/lib/lwp:${NSES_JRE}/lib/sparc/server: ${NSES_JRE}/lib/sparc:${NSES_JRE}/lib/sparc/classic:${NSES_JRE}/lib /sparc/native_threads;export NSES_JRE_RUNTIME_LIBPATH
最大稼動
- web-server-install-root/SUNWwbsvr/https-hostname/config に配備されている magnus.conf に次のように指定します。
- web-server-install-root//https-/hostname//config に配備されている web-apps.xml ファイルに、次のように指定します。
- web-app タグの上に次のようにセッションマネージャを定義する
<session-manager class="com.iplanet.server.http.session.IWSSessionManager>
<init-param>
<param-name>maxSessions</param-name>
<param-value>50000</param-value>
</init-param>
<init-param>
<param-name>timeOut</param-name>
<param-value>360</param-value>
</init-param>
<init-param>
<param-name>reapInterval</param-name>
<param-value>180</param-value>
</init-param>
</session-manager>
- 予定された同時セッション数がデフォルト値を超過する場合、maxSession (デフォルトは 50000) を増やす
- JVM をチューニングするために web-server-install-root//https-/hostname//config に配備されている server.xml ファイルに次のように指定します。
jvm.minHeapSize=1073741824
jvm.maxHeapSize=2147483648
jvm.option=-Xrs
jvm.option=-server
jvm.option=-XincGC
jvm.option=-XX:+UseLWPSynchronization
jvm.option=-XX:MaxPermSize=128M
jvm.option=-XX:PermSize=128M
jvm.option=-XX:+OverrideDefaultLibthread
jvm.option=-XX:MaxNewSize=256M
jvm.option=-XX:NewSize=256M
- 代替の T2 libthread に対して、start-jvm ファイルに次のように指定します。
NSES_JRE_RUNTIME_LIBPATH=/usr/lib/lwp:${NSES_JRE}/lib/sparc/server: ${NSES_JRE}/lib/sparc:${NSES_JRE}/lib/sparc/classic:${NSES_JRE}/lib /sparc/native_threads;export NSES_JRE_RUNTIME_LIBPATH
Sun ONE Application Server 7.0 のチューニング
Sun ONE Application Server に Sun ONE Portal Server を配備するとき、アプリケーションサーバーインスタンスの最小および最大ヒープサイズが設定されます。
Sun ONE Application Server 7.0 の推奨 JVM オプションは、J2 SDK 1.4.1_01 および 1.4.2 に対して、次のとおりです。
サーバーのマシンの物理メモリが 4G バイトしかない場合、-Xms3072M の代わりに -Xms2048M が使用されます。-Xms3072M が設定されていると、JVM は起動しません。これらの JVM オプションは、perftune スクリプトによって設定された JVM オプションを上書きします。
JVM パラメータのフルセットは、次のとおりです。
ゲートウェイの信頼性のための Sun ONE Application Server 追加パラメータの設定
Secure Remote Access を使用して最適パフォーマンスを実現するため、次のように実装を設定します。
- identity-server-install-root/SUNWam/lib/configAmConfig.properties ファイルを変更して、アプリケーションサーバーの通知スレッドプールサイズを設定します。ファイルの先頭には次の行があります。
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* in the United States and other countries.
次の行を追加してスレッドプールサイズを 200 に設定します。
/*Notification Thread Pool Size*/ com.iplanet.am.notification.threadpool.size=200
- インストール中に入力したユーザー名 amadmin とパスワードを使用して Portal Server の管理コンソールにログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」を選択します。
- default をクリックして「ゲートウェイプロファイルを編集」ページを開きます。
- 「HTTP 接続を有効」チェックボックスをオンにします。
- 「HTTP ポート」フィールドに 80 と入力し、「保存」をクリックします。
- ブラウザの Web アドレスフィールドに http://fullservername:port と入力することによって、Sun ONE Application Server 管理コンソールに管理者 (admin) としてログインします。デフォルトのポートは 4848 です。インストール時に入力したパスワードを使用します。
- Identity Server をインストールしたアプリケーションサーバーインスタンスを選択します。
- 「JVM 設定」をクリックし、「JVM オプション」をクリックします。
- 「JVM オプション」フィールドに次の文字列を入力します。
-Dhttp.keepAlive=false
- 「追加」をクリックし、「保存」をクリックします。
- Portal Server をインストールするアプリケーションサーバーインスタンスを選択します。
右区画に、設定が変更されたことが示されます。
- 「変更の適用」をクリックします。
- 「再起動」をクリックします。
- アプリケーションサーバーが自動的に再起動します。
- ゲートウェイがインストールされたサーバーの /opt/SUNWps/bin/perf ディレクトリに移動し、次のように入力して、Secure Remote Access のチューニングパラメータを設定するスクリプトを実行します。
./srapperftune
- identity-server-install-root/SUNWam/lib/configAmConfig.properties ファイルを変更して、ゲートウェイの通知スレッドプールサイズを設定します。ファイルの先頭には次の行があります。
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* in the United States and other countries.
次の行を追加してスレッドプールサイズを 200 に設定します。
/*Notification Thread Pool Size*/ com.iplanet.am.notification.threadpool.size=200
- /opt/SUNWps/bin ディレクトリに移動し、ゲートウェイファイルを変更して -Dhttp.keepAlive オプションを false に設定し、-Xms および -Xmx ヒープサイズオプションを増やします。
デフォルトでは、srapperftune スクリプトがヒープサイズオプションを 1024 に設定します。CMD 設定オプションを定義する行では、-Xms と -Xmx オプションに定義されたデフォルト値を 2048 に増やし、文字列 -Dhttp.keepAlive=false を追加します。たとえば、正しい行は次のようになります。
CMD="$JAVA_HOME/bin/java -server -Xms2048M -Xmx2048M -XX:+OverrideDefaultLibthread -XX:ThreadStackSize=128 -XX:MaxPermSize=128M -XX:PermSize=128M -XX:MaxNewSize=256M -XX:NewSize=256M -Dhttp.keepAlive=false -classpath ${CLASSPATH} $DEFINES $PROXY_DEFINES $INSTANCE_DEFINES com.sun.portal.netlet.eproxy.EProxy"
- /etc/opt/SUNWps/platform.conf.default ファイルを変更し、次のように gateway.protocol パラメータを http に設定し、gateway.port パラメータをポート 80 に設定します。
gateway.protocol=http
gateway.port=80
- 次のコマンドを入力することによって、ゲートウェイを再起動し、変更を有効にします。
portal-server-install-root/SUNWps/bin/gateway -n default start
- ここで default は、インストール中に作成されたデフォルトゲートウェイプロファイルです。
Sun ONE Portal Serverデスクトップのチューニング
最適稼動
最大稼動
プロバイダを経由してコンテンツを作成するスレッドプールのサイズを指定するには、caller パラメータが使用されます。caller プールはサイズ 0 に初期化されます。項目は、使用されるときや返されるときにプールに追加されます。caller プールは、非常に大きなサイズに拡張することができますが、通常の場合は、ユーザーのポータルデスクトップ上のチャネルの数と同じ大きさにしかなりません。同じ sid の同時スレッドが複数ある場合、プールは、n を同じ sid の同時スレッドの数、m を特定の sid のポータルデスクトップのチャネル数として、n * m で表されます。
perftune スクリプトは、/etc/opt/SUNWps/desktop/desktopconfig.properties ファイルの Provider Caller Resource Pooling を最適化するために次のパラメータを変更します。
長時間テストを実行する際、ポータルデスクトップの caller スレッドの発生による不要なメモリの増大を最小化するには、これらのプロパティ (templateScanInterval を除く) を元のデフォルト値に戻す必要があります。
これらのプロパティを次のように変更します。