第7章 JDK/JREのチューニング
A.5 irconfig
ネーミングサービス
ネーミングサービスにネーミングコンテキストを多数作成する場合に必要となるシステム資源を、以下に示します。
パラメタ 種類 必要数
(注) 加算値 ネーミングコンテキスト数 + 16 以上 注)
プロセス数あたりのオープン可能なファイル数です。該当するパラメタはありません。
bash(Linux)または、ボーンシェルの場合はulimitコマンドを、Cシェルの場合はlimitコマンドを使用して、ネーミングサービスのプロ セスが必要とするファイルをオープンできるだけの値を設定してください。コマンドの詳細については、OSのドキュメントを参照して ください。
■アプリケーションで使用するスレッド数・プロセス数
CORBAサービスでアプリケーションを実行する場合、アプリケーションから生成されるプロセス数・スレッド数が多くなる場合には、シ ステムパラメタを変更する必要があります。
アプリケーションをマルチスレッドで作成している場合に、生成されるスレッド数の目安を以下に示します。
分類 スレッド数
CORBAサービス 25個 + クライアントアプリケーションとの接続数
+ CORBAアプリケーションプロセス数
サーバアプリケーション 1プロセスにつき (6個 + スレッド多重度数) クライアントアプリケーション 1プロセスにつき8個
システムパラメタで、変更が必要となるものを以下に示します。
パラメタ 内容
kernel.threads-max システム全体で生成できるプロセス数とスレッド数の合計
システムパラメタ以外で、考慮するパラメタを以下に示します。
パラメタ 内容
(注1) プロセスの最大スタックサイズ
(注2) 1人のユーザが使用できる最大のプロセス数
注1)
該当するパラメタはありません。
bashまたはボーンシェルの場合はulimitコマンドを、Cシェルの場合はlimitコマンドを使用して設定してください。この値にスレッド数 を掛けた値が、プロセスのスタック領域として使用されます。1つのプロセスで使用可能なメモリを超過してスレッドは生成できない ため、1つのプロセスが生成できるスレッド数は限界があります。
CORBAサーバアプリケーションおよびEJBアプリケーションのリクエスト処理多重度は“スレッド多重度×プロセス多重度”で計算
されます。1つのプロセスで使用可能なメモリサイズによってスレッド多重度を上げることができない場合は、プロセス多重度を上げ ることを検討してください。CORBAサーバアプリケーションのスレッド多重度・プロセス多重度については“リファレンスマニュアル (コマンド編)”の“OD_impl_inst”に記載されているproc_conc_max、thr_conc_init、thr_conc_maximumを参照してください。EJBア プリケーションのスレッド多重度については“EJBコンテナのチューニング”に記載されている“5.4.1 同時処理数”を参照してくださ い。
注2)
該当するパラメタはありません。
bashまたはボーンシェルの場合はulimitコマンドを、Cシェルの場合はlimitコマンドを使用して設定してください。ユーザが生成する プロセス数とスレッド数の合計値以上の値に設定してください。
■ファイルディスクリプタ数
CORBAサービスで多数のアプリケーションを動作させ(多端末接続時など)、使用するファイルディスクリプタ数がシステムのデフォル ト値を超える場合は、システムパラメタにその値を設定してください。
システムパラメタで、変更が必要となるものを以下に示します。
パラメタ 内容
fs.file-max システム全体のファイルディスクリプタの上限値。
システムパラメタ以外で、考慮するパラメタを以下に示します。
パラメタ 内容
nofile (注1) 各ユーザのオープン可能なファイルディスクリプタの上限値
注1)
/etc/security/limits.conf ファイルを編集します。limits.conf ファイルの詳細については、OSのドキュメントを参照してください。
3.1.3 データベース連携サービスのシステム環境の設定
データベース連携サービスの動作時には、利用するシステム形態によりシステム資源を拡張する必要があります。ここでは、以下に ついて、利用するシステム形態ごとに説明します。
・ システムパラメタ
- OTSシステムのみが動作する場合
- リソース管理プログラムのみが動作する場合
- OTSシステムとリソース管理プログラムの両方が動作する場合
■システムパラメタ
データベース連携サービスが使用する共用メモリ、セマフォ、メッセージキューのシステムパラメタのチューニングについて、システム 形態ごとに説明します。
システムパラメタの変更方法や、各パラメタの意味については、“■システムパラメタについて”を参照してください。
OTSシステムのみが動作する場合
OTSシステムのみが動作する場合に必要となるシステム資源について、以下に示します。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 17,830,204 (注)
kernel.shmmni 加算値 12
注)
以下のデフォルト環境で算出した値です。
- データベース連携サービスの環境定義のconfigファイル OTS_TRACE_SIZE = 4096
RECOVERY_TRACE_SIZE = 4096 OBSERVE_TRACE_SIZE = 4096
- データベース連携サービスの環境定義のセットアップ情報ファイル TRANMAX = 100
PARTICIPATE = 4
定義値を変更している場合、以下の計算式で求めてください。
必要数 =
(OTS_TRACE_SIZE + RECOVERY_TRACE_SIZE + OBSERVE_TRACE_SIZE) ×1,024 + PARTICIPATE × TRANMAX × 2,560 + TRANMAX × 284 + 4,399,692
セマフォ
パラメタ 種類 必要数
para1 設定値 12 以上
para2 加算値 24
para3 設定値 3 以上
para4 加算値 8
メッセージキュー
パラメタ 種類 必要数
kernel.msgmax 設定値 528 以上
kernel.msgmnb 設定値 4,572 以上
kernel.msgmni 加算値 3
リソース管理プログラムのみが動作する場合
リソース管理プログラムのみが動作する場合に必要となるシステム資源について、以下に示します。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 12,840,416 (注)
kernel.shmmni 加算値 リソース管理プログラムの種類 × 11
注)
リソース管理プログラムの種類が1つの場合で、かつ、以下のデフォルト環境で算出した値です。
- データベース連携サービスの環境定義のconfigファイル RESOURCE_TRANMAX = 10
RESOURCE_TRACE_SIZE = 4096 OBSERVE_TRACE_SIZE = 4096
- リソース定義ファイル
OTS_RMP_PROC_CONC = 5
- データベース連携サービスの環境定義のセットアップ情報ファイル TRANMAX = 100
定義値を変更している場合、以下の計算式で求めてください。
必要数 =
(RESOURCE_TRACE_SIZE + OBSERVE_TRACE_SIZE) × 1,024 + (TRANMAX + 1) × 332 +
((リソース管理プログラムの種類× RESOURCE_TRANMAX × OTS_RMP_PROC_CONC) × (144 + 332)) + 4,394,476 セマフォ
パラメタ 種類 必要数
para4 加算値 リソース管理プログラムの種類 × 7
OTSシステムとリソース管理プログラムの両方が動作する場合
OTSシステムとリソース管理プログラムの両方が動作する場合に必要となるシステム資源について、以下に示します。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 17,830,204 (注)
kernel.shmmni 加算値 12 + リソース管理プログラムの種類 × 11
注)
リソース管理プログラムの種類が1つの場合で、かつデフォルト環境での値です。定義値を変更している場合、以下の計算式で求 めてください。
必要数 =
OTSシステムのみが動作する場合の必要数 +
リソース管理プログラムのみが動作する場合の必要数- 4,915,600 セマフォ
パラメタ 種類 必要数
para1 設定値 12 以上
para2 加算値 24
para3 設定値 3 以上
para4 加算値 8 + リソース管理プログラムの種類 × 7
メッセージキュー
パラメタ 種類 必要数
kernel.msgmax 設定値 528 以上
kernel.msgmnb 設定値 4,572 以上
kernel.msgmni 加算値 3
3.1.4 イベントサービスのシステム環境の設定
イベントサービスを用いたシステムの運用時には、チャネル数、接続するコンシューマ/サプライヤ数などによりシステム資源を拡張す る必要があります。ここでは、以下について説明します。
・ システムパラメタ
以降に示す値は、CORBAサービスの値を含んでいません。“3.1.1 CORBAサービスのシステム環境の設定”を参照し、必要な値を 加算してください。
■システムパラメタ
一般的なイベントサービスが使用する共用メモリ、セマフォ、メッセージキューのシステムパラメタのチューニングについて説明しま す。
イベントサービスの他に共用メモリ、セマフォ、メッセージキューを使用するアプリケーションが存在する場合、そのアプリケーションが 使用する資源にイベントサービスの資源量を加算してください。
システムパラメタの変更方法や、各パラメタの意味については、“■システムパラメタについて”を参照してください。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 [揮発チャネル運用の場合]
2,064 ×イベントチャネル最大作成数(注1) +
600K +trace_sizeパラメタに指定したバイト数(注2) + 3,328 [不揮発チャネル運用の場合]
以下の値のうち、最大値を指定します。
・ 2,064 ×イベントチャネル最大作成数(注1) +
184 ×同時実行可能なグローバルトランザクション数(注3) + 600K +trace_sizeパラメタに指定したバイト数(注2) + 3,328
・ 134,217,728 以上
・ ユニットで使用する共用メモリサイズ(複数ユニットがある場合、
最大値)(注4)
kernel.shmmni 加算値 [揮発チャネル運用の場合]
・ プロセス単位で内部トレースを採取する(trace_buffer=process) 場合(注2)
4 + イベントチャネルのプロセス数(注5)
・ イ ベ ン ト サ ー ビ ス 単 位 で 内 部 ト レ ー ス を 採 取 す る (trace_buffer=system)場合(注2)
4
[不揮発チャネル運用の場合]
・ プロセス単位で内部トレースを採取する(trace_buffer=process) 場合(注2)
100 以上の値 (ユニット単位に加算) + イベントチャネルのプロ セス数(注5)
・ イ ベ ン ト サ ー ビ ス 単 位 で 内 部 ト レ ー ス を 採 取 す る (trace_buffer=system)場合(注2)
100 以上の値 (ユニット単位に加算) 注1)
イベントチャネル最大作成数 =
静的生成イベントチャネル最大作成数+動的生成イベントチャネル最大作成数 注2)
trace_sizeパラメタおよびtrace_bufferパラメタは、イベントサービスの動作環境ファイル(traceconfig)で指定します。詳細について は、“D.1 traceconfig”を参照してください。
注3)
同時実行可能なグローバルトランザクション数は、イベントサービスの構成情報管理コマンド(essetcnf)による-gtrnmaxオプションの 設定値です。
注4)
ユニットで使用する共用メモリサイズは、ユニットの作成コマンド(esmkunit)のユニット定義ファイルで指定した項目shmmaxの設定 値です。