7.11.2 HTTPセッションに関するオブジェクトで利用するメモリサイズ
ここでは,HTTPセッションに関するオブジェクトで利用するメモリサイズの見積もりについて説明します。
- 注意事項
-
なお,HTTPセッションで利用するExplicitヒープの省メモリ化機能を使用する場合,この手順での見積もりはできません。HTTPセッションで利用するExplicitヒープの省メモリ化機能を使用する場合は,「7.11.4 稼働情報による見積もり」で示す手順でメモリサイズを見積もってください。
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‒4 明示管理ヒープ機能の自動配置機能の使用の有無によるExplicitメモリブロックの最小サイズ 項番
明示管理ヒープ機能の自動配置機能使用の有無
Explicitメモリブロックの最小サイズ
1
○
16キロバイト
2
×
64キロバイト
- (凡例)
-
○:明示管理ヒープ機能の自動配置機能を使用する。
×:明示管理ヒープ機能の自動配置機能を使用しない。
なお,Explicitメモリブロックは64キロバイト単位で拡張されます。そのため,実際は「Explicitメモリブロック1個のサイズ≧1セッションで使用するメモリサイズ」となります。また,明示管理ヒープ機能の自動配置機能を使用する場合は,さらに16キロバイトを加算して見積もってください。
- 注※2
-
HTTPセッション管理用オブジェクトのサイズは表7-5に示すExplicitメモリブロックの最小サイズです。
- 注※3
-
「Webアプリケーションの数」は,開始しているWebアプリケーションの個数を表します。
- 〈この項の構成〉
(1) 見積もり手順
見積もり手順を示します。
-
HTTPセッションを作成するアプリケーションを開始して,セッション破棄(ログアウトなど)の直前まで処理を実行します。
-
javagcコマンドを実行して,FullGCを発生させます。
-
明示管理ヒープ機能のイベントログに出力されたFullGC実行後の情報を確認します。
明示管理ヒープ機能のイベントログは,JavaVMの起動オプションである-XX:HitachiExplicitMemoryJavaLogオプションで指定したファイルまたはディレクトリに出力されます。デフォルトの出力先は,次のとおりです。
- Windowsの場合
-
<Application Serverのインストールディレクトリ>\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メモリブロックの個数
明示管理ヒープ機能のイベントログの内容については,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「5.11 明示管理ヒープ機能のイベントログ」を参照してください。これらの項目は,GC発生時に出力される,Explicitヒープ利用状況に含まれます。
-
手順4.で確認した内容を基に,Explicitメモリブロック1個のサイズを算出します。
次の式で算出できます。
Explicitメモリブロック1個のサイズ =Explicitヒープの確保済みサイズ/Explicitメモリブロックの個数
Explicitメモリブロック1個のサイズは,1セッションで使用するメモリサイズに相当します。
-
手順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個と出力されています。この値を「7.11.2(1) 見積もり手順」の手順5.で示した式に当てはめると,次のようになります。
- Explicitメモリブロックサイズの見積もり例
Explicitメモリブロック1個のサイズ =Explicitヒープの確保済みサイズ(12,800キロバイト)/Explicitメモリブロックの個数(200) =64キロバイト
これに業務で想定するセッション数を掛けた値が,HTTPセッションで使用するExplicitヒープの合計メモリサイズになります。