ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Portal管理者ガイド
11gリリース1(11.1.1)
B61385-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

10 Oracle Portalのパフォーマンスの調整

この章では、ポータル・システムの基本構成を設定した後で、その構成を基にしてOracle Portalのパフォーマンスを調整する方法について説明します。

この章では、Oracle Portalのパフォーマンスを調整する方法として、次のオプションについて説明します。


関連項目


10.1 サーバー・プロセス数の設定

Oracle HTTP Serverは、WebリクエストをHTTPプロセスへ配布して処理します。Oracle HTTP Serverは、ユーザーのブラウザから送信されるすべてのタイプのリクエスト(静的ファイル、Javaサーブレット、PL/SQLプロシージャに対するリクエストなど)を処理できます。

MaxClientsは、Oracle HTTP Serverの構成ディレクティブの1つで、Oracle HTTP Serverが常に処理可能なWebリクエストの最大数を制御します。MaxClientsの値を超えると、Oracle HTTP Serverは、現在の負荷を処理してHTTPプロセスが解放されるまで、新しいリクエストの処理を拒否します。たとえば、他のブラウザが許容セッション数を超えている場合、クライアントのブラウザがロックアウトされることがあります。

MaxClientsディレクティブは、同時Webリクエストの適切なフローをサーバーに許可するレギュレータとして考えることができます。この値が小さすぎると、Webポータルのパフォーマンスが低下する場合があります。より多くの通信量を迅速なレスポンスで処理するサーバーおよびデータベース・リソースを配置しても、適切なプロセス数がMaxClientsに設定されていないと、Webリクエストを処理できない場合があります。

各HTTPプロセス・サーバーはCPU時間、メモリー、I/Oなどのリソースを消費するため、MaxClientsの値が大きすぎると、必要以上にリソースが消費されます。その結果、パフォーマンスが低下する場合があります。Oracle HTTP Serverは、PL/SQLプロシージャに対するリクエストを含む、あらゆる種類のリクエストを処理できます。Oracle HTTP Serverがリクエストを受信すると、ポータル・データベースと通信するためにPortalサービスにリクエストを渡します。ポータル・データベース・リクエストを実行するサーバー・プロセスごとに、データベース接続をキャッシュする必要があります。MaxClientsに設定する値によって、Portalサービスが開くことができるデータベース接続の上限が設定されます。

たとえば、MaxClientsを最大数の1024に設定します。Oracle HTTP Serverは、常に1024(データベース接続を必要とする数を含む)のWebリクエストを同時に処理できます。サーバーがこの負荷に対応できる場合でも、接続先のデータベースが対応できないことがあります。PL/SQLプロシージャのリクエスト数が他のタイプのリクエスト数より急激に多くなった場合は、データベースが対応できる負荷を超える可能性があります。


注意

Windowsの場合は、Oracle HTTP ServerのパラメータThreadsPerChildを調整してください。

パフォーマンスを最適にするには、構成内のサーバーが処理できるWebリクエストの数およびデータベースが処理できる通信量を決めることです。1つのデータベースに接続する複数の中間層サーバーがポータル構成に含まれている場合、処理可能なWebリクエストの数は、中間層よりもデータベースの容量によって制限される可能性があります。


関連項目


10.2 アイドル・プロセス数の設定

MinSpareServersは、UNIX特有のOracle HTTP Serverディレクティブの1つで、アイドル・セッションの最小数を設定します。アイドル・セッションとは、Webリクエストを現在処理していないセッションのことです。アイドル・セッションの数が、MinSpareServersで指定されている数よりも少ない場合は、最大で毎秒1個のプロセスが新しく作成されます。

このパラメータは、アクセス頻度の高いサイトに対してのみ調整してください。デフォルトの設定は5です。このパラメータを大きな数に設定することはお薦めできません。原則として、ポータルが通常処理するWebリクエストの平均数を少し上回る値にMinSpareServersを設定します。できるだけ、新しいポートを開かずに、開いているポートによってユーザー・リクエストが処理されるように設定します。ただし、この状態を実現するには、データベース・リソースで必要な数のポートを利用できなければなりません。

UNIXとは異なり、Windowsはスレッドベースのオペレーティング・システムであり、1つのプロセスが開始された後、その子プロセスが必要に応じてスレッド化されます。Windowsコンピュータの場合、このディレクティブはMaxThreadsPerChildと呼ばれます。これは、サーバーが同時に処理できるリクエスト数を表します。サーバー、およびサーバーが使用することのできるシステム・リソースの応答性に従って、この値を設定してください。WindowsのMaxThreadsPerChildはUNIXのMaxClientsに相当します。


関連項目

『Oracle Fusion Middleware Oracle HTTP Server管理者ガイド』

10.3 PPEフェッチャ数の設定

ポータル・ページに対するリクエストはURLの形式で開始され、ユーザーのブラウザからOracle HTTP Serverに送信されます。ポータル・ページに対するリクエストの場合、Parallel Page Engine(PPE)に転送されます。次にPPEは、ポートレットを実行してコンテンツをポータル・ページに返すよう、ページ上のポートレットを所有する各プロバイダに要求します。

PPEにおける同時実行性を向上させるには、次の手順を実行します。

デフォルトのスレッド数を増やす

PPEはフェッチャのプールを使用して、リクエストをプロバイダに転送し、データが返されるのを待機します。リクエストの処理が終わると、そのフェッチャが解放され、新しいリクエストを処理できるようになります。

PPEスレッドの数を調整するパラメータは、poolSizeという名前で、MW_HOME\user_projects\domains\<DomainName>\config\fmwconfig\servers\WLS_PORTAL\applications\portal\configuration\appConfig.xmlファイルに構成されています。

デフォルト値は、25です。ほとんどのWebポータルの場合、プール・サイズを変更する必要はありません。ただし、プール・サイズが小さすぎると、ピーク間隔でページの描画に時間がかかるようになります。プール・サイズが大きすぎると、リソースが不足することがあります。同時に多数のURLリクエストが発生して、PPEの処理量を超える可能性があるためです。

PPEのパラメータは次のとおりです。

      <poolSize>50</poolSize> 

構成の変更を有効にするには、Oracle Fusion Middleware中間層を再起動します。

10.4 Oracle HTTP Serverの調整

Oracle HTTP Serverリスナーを設定することにした場合でも、Oracle HTTP Serverリスナーによって同時に処理できるリクエストのおおよその数を設定して、パフォーマンスを最適化することができます。

Oracle Portalの実行に必要なデータベース・セッションの合計数は、ポータル・リポジトリへの同時アクセスを必要とする同時リクエストの合計数の要因になります。特定のインスタンスによるサービスが可能な任意のタイプの同時リクエストの合計数は、Oracle HTTP Serverの構成パラメータMaxClientsの要因になります。

ポータル・リポジトリへの各接続では、1つのネットワーク接続と2つのセッションを使用します(2つのセッションは同じ物理接続を使用します)。最初のセッションはportal用、2番目のセッションはportal_public用です。

したがって、MaxClientsは150に設定されていても、ポータル・リポジトリへの同時アクセスを必要とする同時リクエストの最大数が50である場合は、100(50*2)セッションを実行できるようにデータベースを構成する必要があります。

ほとんど起こる可能性はありませんが、理論的には、150すべてのリクエストがポータル・リポジトリへの同時アクセスを必要とする場合もあります。このような場合、必要なデータベース・セッション数は300(150*2)になります。

ポータル・リポジトリへの同時アクセスを必要とする同時リクエストの数が多く、処理可能なセッション数を越えた場合、クライアントがロックアウトされることがあります。ただし、セッション数を非常に大きな値に設定すると、リソースが必要以上に消費されます。


注意:

  1. 同時にサービスされる一般的なリクエストには、常に様々なタイプ(静的イメージ、ポータル・ページのリクエスト、その他のOracle HTTP Serverリクエストなど)があり、ポータル・リポジトリへの同時アクセスを必要とする実際の同時リクエストの数はわずかです。

  2. Oracle PortalではOracle Web Cacheとポータル・ファイル・キャッシュを利用してコンテンツがキャッシュされるため、ポータル・リポジトリへ頻繁に接続する必要がなくなり、データベース・セッションの要件が軽減されます。

  3. ポータル・ページのリクエストでは、PPEのpoolSizeパラメータがスロットルのように動作します。これにより、ポータル・ページに対する同時リクエストによってシステムが満杯になる可能性が低下します。

  4. この項では、Oracle Portal内部で実行されるPortalサービスで必要なセッションについてのみ説明しています。同じリポジトリに接続する他のエンティティについても考慮する必要があります。


MaxClients値の構成

一般に、ログインの頻度はOracle Portalへアクセスする頻度よりも低いため、独立したOracle HTTP ServerリスナーでOracleAS Single Sign-Onを構成するほうが適切です。目標は、MaxClientsの設定をポータル・システムのニーズに影響しない程度に合理的な値に調整することです。


関連項目

『Oracle Fusion Middlewareパフォーマンスおよびチューニング・ガイド』

MaxClients設定を構成するには、次の手順を実行します。

  1. OracleAS Single Sign-Onのリスナーの場合、MaxClientsパラメータに設定する近似値を決定し、次の場所にある構成ファイルhttpd.confで、その近似値に応じて値を適切に編集します。

    ORACLE_INSTANCE\config\OHS\ohs1
    

    MaxClientsの設定を調整して、Oracle HTTP ServerリスナーでOracle HTTP Serverのサービスによって処理されるリクエストの数を制御します。これによって、確立されるセッションの最大数が制御されます。

  2. Oracle Portalリスナーの場合は、OracleAS Single Sign-OnのニーズとOracle Portalのニーズに従って、矛盾が発生しないようにMaxClientsパラメータを個別に調整できます。このパラメータは、確立されるセッションの数に直接対応しており、Oracle HTTP Serverリスナーがポータル・リスナーで処理できる最大負荷に相当します。

    次の例は、httpd.confファイルのMaxClientsセクションを表しています。

    # MaxClients: maximum number of server processes allowed to start
    # MaxRequestsPerChild: maximum number of requests a server process serves
    <IfModule prefork.c>
    StartServers         5
    MinSpareServers      5
    MaxSpareServers     10
    MaxClients         150
    MaxRequestsPerChild  0
    AcceptMutex fcntl
    

    注意:

    • OracleAS Single Sign-OnとOracle Portalを個別に調整する場合は、それぞれのリスナーが個別に作成されます。Oracle Portalはポータル・データベース上のリソース(セッション)を制御し、OracleAS Single Sign-OnはOracleAS Single Sign-Onデータベース上のリソースを制御します。

    • データベースで許可されるセッションと接続の数は、Oracle Databaseのinit.oraファイルに設定されている値によって制限されます。詳細は、Oracle Databaseドキュメント・ライブラリを参照してください。


10.5 パフォーマンス・レポートの生成

このリリースには、Oracle Portalのパフォーマンス・レポートを生成できるSQLスクリプトのセットが含まれています。パフォーマンス・レポート用の情報を取得するには、これらのスクリプトを使用する以外の方法はありません。ポータル管理者はこれらのスクリプトを使用して、Oracle Portalのログ・ファイルをデータベース表へロードし、その情報に基づいてレポートを作成できます。このスクリプトは次のディレクトリにあります。

ORACLE_HOME\portal\admin\plsql\perf

scriptsサブディレクトリのREADME.htmlファイルでは、スクリプトを使用してOracle Portalのパフォーマンスを監視する方法を説明しています。

たとえば、収集された統計には、リクエスト全体が完了するまでにかかった時間、そのうちユーザーのプロシージャで経過した時間、リクエストを作成したユーザー、データベース接続が接続プールから取得されたかどうか、および使用されたキャッシュのタイプが示されます。Oracle Portalの以前のリリースで使用していたパフォーマンス・スクリプトでも、これと同様の情報を抽出できます。生成できるパフォーマンス・レポートには、次のものがあります。

10.6 ファイル・システム・キャッシュの調整によるキャッシュのパフォーマンス向上

ファイル・システム・キャッシュを調整すると、キャッシュのパフォーマンスが向上します。ファイル・システム・キャッシュを調整するには、次の2つの方法があります。

これらの方法の詳細は『Oracle Fusion Middleware mod_plsqlユーザーズ・ガイド』のPL/SQLパフォーマンスの最適化に関する項を参照してください。

10.7 Oracle Net Servicesの調整

Portalサービスは、Oracle Net Servicesを利用して、Oracle Metadata RepositoryのOracle Portalスキーマに接続します。Oracle Net Servicesを調整すると、データベース・アクセスのパフォーマンスが向上します。

詳細は、Oracle Technology Network(OTN)(http://www.oracle.com/technology/)のホワイト・ペーパー「Tuning Oracle Net Services to optimize mod_plsql Database access times」を参照してください。このドキュメントに記載されている調整方法は、Oracle Portalでも使用できます。