caiccid.prf のMax_Recvrs設定とカーネルパラメータについて

Document created by shunsuke_katakura Employee on Jul 30, 2015
Version 1Show Document
  • View in full screen mode

文書番号:            JTEC002236

製品名:                NSM

バージョン:           -

OS:                     -


◆ 回避方法/設定方法

$CAIGLBL0000/cci/config/`hostname`/caiccid.prf の、Max_Recvrsパラメータ設定は、CCIコンポーネントが利用するSystem V IPCリソース数の上限を定めるものです。
この設定値とカーネルパラメータとの関係について説明します。

 

■Max_Recvrsの値の説明

Max_Recvrs の値は、2つの数値の組で設定します。
Max_Recvrs = N,M
N : 当マシンで登録できるCCIアドレス数の上限(RVTの数の上限)
Nの最大値 : カーネルのsemmslパラメータ値 - 3

M : 各アドレスごとに、受信バッファとして利用する共有メモリセグメント数の上限
Mの最大値 : 1999 (Unicenter NSM 2.4.2J) または 699(旧バージョン)

Unicenterのプロセスは、CCIを利用して通信する前に、自分のCCIアドレスを自マシンのCCIに登録します。
Max_Recvrsの左側の値(N)は、CCIに登録されるアドレス数の上限です。
登録されたアドレスごとに、共有メモリセグメントが一つ確保され、通信の管理テーブル(RVT)として利用されます。
1プロセスにつき1アドレスとは限らないのですが、おおむね、CCIを利用するプロセス数の上限が、左側の値(N)であると言えます。

また、登録されたCCIアドレスごとに、通信データの受信バッファとして、必要に応じて共有メモリセグメントが確保されます。
Max_Recvrs の右側の値(M)は、一つのCCIアドレスにつき、確保される共有メモリセグメント数の上限です。

 

■カーネルパラメータとの関係

Max_RecvrsとSystem V IPCリソースパラメータ値との間には、以下の関係があります。

Max_Recvrs = N,M が設定されているとき、

◎セマフォ関連パラメータ( semmsl, semmni )
CCIが起動するためには、Max_Recvrsの左側の値(N) + 3 個のセマフォを含むセマフォ集合を一つ確保できる必要があります。
このため、

semmsl ≧ N + 3
semmni ≧ 1

の関係が成立している必要があります。
CCI起動のためには、この関係が成立していれば十分です。

◎共有メモリ関連パラメータ( shmmni, shmmax )
Unicenterの稼動中、N 個のCCIアドレスが登録されるためには、N 個の共有メモリセグメントが必要です。また、受信バッファ一杯までデータを溜めるためには、CCIアドレス一つにつき、M 個の共有メモリセグメントが必要です。
目安として、CCIアドレス2つ分の受信バッファが上限まで確保できる程度の、共有メモリセグメント数をシステム側に用意しておくことを推奨いたします。

shmmni ≧ N + ( 2 * M ) + (他のアプリケーションが使用する共有セグメント数)

の関係が成立する程度に shmmni の値を設定してください。
この式をもとに、N, M の値を増やしたとき、それ以前と同程度に共有メモリセグメント数に余裕を持たせるには、shmmni をどれだけ増やせばいいかを以下に示します。
N を n だけ増やし、M を m だけ増やしたとすると、

新shmmni = 旧shmmni + n + ( 2 * M )

◎メッセージキュー関連パラメータ
Max_Recvrsとメッセージキュー関連パラメータ値の間には関係がありません。

 

■カーネルパラメータの推奨値

Unicenterには、最低限必要なカーネルパラメータの推奨値が定められており、インストールスクリプト実行中に確認画面が表示されます(2.4.2J)。これらの値は上述の関係式とは別に、設定していただく必要があります。
インストールディレクトリ下の、kernparmchk.list を参照してください。

Attachments

    Outcomes