3.4.2 共用メモリの見積もり
HiRDB/SD定義ユティリティ(pdsdbdef)で生成されたSDBディレクトリ情報は,ユニットコントローラ用共用メモリ上に展開されます。このため,ユニットコントローラ用共用メモリの容量に,HiRDBが使用するメモリ所要量を加算する必要があります。
マニュアル「HiRDB システム導入・設計ガイド」の「メモリ所要量の計算式」を参照して,「ユニットコントローラ用共用メモリ中,各サーバが使用する領域」に,次の表に示す計算式から算出した値を加算してください。
項目 |
メモリ所要量(キロバイト) |
変数の説明 |
||
---|---|---|---|---|
ユニットコントローラ用共用メモリ中,HiRDBが使用する領域 |
MGR,FES,またはBESがあるユニット |
↑(unit+shm×advr)÷4↑×4 |
unit |
HiRDBが使用するユニットコントローラ用共用メモリ 詳細については,「3.4.2(1) ユニットコントローラ用共用メモリの見積もり」を参照してください。 |
shm |
システム共通定義pd_structured_shmpool_dicsizeオペランドの指定値 詳細については,「3.4.2(2) システム共通定義pd_structured_shmpool_dicsizeオペランドに指定する値」を参照してください。 |
|||
advr |
システム共通定義のpd_structured_advance_residentオペランドにuseを指定した場合は2を,nouseを指定するかまたはオペランドを省略した場合は1を代入してください。 |
|||
上記以外のユニット |
0 |
− |
− |
- (凡例)
-
−:該当しません。
- 〈この項の構成〉
(1) ユニットコントローラ用共用メモリの見積もり
次の計算式から算出してください。
・ユニット内にFESまたはBESがない場合 1.5 ・ユニット内にFESまたはBESのどちらかがある場合 1.5+{2.1+{0.6×(pd_max_usersオペランドの値+3)}}×S (単位:キロバイト)
- 変数の説明
-
S:ユニット内のFESおよびBESの合計数
(2) システム共通定義pd_structured_shmpool_dicsizeオペランドに指定する値
pd_structured_shmpool_dicsizeオペランドの指定値には,SDBディレクトリ情報長+SDBデータベース名管理情報長よりも大きな値を指定してください。
ただし,SDBデータベース情報長の値とSDBデータベース名管理情報長の値の合計値が2,000,000キロバイトを超える場合は,メモリにSDBディレクトリ情報を常駐できないため,データベース構成を見直して2,000,000キロバイト以内に収まるようにしてください。
SDBディレクトリ情報長,SDBデータベース名管理情報,それぞれの計算式を次に示します。
(a) SDBディレクトリ情報長の計算式
SDBディレクトリ情報長は,次の計算式から算出してください。
SDBディレクトリ情報長は,HiRDB/SD定義ユティリティ(pdsdbdef)の実行時に出力されるKFPB61231-Iのメッセージに表示されるSDBディレクトリ情報の合計長から求めることもできます。
- 変数の説明
-
-
db:SDBデータベース定義文数
-
dbs:SDBデータベース情報長(単位:キロバイト)
次の計算式から算出してください。
-
rec:SDBデータベース定義RECORD句の指定数
-
mem:SDBデータベース定義SET句下のMEMBER句の指定数
-
set:SDBデータベース定義SET句の指定数
-
setkey:SDBデータベース定義SET句下のKEY句に指定した構成要素数
-
cmp:SDBデータベース定義RECORD句で指定した構成要素数
集団項目を含みます。また,SDBデータベース定義でOCCURS句を指定する場合,システム内で生成される構成要素を含みます。
-
cmptyp:SDBデータベース定義RECORD句でTYPE句を指定した構成要素数
SDBデータベース定義でOCCURS句を指定する場合,システム内で生成される構成要素を含みます。
-
seqidx:対応するSDBデータベース格納定義SEQUENTIAL句の指定数
-
secidx:対応するSDBデータベース格納定義STORAGE RECORD句下のSECONDARY INDEX句の指定数
-
seqkey:対応するSDBデータベース格納定義SEQUENTIAL句に指定した構成要素の数
-
seckey:対応するSDBデータベース格納定義STORAGE RECORD句下のSECONDARY INDEX句に指定した構成要素の数
-
allara:対応するSDBデータベース格納定義に指定したRDエリア数
格納レコード用RDエリア数,シーケンシャルインデクス用RDエリア数,および二次インデクス用RDエリア数の和で,同一RDエリア名はカウントしません。
-
recara:対応するSDBデータベース格納定義のSTORAGE RECORD句下のWITHIN句に指定した格納レコード用RDエリアの延べ数(格納レコード用RDエリア数を格納レコード型ごとに重複排除してカウントした数の総数)
-
idxara:対応するSDBデータベース格納定義STORAGE RECORD句下に指定した次のRDエリア数の和(同一RDエリア名はカウントしません)
・SEQUENTIAL句下のWITHIN句に指定したシーケンシャルインデクス用RDエリア数
・SECONDARY INDEX句下のWITHIN句に指定した二次インデクス用RDエリア数
-
idxarai:対応するSDBデータベース格納定義STORAGE RECORD句下に指定した次のRDエリア数の延べ数(インデクス格納用RDエリア数をインデクスごとに重複排除してカウントした数の総数)
・SEQUENTIAL句下のWITHIN句に指定したシーケンシャルインデクス用RDエリア数
・SECONDARY INDEX句下のWITHIN句に指定した二次インデクス用RDエリア数
-
idxara8:対応するSDBデータベース格納定義のSTORAGE RECORD句下に指定した次の値の総数
・SEQUENTIAL句下のWITHIN句に指定したシーケンシャルインデクス用RDエリア数を1インデクスごとに重複排除して2の倍数に切り上げた値
・SECONDARY INDEX句下のWITHIN句に指定した二次インデクス用RDエリア数を1インデクスごとに重複排除して2の倍数に切り上げた値
-
divrec:対応するSDBデータベース格納定義STORAGE RECORD句下のWITHIN句で格納条件または境界値を指定したレコード型数
-
divkey:対応するSDBデータベース格納定義STORAGE RECORD句下のWITHIN句で指定したRDエリア分割キー値数(ただし,境界値分割の場合は,RDエリア分割キー値数+1とします)
-
divcmp:対応するSDBデータベース格納定義STORAGE RECORD句下のWITHIN句の格納条件またはDEPENDING句に指定した構成要素数(同一構成要素名はカウントしません)
-
divkel:対応するSDBデータベース格納定義STORAGE RECORD句下のWITHIN句で指定したRDエリア分割キー値のキー長
-
para:1
-
bes:対応するSDBデータベース格納定義で指定したRDエリアが配置されるBES数(同一RDエリア名はカウントしません)
-
keydef:対応するSDBデータベース格納定義SDBOPTION句下のKEYDEF句の指定数
-
keydat:対応するSDBデータベース格納定義SDBOPTION句下のDATA句の指定数
-
keydatl:対応するSDBデータベース格納定義SDBOPTION句下のDATA句に指定したキー値長
-
recpck:SDBデータベース定義RECORD句で指定したレコード型のうち,PACKED属性を指定した構成要素を含むレコード型の指定数
-
cmppck:SDBデータベース定義RECORD句で指定した構成要素のうち,PACKED属性を指定した構成要素の指定数
SDBデータベース定義でOCCURS句を指定する場合,システム内で生成される構成要素を含みます。
-
occurs:SDBデータベース定義のRECORD句下のOCCURS句の指定数
-
sub:SDBデータベースビュー情報長
次の計算式から算出してください。
(376+rec×312+idxrec×16+ownrec×16+own×16+mem×24 +set×112+setsrt×16+setkey×8+(cmp+2)×56+(anykey+2)×8 +seqidx×40+secidx×24+(seqkey+2)×24+seckey×16+occurs×16)÷1,024
-
idxrec:SDBデータベース格納定義SEQUENTIAL句またはSECONDARY INDEX句を指定したSTORAGE RECORD句数
-
ownrec:SDBデータベース定義SET句下のOWNER句に指定したレコード型数(同一レコード型名はカウントしません)
-
own:SDBデータベース定義SET句下のOWNER句の指定数
-
anykey:次のどれかに該当する構成要素の延べ数(1つの構成要素が複数の条件に該当しても1とカウントします)
・SDBデータベース定義SET句のKEY句に指定した構成要素
・SDBデータベース格納定義SEQUENTIAL句またはSECONDARY INDEX句に指定した構成要素
-
setsrt:SDBデータベース定義SET句で指定した親子集合のうち,ORDER句にSORTED DUPLICATES PROHIBITEDを指定した親子集合数
-
(b) SDBデータベース名管理情報長の計算式
SDBデータベース名管理情報長は,次の計算式から算出してください。
0.2×db+(40+(112×db))÷1,024 (単位:キロバイト)
- 変数の説明
-
db:SDBデータベース定義数
(3) スケジューラプロセス,およびプロセスサーバが使用するメモリサイズに関する注意事項
HiRDBの開始から終了までの間にユニットコントローラが使用する共用メモリは,各HiRDBのプロセスの項目すべてを加算します。
スケジューラプロセス,およびプロセスサーバが使用するメモリサイズを求める計算式は次のようになります。
詳細については,マニュアル「HiRDB システム導入・設計ガイド」の「ユニットコントローラが使用する共用メモリの計算式」を参照してください。
スケジューラプロセスが使用するメモリサイズ(単位:バイト)
・pd_utl_exec_modeの値が0の場合 {↑(432+304×n)÷1,024↑+494+x}×1,024 ・pd_utl_exec_modeの値が1の場合 {↑(432+304×n)÷1,024↑+↑(s×2,000+136)÷1,024↑+y}×1,024
- 変数の説明
-
- x:ユニット内にMGRがある場合:37
-
ユニット内にFESがある場合:57+1×(s+3)+14
ユニット内にDICがある場合:102+5×(t+3)+14
ユニット内にBESがある場合:{192+9×(u+3)+14}×BES数
- y:ユニット内にMGRがある場合:0
-
ユニット内にFESがある場合:1×(s+3)+14
ユニット内にDICがある場合:5×(t+3)+14
ユニット内にBESがある場合:{9×(u+3)+14}×BES数
- n:ユニット内のサーバ数+ユニット内ユティリティサーバ数+1
-
ユニット内ユティリティサーバ数:26+α
α:ユニット内にMGRがある場合:3
ユニット内にFESがある場合:3
ユニット内にDICがある場合:7
ユニット内にBESがある場合:BES数×15
s:pd_max_usersの値+pd_max_reflect_process_countの値
t:pd_max_dic_processの値+pd_max_reflect_process_countの値
u:pd_max_bes_processの値+pd_max_reflect_process_countの値
プロセスサーバが使用するメモリサイズ
208+528×MAX(a,256)+80+256 +(pd_max_server_processの値+50)×(256+160) +16+8×34+16+16+64+64×(pd_module_trace_maxの値+1)
- 変数の説明
-
-
a:↑(50+b+c+d+(e×ユニット内のBES数))÷16↑×16
-
b:ユニット内にMGRがある場合は59,ない場合はf
-
c:ユニット内にDSがある場合は17,ない場合は0
-
d:ユニット内にFESがある場合は11,ない場合は0
-
e:ユニット内にBESがある場合は26,ない場合は0
-
f:pd_mlg_msg_log_unitオペランドにmanagerを指定しているときは1,localを指定しているときは2
-