6.9.1 性能チューニング

ポータルの性能チューニングとして,ポータル画面に表示するポートレットのコンテンツを並列に取得するかの指定と,並列表示で使用するスレッド数を設定,コンテンツ取得時のエイリアスを設定,およびWebコンテナの動作を設定できます。ポートレット並列表示と使用時のスレッド数の設定は,Portal Managerを使用します。

<この項の構成>
(1) ポートレット並列表示
(2) ポートレット並列表示使用時のスレッド数
(3) 静的コンテンツ取得時のエイリアス設定
(4) Webコンテナの動作設定

(1) ポートレット並列表示

ポートレット並列表示は,コンテンツ取得先のサーバ負荷のばらつきや,サーバの無応答,およびポータル画面上のポートレットの配置や種別に関係なく,ポータル画面を並列に表示する機能です。ポートレット並列表示を使用した場合,各ポートレットのコンテンツの情報を並行に取得します。並列表示を使用しない場合は,各ポートレットのコンテンツを順に取得していきます。

ポートレット並列表示使用時と未使用時のコンテンツ取得処理を次の図に示します。

図6-12 ポートレット並列表示使用時・未使用時のコンテンツ取得処理

[図データ]

(2) ポートレット並列表示使用時のスレッド数

ポートレット並列表示では,コンテンツの情報を並列に取得するためにスレッドを使用します。処理に使用するスレッドは,スレッドプールで管理されます。使用するスレッド数の設定によっては,スレッドプールに空きスレッドがないため,コンテンツの情報取得に時間が掛かる場合があります。

効率的にコンテンツを取得するために必要な最大スレッド数の算出方法を次に示します。

最大スレッド数の算出方法

最大スレッド数≧{{1画面当たりの平均表示ポートレット個数}×{ポータルの1画面当たりの平均ポートレットコンテンツ取得時間内に発生するポータルへの最大同時接続数}+1}×安全係数

注※ 安全係数は1.2としています。ただし,性能を重視する場合,利用者数が予測できない場合,および利用者数が増加傾向にある場合は,安全係数を1.2より大きい値に設定してください。
最大スレッド数の算出例
次の条件の場合に必要な最大スレッド数を例として示します。
  • 画面当たりのポートレット個数:平均3個
    ただし,[ログイン]画面,[パスワード変更]画面,レイアウトカスタマイズ画面,ポートレットの最大化・最小化画面,および編集画面は0個としてカウントしてください。
  • ポートレットコンテンツの取得時間:平均2秒
  • 2秒間当たりの利用者数:平均100人

(3×100+1)×1.2=362スレッド

なお,初期スレッド数は最大スレッド数と同じかそれ以下に設定してください。スレッドが確保できなかった場合,エラーメッセージを出力し,初期スレッド数および最大スレッド数をデフォルト値に戻します。

(3) 静的コンテンツ取得時のエイリアス設定

HTMLファイルや画像ファイルなどの静的なコンテンツは,アプリケーションサーバを経由して取得するとレスポンスタイムが低下します。これを回避するために,静的コンテンツをWebサーバから直接取得するバイパスを設定する方法があります。バイパスの設定手順を次に示します。

  1. 静的コンテンツを任意のディレクトリにコピーします。
    xcopyコマンドを使用して{PROJECT_HOME}から静的コンテンツだけを抜き出し,任意のディレクトリにディレクトリ階層ごとコピーします。コピーする静的コンテンツのファイルの拡張子は,「gif」「png」「html」「htm」「js」「css」です。
    実行するコマンドを次に示します。なお,インストールディレクトリに合わせてコマンドを変更して実行してください。

    xcopy {PROJECT_HOME}¥*.gif {任意のディレクトリ} /S /Q /I /K /Y /R
    xcopy {PROJECT_HOME}¥*.png {任意のディレクトリ} /S /Q /I /K /Y /R
    xcopy {PROJECT_HOME}¥*.html {任意のディレクトリ} /S /Q /I /K /Y /R
    xcopy {PROJECT_HOME}¥*.htm {任意のディレクトリ} /S /Q /I /K /Y /R
    xcopy {PROJECT_HOME}¥*.js {任意のディレクトリ} /S /Q /I /K /Y /R
    xcopy {PROJECT_HOME}¥*.css {任意のディレクトリ} /S /Q /I /K /Y /R

    コマンドの実行例を次に示します。

    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.gif D:¥work¥public /S /Q /I /K /Y /R
    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.png D:¥work¥public /S /Q /I /K /Y /R
    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.html D:¥work¥public /S /Q /I /K /Y /R
    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.htm D:¥work¥public /S /Q /I /K /Y /R
    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.js D:¥work¥public /S /Q /I /K /Y /R
    xcopy C:¥Program Files¥Hitachi¥Cosminexus¥CC¥web¥containers¥MyServer¥webapps¥Portal¥*.css D:¥work¥public /S /Q /I /K /Y /R

  2. 静的コンテンツに対応する仮想ディレクトリを作成します。
    エイリアスにコンテキストルート名,接続先のディレクトリに静的コンテンツをコピーしたディレクトリを指定した,仮想ディレクトリを作成します。
    コンテキストルートが/Portal,WebサーバがHitachi Web Serverの場合,Hitachi Web Server用コンフィグファイル(httpsd.conf)は次のように設定します。

    Alias /Portal "D:/work/public"

  3. リダイレクタの設定で,次のURLパターンをワーカーに振り分けるように設定します。

    /{コンテキストルート名}/portal/*
    /{コンテキストルート名}/*.jsp
    /{コンテキストルート名}/js/csdc.js
    /{コンテキストルート名}/WEB-INF/*

    コンテキストルートがPortal,ワーカー名がworker1,WebサーバがHitachi Web Serverの場合,Hitachi Web Server用リダイレクタ動作定義ファイル(mod_jk.conf)は次のように設定します。

    JkMount /Portal/portal/* worker1
    JkMount /Portal/*.jsp worker1
    JkMount /Portal/js/csdc.js worker1
    JkMount /Portal/WEB-INF/* worker1

(4) Webコンテナの動作設定

uCosminexus Portal Frameworkは,Webコンテナ上で動作しています。Webコンテナの動作設定で性能チューニングを行うことができます。Webコンテナで設定可能な主な内容を次に示します。

Webコンテナの動作設定の詳細については,「Cosminexus システム構築ガイド」,または「Cosminexus アプリケーションサーバ V8 機能解説 基本・開発編(コンテナ共通機能)」を参照してください。