15.1.3 ユニットコントローラが使用する共用メモリの計算式
(1) 32ビットモードのHiRDBの場合
HiRDB/シングルサーバの開始から終了までの間にユニットコントローラが使用する共用メモリは,次に示すHiRDBのプロセスの項目すべてを加算した値です。
なお,ユニットコントローラ全体の共用メモリサイズは2ギガバイト以内になるようにしてください。
プロセスの種類 |
共用メモリの計算式(単位:バイト) |
---|---|
スケジューラ |
pd_utl_exec_modeの値が0の場合 {↑(432+304×n)÷1024↑+513+x+↑(134+pd_trn_rcvmsg_store_buflenの値)÷1024↑}×1024 pd_utl_exec_modeの値が1の場合 {↑(432+304×n)÷1024↑+↑(m×2000+136)÷1024↑+y+↑(134+pd_trn_rcvmsg_store_buflenの値)÷1024↑}×1024 x:シングルサーバの場合:116+5×(m+3)+14 y:シングルサーバの場合:5×(m+3)+14 m:pd_max_usersの値
|
ロックサーバ |
(320+48+c+d+48+4096+g+48+i+48+4096+48+n+t+u+16) ×pd_lck_pool_partitionの値 c:pd_lck_hash_entryを省略,又は0を指定している場合: (↓(8+4×MAX(↑((p+3)×(pd_max_access_tablesの値+4+5×2) +↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×6)÷10↑ の値を超えない最大の素数,11261))÷16↓+1)×16 pd_lck_hash_entryに2以上の素数でない値を指定している場合: (↓(8+4×pd_lck_hash_entryの値を超えない最大の素数)÷16↓+1) ×16 pd_lck_hash_entryに1,又は素数を指定している場合: (↓(8+4×pd_lck_hash_entryの値)÷16↓+1)×16 d:((p+3)×(pd_max_access_tablesの値+4+5×2)+ ↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×6)×96 g:pd_utl_exec_modeの値=1,かつp>32の場合: ((p+3)×3+p)×256 pd_utl_exec_modeの値=0,又はp≦32の場合: ((p+3)×3+32)×256 i:pd_utl_exec_modeの値=1,かつp>32の場合: ((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×8+((p+3) ×(pd_max_access_tablesの値+4))×2) +p×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×64 pd_utl_exec_modeの値=0,又はp≦32の場合: ((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×8+((p+3) ×(pd_max_access_tablesの値+4))×2) +32×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×64 n:pd_utl_exec_modeの値=1,かつp>32の場合: ((p+3)×3+p)×48 pd_utl_exec_modeの値=0,又はp≦32の場合: ((p+3)×3+32)×48 p:pd_max_usersの値 t:pd_utl_exec_modeの値=1,かつp>32の場合: 48+((p+3)×3+p)×↑pd_max_open_holdable_cursorsの値÷16↑×4 pd_utl_exec_modeの値=0,又はp≦32の場合: 48+((p+3)×3+32)×↑pd_max_open_holdable_cursorsの値÷16↑×4 u:pd_utl_exec_modeの値=1,かつp>32の場合: 48+((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×8 +((p+3)×(pd_max_access_tablesの値+4))×2) +p×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×↑pd_max_open_holdable_cursorsの値÷16↑×4 pd_utl_exec_modeの値=0,又はp≦32の場合: 48+((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×8+ ((p+3)×(pd_max_access_tablesの値+4))×2) +32×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×↑pd_max_open_holdable_cursorsの値÷16↑×4 |
トランザクションサーバ |
288+32+192×m×2+1028 +(420+624+256+384×2+128)×(m×2+7)+256×2 m:pd_max_usersの値 |
タイマサーバ |
32×(pd_max_usersの値+3)×(1+ユニット内ユティリティサーバ数+1)+1440 ユニット内ユティリティサーバ数:26+12 |
統計ログサーバ |
384+128×16+32+288×2+1024+128×3+pd_stj_buff_sizeの値×1024×3+64+4096+8192 |
プロセスサーバ |
192+512×130+96+256+(pd_max_server_processの値+50)×(256+144)+16+8×16+16+16+48+48×(a+1) a:システム共通定義,又はユニット制御情報定義にpd_module_trace_maxオペランドを指定している場合:pd_module_trace_maxの値 それ以外:16383 |
シングルサーバ |
640+(44+4)×a×2+(100+4)×(b+30+2)+(100+4)×(c+1)+40×b×14+256+256+36×d+12×e+8+5844+224+f+16+1024+272×h a:シングルサーバの定義数 b:ユニット内のシングルサーバ数 c:ユニット数 d:pdunitオペランドの-cオプションの指定数 e:pdcltgrpオペランド指定数 f:2052+128×(g+3) g:シングルサーバの場合:92 h:pd_security_host_groupオペランドに指定したホストに対応するIPアドレスの数 pd_security_host_groupオペランドを指定していない場合は0 |
ネームサーバ |
169984 |
ノードマネジャ |
↑(1152+432×全ユニット数+80×全サーバ数+7680+1008 +56×ユニット内のサーバ数+240×A+44×A+28×A+16×B+32) ÷1024↑×1024
|
I/Oサーバ |
↑(28+(↑(32+A)÷32↑×32))÷128↑×128
|
ログサーバ |
32+48+128×19+384+128×7+1024+512 +↑(128+256+160+8+64)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +64+4096×2+(736+512)×B +128×pd_log_write_buff_countの値 +(pd_log_write_buff_countの値+A) ×↑{pd_log_max_data_sizeの値+(68+44+96+160)}÷4096↑×4096 +C+↑{(B+1)÷12}↑×8320 A:16 B:pdlogadfg -d sysオペランドの指定数 C:512 |
シンクポイントダンプサーバ |
↑(368+1456×2)÷1024↑×1024 +↑{(96+80+208+208)+192×(pdlogadfg -d spdの指定数) +416×(pdlogadpf -d spdの指定数)} ÷1024↑×1024 |
ユニット共通 |
a+b+64+(m+3)×c+64+48+d+e +(pd_max_server_processの値×2+100)×(64+16)+32 +(pd_max_server_processの値×2+100+384)×40+32+f+g+h+i+p+q +(pd_max_server_processの値+127+r)×48+32+s+t a:24896 b:2988 c:1952 d:32×32 e:64+64×{(m+3)×2 +MAX(5,↓[m+3]÷10↓)+7} f:512×(13+3)×2 g:{↑(96+pd_lck_until_disconnect_cntの値×112)÷4096↑} ×4096×2 h:↑(pd_registered_portで指定したポート番号の数×16+32) ÷1024↑×1024 pd_registered_portを指定していない場合は0 i:kが2以上の場合は32+(8+8×k)×n それ以外の場合は0 k:pd_lck_pool_partitionの値 m:pd_max_usersの値 n:(m+3)×2+MAX{5,↓(m+3)÷10↓}+7 p:pd_dbbuff_modifyにYを指定している場合:2064+pd_max_add_dbbuff_shm_noの値×4 上記以外:2064 q:144 r:pd_utl_exec_modeの値=1,かつm>32の場合:(m+3)×3+m pd_utl_exec_modeの値=0,又はm≦32の場合:(m+3)×3+32 s:pd_shm_reuseにYを指定し,かつpd_dbbuff_modifyにYを指定している場合:4112+pd_max_add_dbbuff_shm_no値×8 pd_shm_reuseにYを指定し,かつpd_dbbuff_modifyにNを指定している場合:4112 上記以外:0 t:352 |
トランザクションログサーバ |
1024+512×A +{ 128×B+128 +[F+↑(128+256+8+224)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +↑(pd_log_max_data_sizeの値+68+44+96+160) ÷pd_log_rec_lengの値↑×pd_log_rec_lengの値]×D +E+(48+8)×B×2 }×ユニット内のサーバ数 +584×B+128×B+64×B×C+128 +{ F+↑(128+256+8+224)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +↑(pd_log_max_data_sizeの値+68+44+96+160) ÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 } +E+(48+8)×(B×2+2) A:2 B:7+pd_max_usersの値×2 C:1 D:シングルサーバの場合,pd_log_rollback_buff_countの値が0のときは8, それ以外のときはpd_log_rollback_buff_countの値 E:512 F:512 |
ステータスサーバ |
↑64÷32↑×32 |
監査証跡管理サーバ |
↑A÷1024↑×1024 A:pd_aud_file_nameオペランドの指定がない場合は640 pd_aud_file_nameオペランドの指定がある場合は640+(304×200)+B+C B:pd_aud_async_buff_sizeオペランドの値が0の場合は0 pd_aud_async_buff_sizeオペランドの値が4096以上の場合は次の計算値 (160×pd_aud_async_buff_countオペランドの値) +{(↑pd_aud_async_buff_sizeオペランドの値÷4096↑×4096) ×pd_aud_async_buff_countオペランドの値}+4096 C:pd_aud_auto_loadingオペランドにNを指定している場合は0 pd_aud_auto_loadingオペランドにYを指定している場合は256×2+240 |
(2) 64ビットモードのHiRDBの場合
HiRDB/シングルサーバの開始から終了までの間にユニットコントローラが使用する共用メモリは,次に示すHiRDBのプロセスの項目すべてを加算した値です。
プロセスの種類 |
共用メモリの計算式(単位:バイト) |
---|---|
スケジューラ |
pd_utl_exec_modeの値が0の場合 {↑(432+304×n)÷1024↑+513+x+↑(134+pd_trn_rcvmsg_store_buflenの値)÷1024↑}×1024 pd_utl_exec_modeの値が1の場合 {↑(432+304×n)÷1024↑+↑(m×2000+136)÷1024↑+y+↑(134+pd_trn_rcvmsg_store_buflenの値)÷1024↑}×1024 x:シングルサーバの場合:116+5×(m+3)+14 y:シングルサーバの場合:5×(m+3)+14 m:pd_max_usersの値
|
ロックサーバ |
(496+80+c+d+64+8192+g+80+i+64+8192+64+n+t+u+16) ×pd_lck_pool_partitionの値 c:pd_lck_hash_entryを省略,又は0を指定している場合: (↓(8+8×MAX(↑((p+3)×(pd_max_access_tablesの値+4+5×2) +↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×4)÷10↑ の値を超えない最大の素数,11261))÷16↓+1)×16 pd_lck_hash_entryに2以上の素数でない値を指定している場合: (↓(8+8×pd_lck_hash_entryの値を超えない最大の素数)÷16↓+1) ×16 pd_lck_hash_entryに1,又は素数を指定している場合: (↓(8+8×pd_lck_hash_entryの値)÷16↓+1)×16 d:((p+3)×(pd_max_access_tablesの値+4+5×2)+ ↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×4)×128 g:pd_utl_exec_modeの値=1,かつp>32の場合: ((p+3)×3+p)×320 pd_utl_exec_modeの値=0,又はp≦32の場合: ((p+3)×3+32)×320 i:pd_utl_exec_modeの値=1,かつp>32の場合: ((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×5 +((p+3)×(pd_max_access_tablesの値+4))×2) +↓(↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓)÷3↓ +p×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×112 pd_utl_exec_modeの値=0,又はp≦32の場合: ((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×5 +((p+3)×(pd_max_access_tablesの値+4))×2) +↓(↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓)÷3↓ +32×(pd_max_rdarea_no値+1)+(p+3)×2×2×5) を偶数に切り上げた値×112 n:pd_utl_exec_modeの値=1,かつp>32の場合: ((p+3)×3+p)×80 pd_utl_exec_modeの値=0,又はp≦32の場合: ((p+3)×3+32)×80 p:pd_max_usersの値 t:pd_utl_exec_modeの値=1,かつp>32の場合: 48+((p+3)×3+p)×↑pd_max_open_holdable_cursorsの値÷16↑×4 pd_utl_exec_modeの値=0,又はp≦32の場合: 48+((p+3)×3+32)×↑pd_max_open_holdable_cursorsの値÷16↑×4 u:pd_utl_exec_modeの値=1,かつp>32の場合: 48+((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×5 +((p+3)×(pd_max_access_tablesの値+4))×2) +↓↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓÷3↓ +p×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×↑pd_max_open_holdable_cursorsの値÷16↑×4 pd_utl_exec_modeの値=0,又はp≦32の場合: 48+((↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓×5 +((p+3)×(pd_max_access_tablesの値+4))×2) +↓↓pd_lck_pool_sizeの値÷pd_lck_pool_partitionの値↓÷3↓ +32×(pd_max_rdarea_noの値+1)+(p+3)×2×2×5) を偶数に切り上げた値×↑pd_max_open_holdable_cursorsの値÷16↑×4 |
トランザクションサーバ |
304+32+192×m×2+1048 +(416+800+256+392×2+128)×(m×2+7)+256×2 m:pd_max_usersの値 |
タイマサーバ |
32×(pd_max_usersの値+3)×(1+ユニット内ユティリティサーバ数+1) +1440+(48−32)×2 ユニット内ユティリティサーバ数は26+12 |
統計ログサーバ |
424+128×16+32+288×2+1168+144×3 +pd_stj_buff_sizeの値×1024×3+64+4096+8192 |
プロセスサーバ |
208+528×130+96+256+(pd_max_server_processの値+50)×(256+160)+16+8×16+16+16+64+64×(a+1) a:システム共通定義,又はユニット制御情報定義にpd_module_trace_maxオペランドを指定している場合:pd_module_trace_maxの値 それ以外:16383 |
シングルサーバ |
736+(48+8)×a×2+(112+8)×(b+30+2)+(104+8)×(c+1)+40×b×14+256+256+40×d+16×e+8+5864+256+f+16+1024+272×h a:シングルサーバの定義数 b:ユニット内のシングルサーバ数 c:ユニット数 d:pdunitオペランドの-cオプションの指定数 e:pdcltgrpオペランド指定数 f:2056+128×(g+3) g:シングルサーバの場合:92 h:pd_security_host_groupオペランドに指定したホストに対応するIPアドレスの数 pd_security_host_groupオペランドを指定していない場合は0 |
ネームサーバ |
169984 |
ノードマネジャ |
↑(1312+464×HiRDBシステムの全ユニット数 +96×HiRDBシステムの全サーバ数+10240+1200 +72×ユニット内HiRDBサーバ数+240×A+44×A+28×A+16×B+48) ÷1024↑×1024
|
I/Oサーバ |
↑(56+(↑(56+A)÷32↑×32))÷128↑×128
|
ログサーバ |
32+48+128×19+432+128×7+1168+512 +↑(128+256+160+8+64)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +64+4096×2+(768+512)×B +144×pd_log_write_buff_countの値 +(pd_log_write_buff_countの値+A) ×↑{pd_log_max_data_sizeの値+(68+44+96+160)}÷4096↑×4096 +C+↑{(B+1)÷12}↑×8320 A:16 B:pdlogadfg -d sysオペランドの指定数 C:512 |
シンクポイントダンプサーバ |
↑(384+1536×2)÷1024↑×1024 +↑{(128+80+240+240)+192×(pdlogadfg -d spdの指定数) +416×(pdlogadpf -d spdの指定数)} ÷1024↑×1024 |
ユニット共通 |
a+b+80+(m+3)×c+64+48+d+e +(pd_max_server_processの値×2+100)×(76+16)+32 +(pd_max_server_processの値×2+100+384)×40+32+f+g+h+i+p+q +(pd_max_server_processの値+127+r)×64+32+s+t a:34304 b:3480 c:2760 d:48×32 e:80+96×{(m+3)×2 +MAX(5,↓[m+3]÷10↓)+7} f:512×(13+3)×2 g:{↑(128+pd_lck_until_disconnect_cntの値×112)÷4096↑} ×4096×2 h:↑(pd_registered_portで指定したポート番号の数×16+32) ÷1024↑×1024 pd_registered_portを指定していない場合は0 i:kが2以上の場合は32+(8+8×k)×n それ以外の場合は0 k:pd_lck_pool_partitionの値 m:pd_max_usersの値 n:(m+3)×2+MAX{5,↓(m+3)÷10↓}+7 p:pd_dbbuff_modifyにYを指定している場合:2064+(pd_max_add_dbbuff_shm_noの値+pd_max_resident_rdarea_shm_noの値)×4 上記以外:2064+pd_max_resident_rdarea_shm_noの値×4 q:144 r:pd_utl_exec_modeの値=1,かつm>32の場合:(m+3)×3+m pd_utl_exec_modeの値=0,又はm≦32の場合:(m+3)×3+32 s:pd_shm_reuseにYを指定し,かつpd_dbbuff_modifyにYを指定している場合:8208+(pd_max_add_dbbuff_shm_no値+pd_max_resident_rdarea_shm_no値)×16 pd_shm_reuseにYを指定し,かつpd_dbbuff_modifyにNを指定している場合:8208+pd_max_resident_rdarea_shm_no値×16 上記以外:0 t:352 |
トランザクションログサーバ |
1168+688×A +{ 128×B+144 +[G+↑(128+256+8+224)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +↑(pd_log_max_data_sizeの値+68+44+96+160) ÷pd_log_rec_lengの値↑×pd_log_rec_lengの値]×D +E+(48+8)×B×2 }×ユニット内のサーバ数 +600×B+128×B+64×B×C+144 +{ G+↑(128+256+8+224)÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 +↑(pd_log_max_data_sizeの値+68+44+96+160) ÷pd_log_rec_lengの値↑×pd_log_rec_lengの値 } +E+(48+8)×(B×2+2) A:2 B:7+pd_max_usersの値×2 C:1 D:シングルサーバの場合,pd_log_rollback_buff_countの値が0のときは8, それ以外のときはpd_log_rollback_buff_countの値 E:512 G:512 |
ステータスサーバ |
↑64÷32↑×32 |
監査証跡管理サーバ |
↑A÷1024↑×1024 A:pd_aud_file_nameオペランドの指定がない場合は704 pd_aud_file_nameオペランドの指定がある場合は704+(320×200)+B+C B:pd_aud_async_buff_sizeオペランドの値が0の場合は0 pd_aud_async_buff_sizeオペランドの値が4096以上の場合は次の計算値 (176×pd_aud_async_buff_countオペランドの値) +{(↑pd_aud_async_buff_sizeオペランドの値÷4096↑×4096) ×pd_aud_async_buff_countオペランドの値}+4096 C:pd_aud_auto_loadingオペランドにNを指定している場合は0 pd_aud_auto_loadingオペランドにYを指定している場合は256×2+256 |