11.2.1 グローバルバッファのバッファ面数の設定するときの考慮点
(1) 共用メモリの上限を考慮した設定
グローバルバッファは,共用メモリ上に確保されます。この共用メモリは,HiRDBの運用ディレクトリがあるディスク上にファイルとして確保されます。そのため,ディスクの空き容量を十分に確保しておく必要があります。
共用メモリのセグメントサイズは,システム共通定義のSHMMAXで指定した値で最大512個分までしか確保されません。そのため,SHMMAX値[MB]×512の範囲に収まるようにグローバルバッファを定義する必要があります。
なお,1個の共用メモリセグメントに確保できないグローバルバッファを定義すると,複数の共用メモリセグメントが確保されるため,共用メモリに対するアクセスのオーバヘッドが大きくなります。
(2) バッファヒット率を考慮した設定
グローバルバッファは,共用メモリ上に確保されます。必要以上にグローバルバッファのバッファ面数を設定すると,共用メモリが増加して,システムのディスク容量及びメモリを圧迫します。また,グローバルバッファを検索するためのオーバヘッドも大きくなります。このため,必要最低限の入出力性能が得られるように設定する必要があります。
必要最低限の入出力性能が得られるように設定するには,グローバルバッファ全体のヒット率(更新バッファヒット率+参照バッファヒット率)及び参照バッファヒット率が高くなるように設定します。このためには,次に示す方法があります。
-
グローバルバッファのバッファ面数を大きくします。
-
グローバルバッファに割り当てるRDエリア又はインデクスを異なるグローバルバッファに分けます。
なお,上記の方法でバッファ面数を設定してHiRDBを稼働してから性能向上を図る場合は,pdbuflsコマンド又は統計解析ユティリティ(pdstedit)を指定します。
pdbuflsコマンドの場合には,編集項目である,グローバルバッファ全体のヒット率を高くなるように面数を設定します。
統計解析ユティリティ(pdstedit)の場合には,編集項目である,更新バッファヒット率及び参照バッファヒット率を参照して,グローバルバッファ全体のヒット率が高くなるように面数を設定します。
(3) 設定方法
システム共通定義のpdbufferオペランドの-nオプションでバッファ面数を指定します。