7.10.3 HTTPセッションに関するオブジェクトで利用するメモリサイズ

ここでは,HTTPセッションに関するオブジェクトで利用するメモリサイズの見積もりについて説明します。

注意
なお,HTTPセッションで利用するExplicitヒープの省メモリ化機能を使用する場合,この手順での見積もりはできません。HTTPセッションで利用するExplicitヒープの省メモリ化機能を使用する場合は,「7.10.5 稼働情報による見積もり」で示す手順でメモリサイズを見積もってください。

HTTPセッションに関するオブジェクトで利用するExplicitヒープのメモリサイズは,次の式で見積もります。

HTTPセッションに関するオブジェクトで利用するExplicitヒープのメモリサイズ
= HTTPセッションで利用するExplicitヒープのメモリサイズ
+ Webコンテナ内部で利用するExplicitヒープ領域のメモリサイズ

HTTPセッションで利用するExplicitヒープのメモリサイズは,次の式で見積もります。

HTTPセッションで利用するExplicitヒープのメモリサイズ
= 1セッションで使用するメモリサイズ※1×システムで必要なセッション数

HTTPセッションのために,Webコンテナ内部で利用するExplicitヒープ領域のメモリサイズは,次の式で見積もります。

Webコンテナ内部で利用するExplicitヒープ領域のメモリサイズ
= HTTPセッション管理用オブジェクトのサイズ※2×(Webアプリケーションの数※3 + 2)

注※1
1セッションで使用するメモリサイズは,Explicitメモリブロック1個のサイズに相当します。Explicitメモリブロック1個のサイズは,実際にアプリケーションを動作させて,Explicitヒープの使用状況を確認しながら見積もります。なお,Explicitメモリブロックの最小サイズは,明示管理ヒープの自動配置機能の使用の有無によって異なります。明示管理ヒープの自動配置機能の使用の有無によるExplicitメモリブロックの最小サイズを次に示します。

表7-5 明示管理ヒープの自動配置機能の使用の有無によるExplicitメモリブロックの最小サイズ

項番明示管理ヒープの自動配置機能使用の有無Explicitメモリブロックの最小サイズ
116キロバイト
2×64キロバイト
(凡例)
○:明示管理ヒープの自動配置機能を使用する。
×:明示管理ヒープの自動配置機能を使用しない。
なお,Explicitメモリブロックは64キロバイト単位で拡張されます。そのため,実際は「Explicitメモリブロック1個のサイズ≧1セッションで使用するメモリサイズ」となります。また,明示管理ヒープの自動配置機能を使用する場合は,さらに16キロバイトを加算して見積もってください。
注※2
HTTPセッション管理用オブジェクトのサイズは表7-5に示すExplicitメモリブロックの最小サイズです。
注※3
「Webアプリケーションの数」は,開始しているWebアプリケーションの個数を表します。
<この項の構成>
(1) 見積もり手順
(2) 見積もり例

(1) 見積もり手順

見積もり手順を示します。

  1. リダイレクタとの通信用オブジェクトをExplicitヒープに配置しないようにJ2EEサーバの設定を変更します。
    J2EEサーバの設定は,簡易構築定義ファイルの論理J2EEサーバのJ2EEサーバ用ユーザプロパティを設定するパラメタに設定してください。設定値を次に示します。
    param-name指定値
    ejbserver.server.eheap.ajp13.enabled
    param-value指定値
    false
  2. HTTPセッションを作成するアプリケーションを開始して,セッション破棄(ログアウトなど)の直前まで処理を実行します。
  3. javagcコマンドを実行して,フルガーベージコレクションを発生させます。
  4. 明示管理ヒープ機能のイベントログに出力されたフルガーベージコレクション実行後の情報を確認します。
    明示管理ヒープ機能のイベントログは,JavaVMの起動オプションである-XX:HitachiExplicitMemoryJavaLogオプションで指定したファイルまたはディレクトリに出力されます。デフォルトの出力先は,次のとおりです。
    Windowsの場合
    <Cosminexusインストールディレクトリ>¥CC¥server¥public¥ejb¥<J2EEサーバ名>¥logs¥ehjavalog[n].log
    UNIXの場合
    /opt/Cosminexus/CC/server/public/ejb/<J2EEサーバ名>/logs/ehjavalog[n].log
    ここでは,一連の業務で必要なExplicitヒープの利用サイズとExplicitメモリブロックの個数を確認します。
    メモリサイズ算出時には,イベントログの出力項目のうち,次の項目を確認します。
    • Explicitヒープの確保済みサイズ
    • Explicitメモリブロックの個数
    明示管理ヒープ機能のイベントログの内容については,マニュアル「Cosminexus アプリケーションサーバ 機能解説 保守/移行/互換編」の「5.11 明示管理ヒープ機能のイベントログの内容」を参照してください。これらの項目は,ガーベージコレクション発生時に出力される,Explicitヒープ利用状況に含まれます。
  5. 手順4.で確認した内容を基に,Explicitメモリブロック1個のサイズを算出します。
    次の式で算出できます。

    Explicitメモリブロック1個のサイズ
    =Explicitヒープの確保済みサイズ/Explicitメモリブロックの個数

    Explicitメモリブロック1個のサイズは,1セッションで使用するメモリサイズに相当します。
  6. 手順5.で算出した値に,業務で必要になるセッション数を掛け,HTTPセッションで使用するExplicitヒープの合計メモリサイズを算出します。

(2) 見積もり例

ここでは,明示管理ヒープ機能のイベントログの出力例を基に,見積もり例を示します。明示管理ヒープ機能のイベントログの出力例を次に示します。

明示管理ヒープ機能のイベントログの出力例

[ENS]<Thu Oct 21 14:55:50 2007>[EH: 12672K->12800K(12800K/65536K)][E/F/D: 200/0/0][cause:GC][CF: 0]

この例では,Explicitヒープの確保済みサイズは12,800キロバイト,Explicitメモリブロックの個数は200個と出力されています。この値を「(1)見積もり手順」の手順5.で示した式に当てはめると,次のようになります。

Explicitメモリブロックサイズの見積もり例

Explicitメモリブロック1個のサイズ
=Explicitヒープの確保済みサイズ(12,800キロバイト)/Explicitメモリブロックの個数(200)
=64キロバイト

これに業務で想定するセッション数を掛けた値が,HTTPセッションで使用するExplicitヒープの合計メモリサイズになります。