Interstage Application Server チューニングガイド
目次 索引 前ページ次ページ

第1章 必要資源> 1.2 メモリ容量

1.2.1 Application Serverのサーバ機能を使用する場合

 本ソフトウェアを以下の運用で動作させるときに使用するメモリ容量を示します。

項番

メモリ所要量
(単位:Mバイト)

運用内容

1

2.4+(2.6×n)

Webサーバ(Interstage HTTP Server)
HTMLファイルを複数クライアント同時アクセス時。
n: クライアントからのHTMLファイル同時アクセス数

2

25.2  (注1)

Webサーバ(InfoProvider Pro)
HTMLファイルを40クライアント同時アクセス時

3

58.4  (注2)

Webサーバ(InfoProvider Pro)
実行ファイルサイズ10Kバイト程度(メモリ所要量0.8Mバイト程度)のCGIを40クライアント同時アクセス時

4

2.4

COBOL Webサブルーチン使用時

5

8.0 以上

CORBAサービス運用時

6

8.0 以上

CORBAサービスのネーミングサービス運用時

7

45.6 以上 (注4)

CORBAサービスのインタフェースリポジトリ運用時

8

8.0 以上 (注5)

イベントサービス

9

ユニット数 ×100 + イベントサービスのユニット定義ファイルのshmmaxの合計 (注5)

ノーティフィケーションサービスの不揮発チャネル運用時

10

1.5 以上

Portable-ORB

11

50.0 以上 (注6)

コンポーネントトランザクションサービスの起動

12

4.0 以上 (注7)

コンポーネントトランザクションサービス
ワークユニットの起動(1つのワークユニットでプロセス多重度を1とした場合)

13

8.0 以上 (注8)

データべース連携サービスの起動(OTSシステムとリソース管理プログラムを起動するマシン上)
(最大トランザクション数512の場合)

14

4.0 以上 (注8)

データベース連携サービスの起動(リソース管理プログラムだけの起動するマシン上)

15

2.0

ロードバランス使用時

16

282.7以上 (注9)

IJServerワークユニットで“WebアプリケーションとEJBアプリケーションを運用”で運用時、サンプルのショッピングカートで40クライアント同時アクセス時

17

261.7以上 (注9)

IJServerワークユニットで“Webアプリケーションのみ運用”で運用時、サンプルの数当てゲームで40クライアント同時アクセス時

18

114.7 以上 (注10)

InfoProvider Pro、JDK1.3の富士通製VMを使用して旧バージョンServletサービスの運用時、サンプルHelloServletを40クライアント同時アクセス時。

19

70.0 以上 (注11)

旧バージョンServletサービスでセションリカバリ機能の運用時、各セションを100生成し、セションに100KBのデータを保持した場合。

20

  • BMPの場合、16.4以上
  • CMP1.1の場合、16.4以上
  • CMP2.0の場合、15.2以上
  • MDBの場合、17.4以上
    (注12)

IJServerワークユニットで“EJBアプリケーションのみ運用”で運用時 (注13)

21

24以上

Interstage運用操作ツール使用時。

22

7.0以上

セション情報管理機能を使用する場合

23

2.0×n

負荷計測エージェント機能のInterstage連携を行う場合。
n: システム数

24

64以上 (注14)

SOAPサービス運用時

25

16以上

CORBA/SOAPクライアントゲートウェイ運用時

26

16以上

CORBA/SOAPサーバゲートウェイ運用時

27

64以上

J2EE Deploymentツール運用時

28

150以上 (注15)

ebXML Message Serviceの運用時

29

150以上 (注16)

UDDIレジストリサービス運用時

30

23.3以上(注17)

InfoDirectoryサーバのデフォルトプロセスを使用する場合

31

1.6 以上

InfoDirectoryサーバにWebプロセスを追加して運用する場合
(InfoDirectoryサーバのデフォルトプロセスに追加で必要となる値です)

32

8.7 以上

InfoDirectoryサーバに同期プロセスを追加して運用する場合
(InfoDirectoryサーバのデフォルトプロセスに追加で必要となる値です)

33

2.0 以上

LDAPコマンドを使用する場合

34

26.3 以上(注18)

InfoDirectory管理ツールエージェントのみで全機能を使用する場合
(管理ツールエージェントと管理ツールクライアントを同一マシンで使用する場合は、2つの値を合計した値が必要です。)

35

121.9 以上(注18)

InfoDirectory管理ツールクライアントのみで全機能を使用する場合

36

1以上(注19)

Interstage シングル・サインオンの業務サーバ機能

37

1以上

Interstage シングル・サインオンの認証サーバ機能

38

1以上(注20)

Interstage シングル・サインオンのリポジトリサーバ機能

39

150.0以上 (注21)

Smart Repositoryをスタンドアロンで運用、またはスレーブで運用する場合

40

50.0以上

Smart Repositoryをマスタで運用する場合
(前項のSmart Repositoryをスタンドアロンで運用する場合に加えて必要となる値です。)

41

2.0以上

Smart Repositoryのエントリ管理コマンドを使用する場合

42

60.0以上

Smart Repositoryのエントリ管理ツールを使用する場合

43

50.0以上

Interstage JMXサービスを使用する場合

注1)
 Webサーバ(InfoProvider Pro)のメモリ所要量の算出方法は以下のとおりです。
 メモリ所要量 = 21.8Mバイト+0.09Mバイト × 同時アクセス最大数(concurrency)
注2)
 Webサーバ(InfoProvider Pro)のメモリ所要量の算出方法は以下のとおりです。
 メモリ所要量 = 21.8Mバイト+ (0.115Mバイト+CGIのメモリ所要量) * 同時アクセス最大数(concurrency)+CGIの実行サイズ
注4)
 インタフェースリポジトリは、起動時にデータベースに格納されているオブジェクトをメモリ上に展開します。インタフェースリポジトリを使用する場合のメモリ容量について説明します。
固定使用領域
・45.6Mバイト
可変使用領域
 インタフェースリポジトリでは、オブジェクトごとにメモリが使用されます。
 以下の計算式より、オブジェクトごとの使用メモリを算出することができます。

項番

IDL定義

計算式(単位:バイト)

1

モジュール宣言

3902+a×(2×b+2)

2

インタフェース宣言

3902+a×(2×b+2)+a×b×c

3

オペレーション宣言

3934+a×(3×b+2+f)+a×b×g+h×(12+a+a×b)

4

属性宣言

3910+a×(3×b+2)

5

定数宣言

7704+a×(3×b+3)+d

6

例外宣言

3836+a×(2×b+e+1)+e×(78+a+a×b)

7

文字列型宣言
(ワイド文字列を含む)

3882+a×(b+1)

8

列挙型宣言

3918+a×(2×b+k+2)

9

シーケンス型宣言

3882+a×(2×b+1)

10

構造体宣言

3766+a×(2×b+i+1)+×(78+a+a×b)

11

共用体宣言

3840+a×(3×b+j+1)+j*(3880+2×a+a×b)

12

固定小数点型宣言

3882+a×(b+1)

13

配列宣言

3886+a×(2×b+1)

記号

項目

意味

a

識別子長

対象オブジェクトの識別子の長さ

b

階層数

対象オブジェクトの存在する階層

c

継承数

インタフェース宣言が継承するインタフェース数

d

定数値長

定数宣言の値の長さ

e

例外構造体メンバ数

例外宣言の構造体のメンバ数

f

コンテキスト数

オペレーション宣言でのコンテキスト数

g

例外数

オペレーション宣言での例外数

h

パラメタ数

オペレーション宣言でのパラメタ数

i

構造体メンバ数

構造体宣言でのメンバ数

j

共用体メンバ数

共用体宣言でのメンバ数

k

列挙型メンバ数

列挙型宣言でのメンバ数

注5)
 essetcnfおよびessetcnfchnlコマンド実行時に、イベントチャネルに接続できるコンシューマ数・サプライヤ数の初期値を省略値から拡張する場合、以下の式で見積もったメモリ所要量を加算してください。
(a:essetcnfコマンドの-coninitオプションで指定するコンシューマ数の拡張数)
(b:essetcnfコマンドの-supinitオプションで指定するサプライヤ数の拡張数)
(c:イベントチャネルのグループ数)
(d:essetcnfコマンドの-dchmaxオプションで指定するイベントチャネルの最大起動数)
(e:essetcnfchnlコマンドで設定するイベントチャネルのグループの数)
(f:essetcnfchnlコマンドの-coninitオプションで指定するコンシューマ数の拡張数)
(g:essetcnfchnlコマンドの-supinitオプションで指定するサプライヤ数の拡張数)
注6)
 ユーザ認証機能を使用する場合は、0.9Mバイト加算してください。
 アクセス制御を使用する場合は、0.6Mバイト加算してください。
注7)
 コンポーネントトランザクションサービスのメモリ所要量の算出方法は以下のとおりです。
 メモリ所要量 = 4Mバイト × ワークユニット配下のプロセス数の総和
注8)
 データベース連携サービスのメモリ所要量の算出方式は以下のとおりです。
 メモリ所要量 = 4Mバイト
   + 2Mバイト(OTSシステムを起動するマシン上)
   + 0.004Mバイト × 最大トランザクション数(OTSシステムを起動するマシン上)
注9)
 Webサーバコネクタ:
1.9*k(Mバイト、Interstage HTTP Server使用の場合)
(k:Servletサービスへの同時アクセス数。)

 IJServerワークユニット:(プロセス多重度1当り)

“WebアプリケーションとEJBアプリケーションを運用”の場合
  121+(2.1*k)+(0.7*w)+(P1+P2+P3+..+Pn) (Mバイト)
“Webアプリケーションのみ運用”の場合
  84+(2.5*k)+(0.7*w)+(P1+P2+P3+..+Pn) (Mバイト)
  (k:サーブレット・コンテナへの同時アクセス数)
  (w:Webアプリケーションの数)
  (Pn:各サーブレットまたはJSPの実行サイズ。上記表では1Mバイトとして計算)

 ServletはJavaVM上で動作するため、実際のメモリ使用量(ヒープ領域を含む)は、以下に示す要因により異なります。

 そのため正確なメモリ使用量(ヒープ領域、Perm領域)は次のようにして実測することにより見積もることを推奨します。

注10)
 旧バージョンServletサービス運用時、Servletサービスのメモリ使用量は、監視プロセス、サーブレット・ゲートウェイおよびサーブレット・コンテナのメモリ使用量の合計となります。
 監視プロセス:6.0 (Mバイト)
 サーブレット・ゲートウェイ:0.2×k(Mバイト,InfoProvider Pro使用の場合)
             :0.4×k(Mバイト,Interstage HTTP Server使用の場合)
             (k:Servletサービスへの同時アクセス数)

 サーブレット・コンテナ:(0.5×k)+80.0+(0.5×w)+(P1+P2+P3+..+Pn) (Mバイト)

 (サンプルの環境定義ファイルでJDK1.3 富士通製VMを使用した場合の例)
 (k:サーブレット・コンテナへの同時アクセス数)
 (Pn:各サーブレットまたはJSPの実行サイズ。サンプルHelloServletの場合、0.2Mバイト程使用)
 (w:Webアプリケーションの数)

 サーブレット・コンテナはJavaVM上で動作するため、実際のメモリ使用量(ヒープ領域を含む)は、以下に示す要因により異なります。

 ・newするクラス型
 ・newするインスタンスの個数
 ・インスタンスのライフサイクル
 ・GCの動作状況
 ・Servletサービスの各種定義
 ・使用するJavaVM

 そのため正確なメモリ使用量(ヒープ領域)は次のようにして実測することにより見積もることを推奨します。

(1) JavaVMが使用するヒープ領域の最大値(JServlet環境定義ファイルの[containername].bin.parametersに"-Xmx"で指定する値)
 旧バージョンServletサービスを、本番運用のピーク時と同一条件で動作させます。JavaVMが使用するヒープ領域が不足すると、ログにOutOfMemoryErrorが出力されますので、ヒープ領域の最大値を増やし最適な値としてください。
 求めたヒープ領域の最大値をそのまま本番運用時の値として利用します。

(2) JavaVMのメモリ使用量

 (1)でヒープ領域の最大値を求める際、同時にJavaVMが使用するメモリ使用量も実測し見積もってください。

注11)
 詳細は以下の式より、見積もってください。
 30 + s × k * 4 (Mバイト)
  (s:セション数)
  (k:セションのデータ量 )
注12)
 EJBサービスのサンプルアプリケーションのメモリ所要量は以下のとおりです。
                               (単位:Mバイト)

Beanの種類

起動時

クライアント実行時

sample1 - BMP, Session

35.3

37.6

sample1 - CMP, Session

35.5

38.2

sample4 - MDB, Entity, Session

38.2

39.2

sample4 - CMP2.0, Session

36.9

38.9

注13)
 以下を参考に、EJBサービス運用時のメモリ所要量を見積もってください。
 EJBアプリケーション運用時、JavaVMが使用するメモリ量(初期値、最大値)および1プロセスで必要な全メモリ量は、以下に示す要因により異なります。

 いずれのメモリ量も簡単には算出できないので、次のようにして実測することにより見積もってください。

(1) JavaVMが使用するメモリ量の初期値(javaコマンドの-Xmsオプションで指定する値)

 EJBアプリケーションを、本番運用の通常時(ピーク時ではない)と同一条件で動作させます。JavaVMが使用するメモリ量(最大値)が不足すると、IJServer21033またはEJB1033メッセージが出力されますので、試行錯誤によりメモリ量(最大値)を最適な値としてください。このようにして求めたメモリ量(最大値)を本番運用時のメモリ量(初期値)として利用します。メモリ量(初期値)の省略値は以下に示すとおりです。

  JDK/JRE1.3およびJDK/JRE1.4 : 2Mバイト

(2) JavaVMが使用するメモリ量の最大値(javaコマンドの-Xmxオプションで指定する値)

 EJBアプリケーションを、本番運用のピーク時と同一条件で動作させます。JavaVMが使用するメモリ量(最大値)が不足すると、IJServer21033またはEJB1033メッセージが出力されますので、試行錯誤によりメモリ量(最大値)を最適な値としてください。このようにして求めたメモリ量(最大値)をそのまま本番運用時のメモリ量(最大値)として利用します。メモリ量(最大値)の省略値は以下に示すとおりです。

  JDK/JRE1.3およびJDK/JRE1.4 : 64Mバイト

(3) 1プロセスで必要な全メモリ量

 (1)と(2)でJavaVMが使用するメモリ量を見積り時、同時に1プロセスで必要な全メモリ量も実測して見積もってください。

注14)
 詳細は以下の式より、見積もってください。
  (64×c)+(s+k)×(P+0.1) (Mバイト)
   (c:サーブレット・コンテナの起動数。)
   (s:SOAPサービスへのセション数。)
   (k:SOAPサービスへの同時アクセス数。)
   (P:SOAPサーバアプリケーションひとつあたりの実行サイズ。)
  CORBA/SOAPサーバゲートウェイ運用時には、CORBA/SOAPサーバゲートウェイのメモリ容量を加算してください。
注15)
 詳細は以下の式より、見積もってください。
   150 + (1.5 + 20×p)×c (Mバイト)
   (c:ebXML Message Serviceで使用するイベントチャネルの数(送信/受信))
   (p:送信するペイロードの最大長)
注16)
 詳細は以下の式より、見積もってください。
   150 + (8×k) (Mバイト)
   (k:UDDIレジストリサービスへの同時アクセス数)
注17)
 エントリ数が 1000件/1万件/10万件の場合、InfoDirectoryディレクトリサービスの運用に、最低限必要なメモリ容量を以下に示します。

エントリ数(エントリ)

メモリ容量 (MB)

1000

26.4以上

1万

29.9以上

10万

45.4以上

注18)
 エントリ管理にて多数のエントリを表示するには、多くのメモリ容量が必要となります。
 エントリ表示件数が1000件以上の場合は、以下の手順にしたがい必要なメモリ容量を算出し、MXが64MB以上である場合は、PKI_MSとPKI_MX環境変数をチューニングしてください。

 InfoDirectory管理ツールの最小ヒープメモリサイズを指定します。この数値はInfoDirectory管理ツールの初期起動時に確保するメモリを設定するものです。
 この値が小さいと、JavaVMでのGC(ガーベッジ・コレクション)が頻繁に発生し、InfoDirectory管理ツールのパフォーマンスが低下します。逆にこの値が大きすぎると、1回のGCで時間がかかりすぎるため、これもパフォーマンスが低下します。実メモリとの観点でPKI_MSの値は、約1/4程度を上限値としてください。
 なお、この環境変数はインストーラで自動設定されません(※)が、デフォルトで2MBが適用されています。
 「 MS < 1/4×(実メモリ) 」
  MS : PKI_MS推奨値(MB)

 InfoDirectory管理ツールの最大ヒープメモリサイズを指定します。この数値は管理ツールでエントリの表示数に比例して消費されるメモリの上限値を拡張するものです。
 このメモリサイズを拡大することで、メモリ不足関連のエラーの回避やパフォーマンスの低下をある程度防ぐことはできますが、その他の回避策としてディレクトリのトップエントリを変更することでメモリ消費を抑えることができます。
 この数値が大きすぎると1回のGC実行時間が長期化したり、また、利用可能な実メモリを超えるとページングが発生し、パフォーマンスが低下します。実メモリとの観点でPKI_MXの値は約1/2程度を上限値としてください。ただし、この範囲でも他のアプリケーションの動作に影響を与える場合がありますので、メモリサイズの拡大は最小限にしてください。
 なお、この環境変数はインストーラで自動設定されません(※)が、デフォルトで64MBが適用されています。
 「 MX = (0.00240 + B) × E + 36 < 1/2×実メモリ) 」
  MX : PKI_MX推奨値(MB)
  0.00240: inetOrgPersonによる1エントリのメモリ消費量(MB)
  B : エントリに付加される証明書や顔写真などバイナリデータ(MB)
  E : 同時に展開するエントリ数
  36 : InfoDirectory管理ツール初期起動時に必要な固定値(MB)

※ 環境変数
 ユーザ環境変数に、上記環境変数を設定してください。また、アンインストールする場合は削除してください。

注19)
 詳細は以下の式より、見積もってください。
 1048576バイト+(2400バイト+(ロール数+ロールセット数+(ロールセット数×ロール数))×2048バイト以上)×パス定義数
  ロール数 : SSOリポジトリに定義した保護リソースの、チューニングを行う業務サーバのパス定義に設定したロールの総数
  ロールセット数 : SSOリポジトリに定義した保護リソースの、チューニングを行う業務サーバのパス定義に設定したロールセットの総数
  パス定義数 :SSOリポジトリに定義した保護リソースの、チューニングを行う業務サーバのパス定義の総数
注20)
 詳細は以下の式より、見積もってください。
 ((ロール数+ロールセット数+ロールセット数×ロール数)×2048バイト以上)×2

  ロール数 : SSOリポジトリに定義したロールの総数

  ロールセット数 : SSOリポジトリに定義したロールセットの総数

注21)
 リポジトリを複数作成して運用する場合は、以下の式よりメモリ所要量を算出してください。
 メモリ所要量 = リポジトリ数 × 150.0(Mバイト)

目次 索引 前ページ次ページ

Copyright 2005 FUJITSU LIMITED