Hitachi

ノンストップデータベース HiRDB Version 10 構造型データベース機能


3.4.2 共用メモリの見積もり

HiRDB/SD定義ユティリティ(pdsdbdef)で生成されたSDBディレクトリ情報は,ユニットコントローラ用共用メモリ上に展開されます。このため,ユニットコントローラ用共用メモリの容量に,HiRDBが使用するメモリ所要量を加算する必要があります。

マニュアル「HiRDB システム導入・設計ガイド」の「メモリ所要量の計算式」を参照して,「ユニットコントローラ用共用メモリ中,各サーバが使用する領域」に,次の表に示す計算式から算出した値を加算してください。

表3‒18 ユニットコントローラ用共用メモリのメモリ所要量

項目

メモリ所要量(キロバイト)

変数の説明

ユニットコントローラ用共用メモリ中,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