Sun Java System Portal Server 6 2005Q4 管理ガイド |
第 19 章
Portal Server のチューニングこの章では、パラメータを設定して Sun JavaTM System Portal Server のパフォーマンスと能力を最適化する方法について説明します。Portal Server にバンドルされた PortalServer-base/SUNWps/bin ディレクトリの perftune スクリプトにより、この章で説明するチューニングプロセスのほとんどが自動的に実行されます。
今回リリースされた perftune スクリプトでは、次の点が更新されました。
紹介perftune スクリプトには次の特長があります。
- SolarisTM オペレーティングシステムのカーネルおよび TCP 設定のチューニング (「Solaris のチューニング」を参照)
- 次の製品の一部となっている設定ファイルの変更
- Portal Server デスクトップサービスおよび Sun JavaTM System Access Manager 認証サービスのプロパティーの変更。
チューニング方法perftune スクリプトを実行するには、次の手順を実行します。
perftune スクリプトは、チューニングプロセス中にサーバーの起動と停止を実行します。また、filename-orig-date-pid の形式で変更されたファイルのバックアップコピーを作成します。スクリプトの実行後はシステムを再起動し、チューニングによる変更を有効にします。
Solaris のチューニング
カーネルのチューニング
スクリプトにより、/etc/system ファイルに次の設定が追加されます。
最初のファイル (/etc/system) は、次の形式でファイルにコピー
/etc/system-orig-'$DATE+%y%m%d'-$$
注
ほとんどのファイルに対してバックアップが実行されます。スクリプトにより、変更されたファイルのバックアップコピーがそれぞれのディレクトリに次の形式で作成されます。filename-orig-date-pid
TCP パラメータのチューニング
/dev/tcp にある TCP パラメータ (括弧で表記) に次の変更を加えます。
- TCP Time Wait Interval (tcp_time_wait_interval): TCP ソケットが、接続が閉じられたあとに TIME_WAIT 状態に留まる時間を 60000 に設定します。
- TCP Fin Wait 2 Interval (tcp_fin_wait_2_flush_interval): TCP ソケットが、接続が閉じられたあとに FIN_WAIT_2 状態に留まる時間を 67500 に設定します。
- TCP Maximum Connection Size (tcp_conn_req_max_q): 完全に確立された接続の最大数を 8192 に設定します。
- TCP List Queue (tcp_conn_req_max_q0): 未確立の接続が入っているキューのサイズを 8192 に設定します。
- TCP Packet Drop Time (tcp_ip_abort_interval): パケットがドロップされるまでの時間を 60000 に設定します。
- TCP キープアライブ間隔 (tcp_keepalive_interval): 90000 に設定します。
- TCP Maximum Retransmit Interval (tcp_rexmit_interval_max): 6000 に設定します。
- TCP Minimum Retransmit Interval (tcp_rexmit_interval_min): 3000 に設定します。
- TCP Initial Retransmit Interval (tcp_rexmit_interval_initial): 500 に設定します。
- TCP Smallest Anonymous Port (tcp_smallest_anon_port): 1024 に設定します。
- TCP Initial Packets for Slow Start Algorithm (tcp_slow_start_initial): 2 に設定します。
- TCP Transmit/Receive Buffer Size Limit (tcp_xmit_hiwat および tcp_recv_hiwat): それぞれ 32768 に設定します。
システムの起動時に ndd コマンドを自動的に実行させるため、perftune スクリプトは S99ndds_tcp ファイルを /etc/rc2.d/ ディレクトリにコピーします。
Sun Java System Access Manager のチューニング
ここでは、Directory Server の接続プール、LDAP 認証、および設定パラメータについて説明します。
Directory Server の接続プール
/etc/opt/SUNWam/config/serverconfig.xml ファイルに次の変更を加えます。
LDAP 認証サービス
Sun Java System Access Manager サービス設定パラメータ
/etc/opt/SUNWam/config/AMConfig.properties ファイルに次の変更を加えます。
- com.iplanet.am.logstatus を INACTIVE に指定します。
- 予期される同時セッション数がcom.iplanet.am.session.maxSession (デフォルトは 50000) の値を超える場合は、com.iplanet.am.session.maxSession の値を増やします。
- com.iplanet.am.session.httpSession.enabled を無効に設定します。
- com.iplanet.am.sdk.cache.maxSize=DSAME_MAX_CACHE_SIZE を指定します。ここで、DSAME_MAX_CACHE_SIZEは、Access Manager と Portal Server のチューニングガイドの推奨設定に基づきます。
MAX_CONCURRENT_SESSIONS=7000、および services registered=3 (デフォルト) で、DSAME_MAX_CACHE_SIZE=(MAX_CONCURRENT_SESSIONS) * (2 + services registered) を指定します。- com.iplanet.am.stats.interval の値を 60 に指定します。
- com.iplanet.am.session.purgedelay の値を 5 に指定します。
- com.iplanet.services.stats.state の値を file に指定します。
- com.iplanet.services.states.directory の値を /var/opt/SUNWam/debug に指定します。
Access Manager と Portal Server が別々のマシンにインストールされている場合は、ポーリングモードが有効になります。ポーリングモードでは次のオプションを使用できます。
/opt/SUNWam/lib/AMConfig.properties ファイルのスレッドプールのプロパティーは、次のように公表されています。
Sun Java System Directory Server のチューニング
Sun JavaTM System Directory Server をほかのアプリケーションと共有している場合は、設定されているパラメータがほかのタプリケーションのパラメータチューニングと競合していないかどうかを検証する必要があります。
/tmp/slapd-DSinstance1 用に十分な仮想メモリー空間を確保する必要があります。ページングを避けるため、使用メモリーの合計は、データベースキャッシュに割り当てられた分も含めて物理メモリーのサイズを超えないようにしてください。どのような場合でも、nsslapd-dbcachesize + nsslapd-cachememsize + slapd プロセス自体で使用される固定memory の累積値を、プロセス用のアドレス空間 4G バイトより大きくすることはできません。Nsslapd は 32 ビットアプリケーションです。
Sun Java System Directory Server は、リソースプール (接続およびスレッド) のサイズ指定に関して、検索動作の場合で多重度約 15 の高いパフォーマンスを示します。
perftune スクリプトにより、/var/opt/mps/serverroot/slapd-hostname/config/dse.ldif ファイルの ns-slapd スレッド化、db cache、およびデータベースファイルシステムのマッピングを、次のようにチューニングします。
Sun Java System Web Server 6.1 のチューニング
次のセクションでは、perftune スクリプトによって JVM のチューニングを行い、Sun JavaTM System Web Server for Portal Server のパフォーマンスを向上させる方法について説明します。
- WebServer-base/SUNWwbsvr/https-hostname/config に配置された magnus.conf のパラメータを次のように指定します。
- WebServer-base//https-hostname//config に配置された server.xmlファイルのパラメータを次のように指定して、JVM をチューニングします。
- -Xms3G (この値はメモリーが使用可能であれば 3G バイトに設定する。それ以外の場合の Xms の値はデフォルトで 128)
- -Xmx3G (この値はメモリーが使用可能であれば 3G バイトに設定する。それ以外の場合の Xmx の値はデフォルトで 128)
- -Xss128K
- -Xloggc:/var/opt/SUNWappserver7/domains/domain1/
server1/logs/gclog- -XX:NewSize=384M
- -XX:MaxNewSize=384M
- -XX:MaxPermSize=64M
- -XX:PermSize=64M
- -XX:+UseParNewGC
- -XX:+UseConcMarkSweepGC
- -XX:MaxTenuringThreshold=1
- -XX:SoftRefLRUPolicyMSPerMB=1
- -XX:+CMSClassUnloadingEnabled
- -XX:+CMSPermGenSweepingEnabled
- -XX:+PrintGCTimeStamps
- -XX:+ShowMessageBoxOnError
- -XX:+OverrideDefaultLibthread
- -XX:+DisableExplicitGC
- -XX:+PrintGCDetails
- -XX:+PrintClassHistogram
Sun Java System Application Server 7.0 のチューニング
SunTM Java System Application Server に Portal Server を配備する場合、Application Server インスタンスの最小および最大ヒープサイズは 3G バイトに設定されます。
perftune スクリプトは、JVM に 3G バイトのヒープを使用できないシステムのチューニングを行わないように設定されています。
次のセクションでは、perftune スクリプトによって JVM のチューニングを行い、Sun JavaTM System Application Server for Portal Server のパフォーマンスを向上させる方法について説明します。
- Deplaoy_Domain/Deploy_Instance/config に配置された init.conf のパラメータを、次のように指定します。
- Deplaoy_Domain/Deploy_Instance/config/sever.xml にある JVM パラメータを、次のように指定します。
- -Xms3G (この値はメモリーが使用可能であれば 3G バイトに設定する。それ以外の場合の Xms の値はデフォルトで 128)
- -Xmx3G (この値はメモリーが使用可能であれば 3G バイトに設定する。それ以外の場合の Xmx の値はデフォルトで 128)
- -Xss128K
- -Xloggc:/var/opt/SUNWappserver7/domains/domain1/server1/logs/gclog
- -XX:NewSize=384M
- -XX:MaxNewSize=384M
- -XX:MaxPermSize=64M
- -XX:PermSize=64M
- -XX:+UseParNewGC
- -XX:+UseConcMarkSweepGC
- -XX:MaxTenuringThreshold=1
- -XX:SoftRefLRUPolicyMSPerMB=1
- -XX:+CMSClassUnloadingEnabled
- -XX:+CMSPermGenSweepingEnabled
- -XX:+PrintGCTimeStamps
- -XX:+ShowMessageBoxOnError
- -XX:+OverrideDefaultLibthread
- -XX:+DisableExplicitGC
- -XX:+PrintGCDetails
- -XX:+PrintClassHistogram
注
Deplaoy_Domain/Deploy_Instance/config/server.xml ファイルには、次の形式でバックアップが作成されます。
filename-orig-date-pid
その他の Sun Java System Application Server パラメータを設定してゲートウェイの信頼性を向上させる
Secure Remote Access を使用してパフォーマンスを最適化するには、次のように実装を設定します。
- AccessManager-base/SUNWam/lib/AmConfig.properties ファイルに変更を加えて、アプリケーションサーバーの通知スレッドプールサイズを設定します。ファイルの先頭に次のような行があります。
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* Inc. 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 と入力し、管理者 (admin) として Sun Java System Application Server 管理コンソールにログインします。デフォルトポートは 4848 です。インストール時に入力したパスワードを使用します。
- Access Manager をインストールしたアプリケーションサーバーインスタンスを選択します。
- 「JVM 設定」をクリックし、「JVM オプション」をクリックします。
- 「JVM オプション」フィールドに次の文字列を入力します。
-Dhttp.keepAlive=false
- 「追加」をクリックし、「保存」をクリックします。
- Portal Server をインストールするアプリケーションサーバーインスタンスを選択します。
右のパネルに設定が変更されたことが表示されます。
- 「変更を適用」をクリックします。
- 「再起動」をクリックします。
- アプリケーションサーバーが自動的に再起動します。
- ゲートウェイがインストールされているサーバーで /opt/SUNWps/bin/perf ディレクトリに移動し、次の文字列を入力して、Secure Remote Access のチューニングパラメータを設定するスクリプトを実行します。
./perftune
- AccessManager-base/SUNWam/lib/AmConfig.properties ファイルに変更を加えて、ゲートウェイの通知スレッドプールサイズを設定します。ファイルの先頭に次のような行があります。
Sun, Sun Microsystems, the Sun logo, and iPlanet
* are trademarks or registered trademarks of Sun Microsystems,
* Inc. 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 のヒープサイズオプションの設定を増やします。
- CMD 設定のオプションを次のように定義します。
CMD="$JAVA_HOME/bin/java -server -Xms3G -Xmx3G -XX:+OverrideDefaultLibthread -Xss128K
-XX:MaxPermSize=64M -XX:PermSize=64M -XX:MaxNewSize=512M
-XX:NewSize=512M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC
-XX:MaxTenuringThreshold=1
-XX:SoftRefLRUPolicyMSPerMB=1
-XX:+CMSClassUnloadingEnabled -XX:+CMSPermGenSweepingEnabled
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamps -XX:+PrintClassHistogram
-XX:+ShowMessageBoxOnError -XX:+DisableExplicitGC
-Xloggc:/var/opt/SUNWps/debug/gclog.$GW_INSTANCE -classpath $CLASSPATH $DEFINES1 $DEFINES2 $DEFINES3 $DEFINES4 $DEFINES5
$PROXY_DEFINES $BOOT_CLASSPATH com.sun.portal.netlet.eproxy.EProxy"- /etc/opt/SUNWps/platform.conf.default ファイルに変更を加え、次のように gateway.protocol パラメータを http に、gateway.port パラメータをポート 80 に設定します。
gateway.protocol=http
gateway.port=80
- 次のコマンドを入力してゲートウェイを再起動し、変更を有効にします。
PortalServer-base/SUNWps/bin/gateway -n default start
ここで、default はインストール時に作成されたデフォルトゲートウェイプロファイルです。
Portal Server デスクトップのチューニング
caller パラメータは、プロバイダを通してコンテンツを提供するためのスレッドプールのサイズを指定するために使用します。caller プールは、サイズ 0 に初期化されます。使用されて返されるときに、プールに項目が追加されます。caller プールは非常に大きなサイズに拡張可能ですが、通常はユーザーのポータルデスクトップのチャネル数程度の大きさです。sid が同じ複数の並行スレッドが存在する場合、プールは n * m のサイズに拡大可能です。ここで、n は同じ sid を持つ並行スレッドの数、m は指定された sid に対応するポータルデスクトップのチャネル数です。
perftune スクリプトは、/etc/opt/SUNWps/desktop/desktopconfig.properties ファイルにある次のパラメータを変更し、プロバイダ Caller リソースプールを最適化します。
長時間のテストを実行する場合にポータルデスクトップの caller スレッドが生成され、これによって増える不要なメモリ使用量を最小限に抑えるには、これらのプロパティー (templateScanInterval を除く) を最初のデフォルト値に戻してください。
各プロパティーを次のように変更します。