Hitachi

ノンストップデータベース HiRDB Version 10 システム導入・設計ガイド(UNIX(R)用)


19.1 HP-UXのオペレーティングシステムパラメタの見積もり

ここでは,HP-UXのオペレーティングシステムパラメタ(カーネルパラメタ)の見積もりについて説明します。オペレーティングシステムパラメタの値が小さいと,HiRDBが正しく動作しないことがあります。HP-UXのオペレーティングシステムパラメタの指定値の目安を次の表に示します。

なお,HP-UX 11i版の場合,HiRDBの稼働中にオペレーティングシステムパラメタを変更しないでください。動的調整できるオペレーティングシステムパラメタを変更した場合でも,HiRDBの動作に影響を及ぼすことがあります。

表19‒1 HP-UXのオペレーティングシステムパラメタの指定値の目安

オペレーティングシステムパラメタ

指定値の目安

maxdsiz(32ビットモード)

maxdsiz_64bit(64ビットモード)

●HiRDB/シングルサーバの場合

次の二つの条件を満たす値を目安にしてください。ただし,(シングルサーバプロセスが使用するプロセス固有領域※1)÷gより小さい場合は,この値以上を指定してください。

32ビットモードのとき

  • HiRDBの再開始用メモリサイズ※2+52428800(バイト)以上

  • pd_work_buff_sizeの値×1024+134217728(バイト)以上

64ビットモードのとき

  • HiRDBの再開始用メモリサイズ※2+52428800(バイト)以上

  • pd_work_buff_sizeの値×1024+134217728(バイト)以上

●HiRDB/パラレルサーバの場合

次の値を目安にしてください。ただし,(各サーバプロセスが使用するプロセス固有領域※3)÷gより小さい場合は,この値以上を指定してください。

32ビットモードのとき

  • 各サーバのHiRDBの再開始用メモリサイズ※2+134217728(バイト)以上

64ビットモードのとき

  • 各サーバのHiRDBの再開始用メモリサイズ※2+134217728(バイト)以上

maxssiz

maxssiz_64bit(64ビットモード)

80メガバイト以上を指定してください。単位がメガバイトのため,値を変更するときは注意してください。ただし,サーバマシン上で稼働するほかのプログラムが必要とする値の方が大きい場合は,その値を指定してください。

maxfiles

HiRDBが計算して設定するため,指定する必要はありません。

maxfiles_lim

8192を指定してください。

nflocks

a+(b×c)+3+(320×g)以上を指定してください。

maxuprc

MAX(pd_max_server_processの値+e,512)以上を指定してください。

ただし,サーバマシン上で稼働するほかのプログラムが必要とする値の方が大きい場合は,その値を指定してください。

nproc

MAX(pd_max_server_processの値+20,576)以上を指定してください。

msgmni

サーバマシン上で稼働する全プログラムが必要とするメッセージキュー識別子数を指定します。HiRDBが必要とするメッセージキュー識別子数については,「メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。

msgtql

●msgtqlの計算式」を参照してください。ここで求めた値以上を指定してください。

msgmnb

●msgmnbの計算式」を参照してください。ここで求めた値以上を指定してください。ただし,マルチHiRDBの場合は,それらのHiRDBごとに求めた値の中で最大の値を指定してください。

semmni

サーバマシン上で稼働する全プログラムが必要とするセマフォ識別子数を指定します。HiRDBが必要とするセマフォ識別子数については,「メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。

推奨値は1024以上です。

semmns

サーバマシン上で稼働する全プログラムが必要とするセマフォ数を指定します。HiRDBが必要とするセマフォ数については,「メッセージキュー及びセマフォ所要量の見積もり」を参照してください。そこで求めた値を加算してください。

推奨値は7200以上です。

semmnu

512以上を指定してください。

semume

512以上を指定してください。

shmmax

200000000以上で,MAX(p+q,r,s,t)よりも大きい値を指定してください。

グローバルバッファの動的変更機能使用時は,追加するグローバルバッファのサイズを考慮し,設定値より追加分のサイズが大きくなる可能性があれば,予想される追加分のサイズを指定してください。

ただし,プロセス間メモリ通信機能を使用する場合(クライアント環境定義でPDIPC=MEMORYを指定した場合)は,MAX(p+q,r,s,PDSENDMEMSIZEの値,PDRECVMEMSIZEの値)よりも大きい値を指定してください。

なお,HiRDBシステム定義のSHMMAXオペランドには,ここで求めたshmmaxの値以下を指定してください。

shmmni

1000以上を指定してください。

  • セキュリティ監査機能使用時は1を加算してください。

  • グローバルバッファの動的変更機能使用時は次の値を加算します。

    HiRDB/シングルサーバの場合

    pd_max_add_dbbuff_shm_noオペランドの値

    HiRDB/パラレルサーバの場合

    n

    Σ 各サーバ定義に指定したpd_max_add_dbbuff_shm_noオペランドの値

    i=1

    n:サーバマシン内のバックエンドサーバ数+ディクショナリサーバ数

  • プロセス間メモリ通信機能を使用する場合(クライアント環境定義でPDIPC=MEMORYを指定した場合)は,次に示す計算式で求めた値を加算してください。

    A×2×1.2

    Aはプロセス間メモリ通信機能を使用するクライアントの最大同時実行数です。Aが分からない場合は,プロセス間メモリ通信機能を使用する全クライアント数又はkを代入してください。

  • インメモリデータ処理の使用時は次の値を加算します。

    HiRDB/シングルサーバの場合

    pd_max_resident_rdarea_shm_noオペランドの値

    HiRDB/パラレルサーバの場合

    pd_max_resident_rdarea_shm_noオペランドの値×バックエンドサーバ数

shmseg

120以上を指定してください。

  • セキュリティ監査機能使用時は1を加算してください。

  • グローバルバッファの動的変更をする場合は,各サーバ定義で指定したpd_max_add_dbbuff_shm_noオペランドの値の最大値を加算してください。

  • インメモリデータ処理をする場合は,pd_max_resident_rdarea_shm_noオペランドの値を加算してください。

a:データベース作成ユティリティで使用する入力データファイル数と分割入力データファイル数,又はデータベース再編成ユティリティで使用するアンロードデータファイル数

b:インデクスの横分割数の最大値(データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティの処理対象のインデクス)

c:インデクス数(データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティの処理対象のインデクス)

d:次のどちらかの値
  • HiRDB/シングルサーバの場合

    pd_max_usersオペランドの値+pd_max_reflect_process_countオペランドの値

  • HiRDB/パラレルサーバの場合

    pd_max_bes_processオペランドの値+pd_max_reflect_process_countオペランドの値

e:同時実行するコマンド(ユティリティを含む)の最大数

f:次のどちらかの値
  • HiRDB/シングルサーバの場合:1

  • HiRDB/パラレルサーバの場合:16

g:次のどちらかの値
  • HiRDB/シングルサーバの場合:pd_max_usersオペランドの値+pd_max_reflect_process_countオペランドの値

  • HiRDB/パラレルサーバの場合:ユニット内の全バックエンドサーバ,ディクショナリサーバの次に示す値の合計値

    pd_max_bes_processオペランドの値+pd_max_reflect_process_countオペランドの値

    pd_max_dic_processオペランドの値+pd_max_reflect_process_countオペランドの値

j:次のどちらかの値
  • HiRDB/シングルサーバの場合:4

  • HiRDB/パラレルサーバの場合:35

k:pd_max_usersオペランドの値+pd_max_reflect_process_countオペランドの値

n:データベース作成ユティリティ,データベース再編成ユティリティ,又はリバランスユティリティで,インデクス作成方法にインデクス一括作成モード若しくはインデクス情報出力モードを指定する場合,次の計算式の値

MIN(MAX(576,システム内のHiRDBサーバ数+448)+b×c,pd_max_open_fdsオペランドの最大値)

pd_max_open_fdsオペランドの最大値については,マニュアル「HiRDB システム定義」を参照してください。

p:ユニットコントローラが使用する共用メモリの大きさ

q:シングルサーバ又は各サーバが使用する共用メモリの大きさ

r:HiRDBシステム定義のSHMMAXオペランドの指定値

s:グローバルバッファが使用する共用メモリの見積もり値※4

:セキュリティ監査情報用バッファ用共用メモリの見積もり値※5

注※1

シングルサーバプロセスが使用するプロセス固有領域については,「メモリ所要量の計算式」を参照してください。

注※2

HiRDBの再開始用メモリサイズの見積もりについては,HiRDB/シングルサーバの場合は「メモリ所要量の計算式」を,HiRDB/パラレルサーバの場合は「メモリ所要量の計算式」を参照してください。

注※3

各サーバプロセスが使用するプロセス固有領域については,「メモリ所要量の計算式」を参照してください。

注※4

グローバルバッファが使用する共用メモリの見積もりについては,HiRDB/シングルサーバの場合は「グローバルバッファが使用する共用メモリの計算式」を,HiRDB/パラレルサーバの場合は「グローバルバッファが使用する共用メモリの計算式」を参照してください。

注※5

セキュリティ監査情報用バッファ用共用メモリの見積もりについては,HiRDB/シングルサーバの場合は「メモリ所要量の計算式」を,HiRDB/パラレルサーバの場合は「メモリ所要量の計算式」を参照してください。

●msgtqlの計算式

msgtqlの計算式を次に示します。

    n
msgtql =Σ(Ai+Bi+Gi+Hi)+1
    i=1
              +↓pd_trn_rcvmsg_store_buflenオペランドの値÷72↓
  m
Ai =Σ(Ci+Di×2+Ei+1)
  i=1
  m
Bi =Σ Fi
  i=1

Biは,pd_max_ard_processオペランドが1以上の場合に加算します。pd_max_ard_processオペランドが0の場合は0で計算してください。

Ci:各サーバに割り当てられているグローバルバッファの数

pdbuflsコマンドで表示されるグローバルバッファ名をサーバ単位に集計すると確認できます。

Di:各サーバで発生するシンクポイントダンプ有効化のスキップ回数
  • pd_spd_syncpoint_skip_limitオペランドに0以外を指定している場合:pd_spd_syncpoint_skip_limitオペランドの指定値で計算式してください。

  • pd_spd_syncpoint_skip_limitオペランドを省略しているか,又は0を指定している場合:マニュアル「HiRDB システム運用ガイド」の「UAPの状態監視(シンクポイントダンプ有効化のスキップ回数監視機能)」の「全システムログファイルの容量から計算する方法」を参照して計算してください。

Ei:各サーバで実行されるpdload,pdrorg,pdrbal,及びログレスモードのUAPの最大同時実行数

Fi:各サーバに割り当てられているグローバルバッファのうち,pdbufferオペランドの-mオプションの指定値の合計

Gi:pd_max_usersオペランドの値×p

Hi:pd_utl_exec_modeオペランドが1の場合は,pd_max_usersオペランドの値となります。

pd_utl_exec_modeオペランドが0の場合は,次に示す値となります。

  • Min(933,pd_max_usersオペランドの値)

m:HiRDB/シングルサーバの場合は1,HiRDB/パラレルサーバの場合は次に示す値となります。
  • ユニット内のバックエンドサーバ数+ユニット内のディクショナリサーバ数+ユニット内のゲストBES数

ユニット内のゲストBES数は,影響分散スタンバイレス型系切り替え機能を適用しているユニットの場合に加算します。

n:サーバマシン内に定義したユニット数

p:HiRDB/シングルサーバの場合は1,HiRDB/パラレルサーバの場合は次に示す値となります。
  • ユニット内のフロントエンドサーバ数+ユニット内のバックエンドサーバ数+ユニット内のディクショナリサーバ数+pd_ha_max_act_guest_serversオペランドの値

pd_ha_max_act_guest_serversオペランドの値は,影響分散スタンバイレス型系切り替え機能を適用しているユニットの場合に加算します。

●msgmnbの計算式

msgmnbの計算式を次に示します。

msgmnb=MAX((A+B×2+C+1)※2×40,D※2×16,E×F×4,G×4)※1
注※1

ユニット内の全サーバについて求めた値で,最大値を指定します。

1:1スタンバイレス型系切り替えの対象となるユニットの場合は,ユニット内の全サーバとユニット内で動作する代替BESについて求めた値で,最大値を指定します。

影響分散スタンバイレス型系切り替えの対象となるユニットの場合は,ユニット内の全サーバとHAグループに含まれる全バックエンドサーバについて求めた値で,最大値を指定します。

注※2

フロントエンドサーバの場合は0となります。

A:サーバに割り当てられているグローバルバッファの数

pdbuflsコマンドで表示されるグローバルバッファ名をサーバ単位に集計すると確認できます。

B:サーバで発生するシンクポイントダンプ有効化のスキップ回数
  • pd_spd_syncpoint_skip_limitオペランドに0以外を指定している場合:

    pd_spd_syncpoint_skip_limitオペランドの指定値で計算式してください。

  • pd_spd_syncpoint_skip_limitオペランドを省略しているか,又は0を指定している場合:

    マニュアル「HiRDB システム運用ガイド」の「UAPの状態監視(シンクポイントダンプ有効化のスキップ回数監視機能)」の「全システムログファイルの容量から計算する方法」を参照して計算してください。

C:サーバで実行されるpdload,pdrorg,pdrbal,及びログレスモードのUAPの最大同時実行数

D:pd_max_ard_processオペランドが1以上の場合は次に示す値となります。
  • サーバに割り当てられているグローバルバッファのうち,pdbufferオペランドの-mオプションの指定値の合計

pd_max_ard_processオペランドが0の場合は0となります。

E:pd_max_usersオペランドの値

F:HiRDB/シングルサーバの場合は1,HiRDB/パラレルサーバの場合は次に示す値となります。
  • ユニット内のフロントエンドサーバ数+ユニット内のバックエンドサーバ数+ユニット内のディクショナリサーバ数+pd_ha_max_act_guest_serversオペランドの値

pd_ha_max_act_guest_serversオペランドの値は,影響分散スタンバイレス型系切り替え機能を適用しているユニットの場合に加算します。

G:↓pd_trn_rcvmsg_store_buflenオペランドの値÷72↓