7.1.1 システム設計
(1) HiRDB/シングルサーバが使用するメモリ
HiRDB/シングルサーバが使用するメモリについて説明します。
HiRDB/シングルサーバは次に示すメモリを使用します。
-
共用メモリ
-
プロセス固有メモリ
(a) メモリ所要量
HiRDB/シングルサーバが必要とするメモリ所要量を見積もってください。HiRDB/シングルサーバのメモリ所要量については,「HiRDB/シングルサーバのメモリ所要量の見積もり」を参照してください。
(b) 共用メモリのページ固定
HiRDBでは,次に示す共用メモリを実メモリ上に固定できます。
-
ユニットコントローラ用共用メモリ
-
グローバルバッファ用共用メモリ
-
動的変更したグローバルバッファが使用する共用メモリ
-
インメモリデータバッファ用共用メモリ
共用メモリを実メモリ上に固定すると,ページの入出力が少なくなるため,性能が安定します。
- 前提条件
-
共用メモリのページ固定をするための,OSごとの前提条件を次に示します。
OS
前提条件
HP-UX
なし。
AIX
64ビットモードであること。
Linux
なし。
- 動作環境の設定
-
AIXの場合,オペレーティングシステムパラメタの設定が必要となります。オペレーティングシステムパラメタの設定については,「AIX固有のパラメタ指定」を参照してください。
- ページ固定の方法
-
共用メモリのページ固定の方法について,共用メモリの種別ごとに説明します。
-
ユニットコントローラ用共用メモリ
システム共通定義,又はユニット制御情報定義のpd_shmpool_attributeオペランドにfixedを指定します。
-
グローバルバッファ用共用メモリ
システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにfixedを指定します。
-
動的変更したグローバルバッファが使用する共用メモリ
システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにfixedを指定します。これによって,pdbufmodコマンドを実行して動的変更したグローバルバッファが使用する共用メモリも実メモリ上に固定されます。
-
インメモリデータバッファ用共用メモリ
pdmemdbコマンドの-pオプションにfixedを指定します。
- 注意事項
-
実メモリ上に連続した領域が確保できなかった場合,共用メモリのページ固定ができません。ページ固定に失敗した場合のHiRDBの動作を次に示します。
OS
ページ固定に失敗した場合のHiRDBの動作
ユニットコントローラ用
グローバルバッファ用
動的変更したグローバルバッファ用
インメモリデータバッファ用
HP-UX
○
×
×
×
AIX
○※
○※
○※
○※
Linux
○
×
×
×
- (凡例)
-
○:ページ固定をしないで共用メモリを確保し,処理を続行します。
×:HiRDB,又はコマンドが異常終了します。
- 注※
-
AIXの場合,ページ固定に失敗したときでもシステムコールは正常終了します。そのため,HiRDBからはページ固定に失敗したことが分かりません。ページ固定ができているかどうかは,次の手順で確認してください。
1. HiRDB稼働中にpdls -d memコマンドを実行し,次の共用メモリセグメントの識別子を確認します。
・ユニットコントローラ用共用メモリの場合は,SHM-OWNERにMANAGERと表示されている共用メモリセグメント
・上記以外の共用メモリの場合は,SHM-OWNERにユニット名を()で囲んだ文字列,又はHiRDBサーバ名が表示されている共用メモリセグメント
2. OSのipcs -sコマンドを実行して,1.で確認した共用メモリセグメントの識別子を持つ共用メモリのSID値を確認します。
3. 2.で確認したSID値に対してOSのsvmonコマンドを実行して,該当する共用メモリの実メモリページ数と固定されているページ数が一致するかどうかを確認します。
-
(c) Hugepage機能を用いた共用メモリの固定(Linux限定)
Linux版のHiRDBでは,LinuxのHugepage機能を用いて,次に示す共用メモリを実メモリ上に固定できます。
-
ユニットコントローラ用共用メモリ
-
グローバルバッファ用共用メモリ
-
動的変更したグローバルバッファが使用する共用メモリ
-
インメモリデータバッファ用共用メモリ
LinuxのHugepage機能を用いて共用メモリを固定すると,共用メモリのページサイズが通常のページサイズ(4KB)からhugepagesのページサイズ(2MB)に拡大されます。ページサイズが拡大すると,仮想アドレスを実アドレスに変換するための管理領域(PTE:Page Table Entry)を通常よりも小さくできるため,メモリ不足を防止できます。また,仮想アドレスと物理アドレスの変換回数が少なくなり,ページフォルトの発生を抑えることができます。これによって,トランザクション性能が向上することがあります。
- 前提条件
-
LinuxのHugepage機能を有効にする必要があります。Hugepage機能については,OSのマニュアルを参照してください。
- 動作環境の設定
-
OSのオペレーティングシステムパラメタで,Hugepage機能を有効にする設定をしてください。OSのオペレーティングシステムパラメタの設定をしないと,共用メモリの確保と固定化に失敗し,HiRDBは起動しません。OSのオペレーティングシステムパラメタに指定する値の詳細については,「LinuxのHugepage機能の指定」を参照してください。
- ページ固定の方法
-
共用メモリのページ固定の方法について,共用メモリの種別ごとに説明します。
-
ユニットコントローラ用共用メモリ
システム共通定義,又はユニット制御情報定義のpd_shmpool_attributeオペランドにhugepageを指定します。
-
グローバルバッファ用共用メモリ
システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにhugepageを指定します。
-
動的変更したグローバルバッファが使用する共用メモリ
システム共通定義,又はユニット制御情報定義のpd_dbbuff_attributeオペランドにhugepageを指定します。これによって,pdbufmodコマンドを実行して動的変更したグローバルバッファが使用する共用メモリも実メモリ上に固定されます。
-
インメモリデータバッファ用共用メモリ
pdmemdbコマンドの-pオプションにhugepageを指定します。
- 注意事項
-
サーバマシン上に十分なhugepagesが確保されていないと,共用メモリの確保に失敗します。各共用メモリの確保に失敗した場合,次に示すメッセージを出力してHiRDBの開始処理を中止するか,又はコマンドが異常終了します。
-
ユニットコントローラ用共用メモリの確保に失敗した場合
KFPO00113-Eメッセージ
-
グローバルバッファ用共用メモリの確保に失敗した場合
KFPH23015-E及びKFPH23005-Eメッセージ
-
動的変更したグローバルバッファ用共用メモリの確保に失敗した場合
KFPH27031-Eメッセージ
-
インメモリデータバッファ用共用メモリの確保に失敗した場合
KFPH23208-Eメッセージ
上記の理由でHiRDBの開始処理が中止した場合は,マニュアル「HiRDB メッセージ」を参照して,エラーとなった原因を調査し,対策してください。
-
-
(2) ユティリティ専用ユニットの設置
入出力装置(MTドライブなど)の配置の制約などによって,HiRDB/シングルサーバが稼働するサーバマシンに,ユティリティで使用する入出力装置を設置できない場合があります。この場合,別のサーバマシンにユティリティで使用する入出力装置を設置し,HiRDB/シングルサーバが稼働するサーバマシンとLANを接続すると,その入出力装置を利用できます。このように,ユティリティで使用する入出力装置だけを設置するサーバマシンをユティリティ専用ユニットといいます。
ユティリティ専用ユニットは,次に示すユティリティを実行するときに使用します。
-
データベース作成ユティリティ(pdload)
-
データベース再編成ユティリティ(pdrorg)
-
ディクショナリ搬出入ユティリティ(pdexp)
-
データベース複写ユティリティ(pdcopy)
-
データベース回復ユティリティ(pdrstr)
ユティリティを実行するときのユティリティ専用ユニットの使用方法については,マニュアル「HiRDB コマンドリファレンス」を参照してください。
HiRDB/シングルサーバが稼働するサーバマシンに入出力装置を設置できない場合は,ユティリティ専用ユニットの設置を検討してください。
なお,ユティリティ専用ユニットは,複数のHiRDB/シングルサーバで共用できます。