第3章 システムのチューニング
3.1 サーバ機能運用時に必要なシステム資源
3.1.1 CORBAサービスのシステム環境の設定
CORBAサービスを用いたシステムの運用時には、接続するクライアント/サーバ数、オブジェクト数などによりシステム資源を拡張する
必要があります。ここでは、以下について説明します。
・ システムパラメタ
- CORBAサービス
- インタフェースリポジトリ
- ネーミングサービス
・ プロセス・スレッド
・ ファイルディスクリプタ
■システムパラメタ
一般的な CORBAサービスが使用する共用メモリ、セマフォ、メッセージキューのシステムパラメタのチューニングについて説明しま
す。
CORBAサービスの他に共用メモリ、セマフォ、メッセージキューを使用するアプリケーションが存在する場合、そのアプリケーションが 使用する資源にCORBAサービスの資源量を加算してください。
システムパラメタの変更方法や、各パラメタの意味については、“■システムパラメタについて”を参照してください。
CORBAサービス
CORBAサービスで必要となるシステム資源について、以下に示します。
各表に記述されているパラメタ名(max_IIOP_resp_conなど)は、CORBAサービスのconfigファイルで指定します。詳細について は、“A.1 config”を参照してください。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 以下の値のうち、最大値を指定します。
・ max_IIOP_resp_con × 16K +
(max_IIOP_resp_con_extend_number(注1) + 1) × 0.2K + max_IIOP_resp_requests × 16K +
(max_IIOP_resp_requests_extend_number(注1) + 1) × 0.2K
+
max_impl_rep_entries × 6K +
max_bind_instances(注5) × 0.1K + 100K 以上
- [trace_use=yesの場合] 上記値 +
max_processes × trace_size_per_process + trace_size_of_daemon(注2) + 20K 以上
- [snap_use=yesの場合]
上記値+ snap_size + 10K 以上
・ number_of_common_buffer(注3) × 4K 以上 +
(number_of_common_buffer_extend_number(注1) + 1) × 0.2K
・ [Buffer Size、Buffer Number(ワークユニット定義)を指定した CORBAワークユニット、IJServer起動時]
(Buffer Size + 0.2K) × Buffer Number 以上 (注4)
kernel.shmmni 加算値 max_IIOP_resp_con_extend_number(注1) +
max_IIOP_resp_requests_extend_number(注1) + number_of_common_buffer_extend_number(注1) +
“Buffer Size、Buffer Number(ワークユニット定義)を指定したアプリ ケーション数”+ 14
注1)
[パラメタ名]_extend_numberのデフォルト値は以下となります。0が指定された場合も、以下と同様になります。limit_of_[パラメタ名]
は、0が指定された場合は自動計算されます。計算式の詳細については、“config”を参照してください。
(limit_of_[パラメタ名] - [パラメタ名]) ÷ [パラメタ名] (小数部分切り上げ)
isconfig.xmlファイルの定義項目AutoConfigurationModeにMANUALを指定し、自動拡張を行わない設定にした場合は、0となりま す。
注2)
デフォルトは以下です。0が指定された場合も、以下と同様になります。
trace_size_per_process × 32 注3)
デフォルトは以下です。0が指定された場合も、以下と同様になります。
max_IIOP_resp_requests × 0.2 注4)
Buffer Size、Buffer Numberを指定したワークユニット定義の中で、“(Buffer Size + 0.2KB) × Buffer Number”の最大値が該当し ます。
なお、“(Buffer Size + 0.2KB) × Buffer Number”の最大値が 2,147,483,647より小さい値になるようにBuffer Size、Buffer Number の値を設定してください。
注5)
デフォルトは以下です。0が指定された場合も、以下と同様になります。
max_processes × 1024 (計算結果が65,535を超えた場合は65,535) セマフォ
パラメタ 種類 必要数
para1 設定値 以下の値のうちの最大値以上の値を指定します。
・ max_IIOP_resp_con
・ max_processes
para2 加算値 limit_of_max_IIOP_resp_con(注1) × 4 +
max_IIOP_resp_con_extend_number(注2) + max_IIOP_resp_requests_extend_number(注2) + max_impl_rep_entries +
max_processes × 4 +
プロセスモードのCORBAサーバアプリケーションの起動プロセス数 (注3) +
“Buffer Size、Buffer Number(ワークユニット定義)を指定したアプリ ケーション数” × 2 + 14 以上
[トレース機能を使用する場合] 上記値 + 1 以上
[スナップショット機能を使用する場合] 上記値 + 1 以上
[SSL連携機能を使用する場合]
上記値 + limit_of_max_IIOP_resp_con(注1) 以上
para3 設定値 50 以上
para4 加算値 以下の値のうち、最大値を指定します。
・ 512
・ max_IIOP_resp_con_extend_number(注2) × 5 + max_IIOP_resp_requests_extend_number(注2) + max_impl_rep_entries +
パラメタ 種類 必要数
プロセスモードのCORBAサーバアプリケーションの起動プロセ ス数(注3) +
“Buffer Size、Buffer Number(ワークユニット定義)を指定したア プリケーション数” × 2 + 100 以上
注1)
limit_of_[パラメタ名]のデフォルト値は以下となります。0が指定された場合も、以下と同様になります。
[パラメタ名] × 1.3 (小数部分切り捨て)
isconfig.xmlファイルの定義項目AutoConfigurationModeにMANUALを指定し、自動拡張を行わない設定にした場合は、[パラメタ 名]となります。
注2)
[パラメタ名]_extend_numberのデフォルト値は以下となります。0が指定された場合も、以下と同様になります。
(limit_of_[パラメタ名] - [パラメタ名]) ÷ [パラメタ名] (小数部分切り上げ)
isconfig.xmlファイルの定義項目AutoConfigurationModeにMANUALを指定し、自動拡張を行わない設定にした場合は、0となりま
す。
注3)
起動プロセス数が分からない場合はmax_processesを指定してください。
メッセージキュー
パラメタ 種類 必要数
kernel.msgmax 設定値 16,384 以上
kernel.msgmnb 設定値 32,768 以上
kernel.msgmni 加算値 512 以上
インタフェースリポジトリ
インタフェースリポジトリを使用する場合に必要となるシステム資源を以下に示します。
共用メモリ
パラメタ 種類 必要数
kernel.shmmax 設定値 [ログ採取時]
logging memory size + 16K (注) 注)
“logging memory size”は、CORBAサービスのirconfigファイルで指定します。詳細については、“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のドキュメントを参照してください。