23.2.1 デファードライト処理のチューニングで確認すること
システム共通定義のpd_dbsync_pointオペランドにsyncを指定するか,又は省略すると,HiRDBはデファードライト処理を実行し,ディスクへの出力回数を削減しています。デファードライト処理の特長は,RDエリアを構成する複数のディスクを意識して,ディスク単位に処理することで性能を向上させています。
このため,RDエリアを割り当てるHiRDBファイルシステム領域にraw I/O機能を適用し,かつ複数ディスクに割り当てていないと効果がありません。
- 取得する情報
-
統計解析ユティリティの「デファードライト処理に関する統計情報」を取得してください。
(1) ディスクボリューム単位の並列度(PMAX,PMIN)を確認してください
- 確認する目的
-
デファードライト処理で出力先となったディスクボリューム(HiRDBファイルシステム領域)の分散度から,更新対象RDエリアに対するディスクボリューム(HiRDBファイルシステム領域)の割り当てが妥当かどうか判断するために取得します。
- 解析結果の妥当性を判断する方法
-
NTFS以外にHiRDBファイルシステム領域を作成している場合,ディスクボリューム単位の並列度の最大値及び最小値が1になっていないか確認してください。1の場合は特定のディスクボリューム(HiRDBファイルシステム領域)にだけ出力が集中していると考えられます。また,デファードライト処理の並列write機能使用時は最大値がpd_dfw_awt_process指定値以上であるか確認してください。
- 対策方法
-
-
更新が発生するRDエリアを,それぞれ異なるディスクボリューム(HiRDBファイルシステム領域)に割り当ててください。
-
更新が発生する表及びインデクスを,それぞれ異なるディスクボリューム(HiRDBファイルシステム領域)から構成されるRDエリアに分けて格納してください。
-
(2) 平均値(AVG)を確認してください
- 確認する目的
-
次の処理で出力される更新ページの平均値を検討して,グローバルバッファの妥当性を判断するために取得します。
- ●トリガ出力
-
グローバルバッファ中の更新ページ数が,バッファ面数のある一定に達した時点でディスクへ出力します。
ただし,デファードライトトリガの要求比率を有効にした場合,その指定値に達した時点でディスクへ出力します。この指定値の設定はpd_dbbuff_rate_updpageオペランドで指定できます。
このとき,ディスクへ出力するページ数は,pdbufferオペランドの-wオプションで指定した出力ページ比率を基にHiRDBが計算して出力しています。
- ●プレシンク出力
-
シンクポイントでディスクへ出力するページ数を削減するため,プレシンクというポイントを内部的に設定しています。プレシンクとは,シンクポイントが発生するまでにグローバルバッファで更新したページをディスクに書き込み,シンクポイント時に出力する更新ページを少なくする処理です。
- ●シンクポイントダンプ出力
-
シンクポイント時,グローバルバッファにあるすべての更新ページをディスクへ出力します。プレシンクの出力で,シンクポイントダンプの出力処理に掛かる時間を大幅に削減できます。
- ●データベースのシンクポイントダンプ出力
-
シンクポイントダンプ処理を有効化できないシンクポイント契機で更新バッファをデータベースに反映する処理です。
- ●RDエリアのシンクポイントダンプ出力
-
あるRDエリアに対応するすべての更新ページをディスクへ出力する処理です。
- 解析結果の妥当性を判断する方法
-
- ●出力ページ数の平均値が極端に少ない場合
-
デファードライト処理で発生したページの出力回数よりも,通常のバッファフラッシュ回数が多くないかを確認してください。なお,確認するときは,更新頻度が少ないグローバルバッファプールで検討してください。
-
更新ページバッファヒット率が高い場合,デファードライト処理で出力するページ数が少ないときは,問題がないと考えられます。
-
更新ページバッファヒット率が低い場合,デファードライト処理で出力するページ比率が低いときは,シンクポイントダンプの取得間隔を短くできると考えられます。
なお,出力ページ数の平均は,次に示す計算式で求めてください。
n 平均値(AVG)=(a− Σbi )÷(c−d) i=1
a:出力ページ総数(OUT PAGE)
bi:シンクポイント時の出力ページ数(SYNCW)
c:デファードライト処理の起動回数(EXEC)
d:シンクポイント発生回数(SYNC)
n:グローバルバッファプールの定義数
-
- ●HiRDB/パラレルサーバの場合
-
特定のバックエンドサーバの出力ページ総数が多い時は,次に示す要因が考えられます。
-
更新処理が多い表を特定のバックエンドサーバに格納しています。
-
分割した表のうち,特定のキーレンジにだけ更新処理が集中しています。
-
- 対策方法
-
- ●特定のグローバルバッファに書き込みが集中している場合
-
-
グローバルバッファプールに割り当てているRDエリアが複数あるときは,別々のグローバルバッファに割り当ててください。
-
特定のサーバで複数の表を更新している場合,別々のバックエンドサーバに表を分けることを検討してください。
-
- ●複数のRDエリアが一つのディスクに定義されている場合
-
各々のRDエリアを別々のディスクに割り当てて,入出力並列度を向上させてください。