Sun ONE logo     前へ     目次     索引     次へ     
Sun ONE Portal Server 6.0 インストールガイド



第 5 章   Sun ONE Portal Server のチューニング


この章では、SunTM ONE Portal Server のパフォーマンスおよび容量を最適化する設定パラメータについて説明します。 Sun ONE Portal Server に組み込まれている perftune スクリプト (BaseDir/SUNWps/bin ディレクトリ内) は、この章で説明するチューニングプロセスのほとんどを自動的に実行します。



はじめに


perftune スクリプトには次の機能があります。



チューニング方法


perftune スクリプトを実行する場合、最適稼動および最大稼動と呼ばれる 2 つの標準的な使用シナリオに対してパフォーマンスチューニングオプションが提供されます。 これらのシナリオは、Sun ONE Portal Server 使用パターンの大部分を処理するように定義されています。 これらの配備シナリオには、次のような特徴があります。

  • 最適稼動 :

    • 高レベルの同時ユーザ要求

    • 少数の接続ユーザ (1 インスタンスにつき数百ユーザ)

    • CPU 結合

    • JVM パフォーマンスの最大要因はスループットとプロンプトネス

    • 短期オブジェクトライフタイム分布の優位性

  • 最大稼動 :

    • 低レベルの同時ユーザ要求

    • 多数の接続ユーザ (1 インスタンスにつき数千ユーザ)

    • メモリー結合

    • JVM パフォーマンス最大要因は JVM メモリー容量

    • 長期オブジェクトライフタイム分布の優位性

たとえば、企業ポータルに対するビジネスのピーク時には、多数の企業の雇用者が最大稼動環境で同時にポータルに接続します。



メモリー割り当て


JVM ごとに割り当てる大容量メモリーは、次の 2 つのパラメータによって決定されます。

  1. CPU ごとの物理メモリーの最大サイズ。 E45* クラスのマシンでは、約 1 G バイト

  2. パフォーマンスおよびスケーラビリティを得るために推奨される CPU 対インスタンス数は、Sun ONE Portal Server の最適なパフォーマンスには、従来どおり 1:1 (1 CPU 対 1 インスタンス) です。 最大稼動を得るためには、比率 1:2 (2 CPU 対 1 インスタンス) が適していて、これにより JVM ヒープサイズを最大 2 G バイトにできます。

チューニングを実行する JVM パフォーマンスマトリックスでは、スループット、フットプリント、およびプロンプトネスは、次のように定義されます。

スループット

フットプリント

プロンプトネス

最適稼動

高い

低クリティカル

高い

最大稼動

低クリティカル

低い

低クリティカル

説明 :

  • スループットはGC に使用しない時間

  • フットプリントはプロセスのワーキングセット

  • プロンプトネスはオブジェクトが無効になり、そのメモリーが開放されるまでの時間



チューニング手順


perftune スクリプトを実行する場合、次のチューニングの推奨事項を実行するかどうかを指定できます。 推奨事項を注意深く検討し、perftune スクリプトを使用して、推奨されるこれらの変更を実行します。

perftune スクリプトは、次の手順で行います。

  1. マシンへログインし、スーパーユーザになります。

    このスクリプトを実行するには、root のアクセス権が必要です。

  2. ディレクトリを BaseDir/SUNWps/bin に変更します。

  3. ./perftune と入力します。

チューニングプロセスの間、perftune スクリプトがサーバの開始および停止の操作を実行します。 このスクリプトにより、filename-orig-date-pid 形式で、修正ファイルのバックアップコピーが作成されます。 スクリプトを実行したあと、チューニングの変更を反映させるため、システムを再起動します。


Solaris のチューニング




カーネルのチューニング



/etc/system ファイルに対して、スクリプトは次の設定を追加します。

  • ファイル記述子制限 - オープンファイル数制限

    • set rlim_fd_max=16384

    • set rlim_fd_cur=16384

  • ストリームキューサイズ - あて先のストリームキューが QFULL を生成する前の syncq (メッセージ数) の深さ

    • set sq_max_size=0

  • TCP 接続ハッシュサイズ (<= ファイル記述子)

    • set tcp:tcp_conn_hash_size=8192


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 and tcp_recv_hiwat) - それぞれ 32768 に設定する

システムを再起動する際、ndd コマンドを自動的に実行するには、perftune スクリプトが S99ndds_tcp ファイルを /etc/rc2.d/ ディレクトリにコピーします。


iPlanet Directory Server Access Management Edition のチューニング




Directory Server 接続プール



BaseDir/SUNWam/config/ums/serverconfig.xml ファイルの変更内容は次のとおりです。

  • 接続プールサイズの最小値を 10 に増やす

  • 接続プールサイズの最大値を 90 に増やす


LDAP 認証サービス



  • LDAP 接続プールのデフォルトサイズ (最大 : 最小) を 10:90 に更新する


LDAP 認証



  • 「DN to Start User Search (ユーザ検索を開始する DN)」を ou=people,o=<organization>,o=isp に指定する

  • 「Search Scope (検索範囲)」を OBJECT に指定する


iPlanet Directory Server Access Management Edition サービス設定パラメータ



BaseDir/SUNWam/lib/AMConfig.properties ファイルの変更内容は次のとおりです。

  • com.iplanet.am.logstatusINACTIVE に指定する

  • 同時に実行するセッションの予測数がこの値を超過する場合、com.iplanet.am.session.maxSession (デフォルトで 50000) を増やす

  • com.iplanet.am.session.httpSession.enabled を無効にする


Sun ONE Directory Server のチューニング



SunTM ONE ディレクトリサーバを他のアプリケーションと共有する場合、パラメータが他のアプリケーションのパラメータと衝突しないようにチューニングし、確認する必要があります。

/tmp/slapd-dsame1 には、十分な仮想メモリースペースを提供する必要があります。また、ページングを避けるために、データベースキャッシングに割り当てた分を含む使用メモリーの総容量は、物理メモリーサイズを超過してはなりません。どのイベントでも、slapd プロセス自体に使用される nsslapd-dbcachesize + nsslapd-cachememsize + fixed memory の累積値は、プロセスアドレススペースの 4 G バイトを超過できません。 Nslapd は 32 ビットのアプリケーションです。

リソースプール (接続およびスレッド) のサイジングに関しては、Sun ONE Directory Server によって、オペレーションの検索タイプに対して 15 前後の同時レベルで最良のパフォーマンスが提供されます。

perftune スクリプトは、ns-slapd スレッディング、db cache、および/usr/ldap/slapd-hostname/config/dse.ldif ファイルにマッピングするデータベースファイルシステムを次のようにチューニングします。

  • dn: cn=config LDAP エントリ の下に入力する項目

    • nsslapd-threadnumber 行を nThreads に追加する。 プロファイル変更 (LDAP の書き込み) が想定される場合を除き、ほとんどの場合はデフォルト値 (30) の使用が適切であり、スクリプトには次の式が適用される。

            nThreads = 30 for 1 CPU, nThreads = 45 for 2 CPUs, nThreads = 60 for 3 CPUs, nThreads = 90 for 4 CPUs.

    • nsslapd-accesslog-logging-enabled をオフに指定し、アクセスログを使用不可にする

  • dn: cn=config,cn=ldbm database,cn=plugins,cn=config LDAP エントリの下に入力する項目

    • nsslapd-db-home-directory 行を /tmp/slapd-dsame1 に追加する

    • nsslapd-maxthreadsperconn 行を 20 に変更する

    • nsslapd-dbcachesizenewSize に変更する。ここでは、newSize = 1.2 *が /usr/ldap/slapd-hostname/db/userRoot の下に位置するすべての db3 ファイルのサイズである

  • 以下の dn: cn=userRoot,cn=ldbm database,cn=plugins,cn=config LDAP エントリは、行 nsslapd-cachememsizenewSize へ変更する。ここでは、id2entry.db3 のサイズは newSize = 3 * である



    Sun ONE Directory Server を手動でチューニングする場合、これらのパラメータをチューニングする前にSun ONE Directory Server を停止する必要があります。




Sun ONE Web Server 6.0 のチューニング



次に、perftune スクリプトが提供する JVM のチューニングについて説明します。JVM のチューニングによって、最適稼動、および最大稼動環境において SunTM ONE Web Server をSun ONE Portal Server パフォーマンスにチューニングするよう支援します。


最適稼動




ヒープサイズ
ヒープサイズは、注目すべき重要なオプションです。 ここでのパラメータの詳細については、Sun ONE Web Server のチューニングマニュアルを参照してください。 perftune スクリプトは次のとおりです。

  1. BaseDir/SUNWam/servers/https-hostname/config に配置されている magnus.conf に、次のように指定します。

    • RqThrottle 256

    • StackSize 393216

    • ThreadIncrement 20

    • ConnQueueSize 20000

  2. BaseDir/SUNWam/servers/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"/>

  3. JVM のチューニングをするために BaseDir/SUNWam/servers/https-hostname/config にある jvm12.conf ファイルに次のように指定します。

    • jvm.minHeapSize=1073741824

    • jvm.maxHeapSize=1073741824

    • jvm.option=-Xrs

    • jvm.option=-server

    • jvm.option=-XX:MaxPermSize=128M

    • jvm.option=-XX:PermSize=128M

    • jvm.option=-XX:+OverrideDefaultLibthread

    • jvm.option=-XX:MaxNewSize=256M

    • jvm.option=-XX:NewSize=256M

  4. 代替の 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


最大稼動



  1. BaseDir/SUNWam/servers/https-hostname/config に格納されている magnus.conf に次のように指定します。

    • RqThrottle 256

    • StackSize 131072

  2. BaseDir/SUNWam/servers/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) を増やす

  3. JVM のチューニングのために、BaseDir/SUNWam/servers/https-hostname/config にある jvm12.conf ファイルに、次のように指定します。

       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

  4. start-jvmファイルで、代替の T2 libthread に対して次のように指定します。

        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



JVM メモリーのヒープサイズは、最小 1 G バイト、最大 2 G バイトです。 ヤングジェネレーションは最適稼動に比例して小さくなるため、接続ユーザは、より多くのスペースを利用できます。

インクリメンタル (または Train) GC が最大稼動により適しているのは、GC の速度より、オールドジェネレーションのサイズが大きいことによる間隔の長さのほうが影響が大きいためです。




Sun ONE Portal Server Desktop のチューニング




最適稼動



  • Desktop セッションを最適化するには、Enable XML Parsing Validation を使用不可にする

Desktop セッションは、iPlanet Directory Server Access Management Edition SSOToken セッションとは異なり、接続ができません。 iPlanet Directory Server Access Management Edition セッションの期限が切れる前に Desktop セッションがタイムアウトになる場合、照会があると、Desktop は Desktop セッションを透過的に再構築します。 Desktop セッションのアイドルタイムアウトを減らすことによって、短いユーザセッションを特徴とする最適稼動を想定して、セッションオブジェクトに使用されるメモリーが開放されます。

  • Provider Caller Resource Pooling を最適化するには、/etc/opt/SUNWps/desktop/desktopconfig.properties ファイルの指定を次のように変更する

    • callerPoolMinSize を 128 に増やす

    • callerPoolMaxSize を 512 に増やす

    • callerPoolPartitionSize を 16 に増やす

    • templateScanInterval を 3600 に増やす


最大稼動



Provider Caller Resource Pooling を最適化するには、/etc/opt/SUNWps/desktop/desktopconfig.propertiesファイルの指定を次のように変更する

  • callerPoolMinSize を 128 に増やす

  • callerPoolMaxSize を 512 に増やす

  • callerPoolPartitionSize を 16 に増やす

  • templateScanInterval を 3600 に増やす


前へ     目次     索引     次へ     
Copyright 2002 Sun Microsystems, Inc. All rights reserved.

最終更新日 2002 年 8 月 29 日