ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Reports ServicesレポートWeb公開ガイド
11g リリース1(11.1.1)
B61375-01
  ドキュメント・ライブラリへ
ライブラリ
製品リストへ
製品
目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

24.4 Reports Server構成のチューニング

この項では、Reports Serverのパフォーマンスと安定性の向上に役立つヒントを示します。このヒントの対象となる処理は次のとおりです。

次に示すように、負荷の大きな操作では、Reports Serverの様々なパラメータを最適な値にチューニングすることが重要です。

  1. サーバー構成ファイルのengine要素のinitEnginemaxEngineminEngineの各属性の最適値を決定します。

    <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1" maxEngine="2" minEngine="1" engLife="50"
    maxIdle="30" callbackTimeOut="90000">
    

    engine要素の詳細は、第8.2.1.9項「engine」を参照してください。maxEngineの値によって、レポートの実行を求めるユーザー・リクエストに応じる準備ができているプロセスの最大数が設定されます。設定した値が低すぎると、キューがユーザー・リクエストでいっぱいになり、マシンの使用可能容量が十分に利用されなくなります。設定した値が高すぎると、同じホストで実行する必要のある他のアクティビティによりReports Serverへの割当てマシン容量を超える容量が奪われ、その結果オペレーティング・システムでクラッシュが発生する可能性があります。

    エンジン数の簡単な計算例として、実行に平均10秒かかるレポートのセットがあるとします。システムへの入力でリクエストされるレポート数は、毎分6〜12件です。この例では、計算は次のようになります。

    • initEngine = (レポートの実行にかかる平均時間) * (レポート・リクエストの最小入力率) = (10/60) * 6 = 1

    • maxEngine = (レポートの実行にかかる平均時間) * (レポート・リクエストの最大入力率) = (10/60) * 12 = 2

    • minEngine = 負荷の種類に応じ、0からinitEngineの範囲

    これらの計算結果を使用して、サーバー構成ファイルにminEngine=1およびmaxEngine=2を指定できます。これにより、ジョブが受け取られたときは常に、アイドル・エンジンが即座に使用されます。

    スケーラビリティとパフォーマンスのテストでは、2〜4のエンジン数にCPUの数を乗じるというガイドラインを使用してmaxEngineが構成されている場合、スループットの最大値が表示されます。マシンにデュアル・プロセッサが搭載されている場合はmaxEngine=8の最大値を、マシンにクワッド・プロセッサが搭載されている場合はmaxEngine=16の最大値を設定します。

    URLエンジンを使用していない場合は、サーバー構成ファイルでengine要素にID="rwURLEng"というコメントを付けます。

  2. cache要素のcacheSizeプロパティ、queue要素のmaxQueueSize属性およびEXPIRATIONキーワードの最適値を決定します。

    詳細は、第8.2.1.3項「cache」第 8.2.1.21項「queue」および第A.6.6項「EXPIRATION」を参照してください。cacheSizemaxQueueSizeおよびEXPIRATIONの値は互いに関連しており、Reports Serverが効率的に動作するように慎重に設定する必要があります。

    たとえば、EXPIRATION=480と設定してレポートを実行する場合、これはジョブをキャッシュに4時間(480分)入れておくという意味になります。この場合、4時間ですべてのジョブに対応できるように、maxQueueSizeを設定する必要があります。ここで、1分間に10件のジョブが処理されるとすると、計算は次のようになります。

    maxQueueSize = (レポート・リクエストの入力率) * (有効期間) = 480 * 10 = 4800

    cacheSizeも、4800件のジョブに対応できるように、十分高い値に設定する必要があります。各レポートの平均サイズが100Kの場合、計算は次のようになります。

    cacheSize = (maxQueueSize) * (レポートの平均サイズ) = 4800*100/1000 = 480MB

    cache要素のmaxCacheFileNumberプロパティの値を計算する場合も、同様のロジックを使用できます。


    注意:

    maxQueueSizeの最小値には、1000(デフォルト)をお薦めします。maxQueueSizeまたはcacheSizeの値がデフォルト値を大きく下回ると、Reports Serverのパフォーマンスが低下する場合があります。

  3. サーバー構成ファイルのengine要素のengineResponseTimeOut属性を、次のように設定します。

    <engine id="rwEng" class="oracle.reports.engine.EngineImpl" initEngine="1"
    maxEngine="2" minEngine="1" engLife="50" maxIdle="30"
    callbackTimeOut="90000" engineResponseTimeOut="5">
    

    engine要素の詳細は、第8.2.1.9項「engine」を参照してください。

    エンジンが断続的にハングする場合は、engineResponseTimeOutを設定します。この属性によって、Reports Serverではハングするエンジンを検出してクリーンアップが実行できます。Reports Serverでハングが早く検出されるほど、システムの安定性が増します。このため、engineResponseTimeOutは、次のように慎重に設定する必要があります。

    engineResponseTimeOutの値を、実在するレポートのセットのうち1つのレポートの実行にかかる最大時間に設定してください。たとえば、実行に10秒から5分かかるレポートのセットがある場合、engineResponseTimeOut="5"(5分)と設定します。


    注意:

    engineResponseTimeOutに異なる値を指定して、常に別のサーバーでバッチ・レポートを実行することをお薦めします。対話型レポートとバッチ・レポートは、同じサーバーに送信しないでください。

  4. サーバー構成ファイルのconnection要素のmaxConnect属性を、次のように設定します。

    <connection maxConnect="180" idleTimeOut="15">
    

    connection要素の詳細は、第8.2.1.5項「connection」を参照してください。

    maxConnect属性によって、Reports Serverが任意の時点で同時に処理できるリクエストの合計数が制御されます。maxConnectの主な目的は、プログラムやプロセスが暴走したりDoS攻撃を受けることからReports Serverを保護することです。これは常に、同時に処理するクライアントの最大数より大きな値に設定する必要があります。

    たとえば、150のクライアントを同時に処理する場合、maxConnectは150より大きな値に設定します。次のように、10〜20%の安全係数を使用します。

    maxConnect = 150 + 150 * 0.2 = 180

  5. HTTPタイムアウト値を設定します(ASにのみ適用)。

    HTTPタイムアウト値は、システムで実行時間が最長のレポートの実行に必要な時間に基づいて設定してください。実行時間が最長のレポートの実行に20分かかる場合は、HTTPタイムアウトを20分より長く設定します。そうしないと、サーバーでレポートの実行が終了しないうちにHTTPタイムアウト・エラーが表示されます。このパラメータは、ORACLE_INSTANCE/config/OHS/ohs1/httpd.confファイルで設定できます。

    また、Oracle Enterprise Managerを使用してタイムアウト値を設定する方法もあります。