TOPサーバ構築・運用> バッファプール〜先読み情報
Linux+DB2
Linux+DB2のパフォーマンスチューニング

第9回:稼動情報からボトルネックを探し出す
著者:日本アイ・ビー・エム  中坪 宏明   2007/1/10
前のページ  1  2   3  4  次のページ
バッファプール〜先読み情報

   データベース・スナップショットでは、以下のような、先読み(プリフェッチ)の情報を取得できます。
  • 非同期プール・データ・ページ読み取り(累積値)
  • 非同期プール索引ページ読み取り(累積値)
  • 非同期読み取り合計経過時間(累積値)
  • 非同期データ読み取り要求(累積値)
  • 非同期索引読み取り要求(累積値)
  • プリフェッチ待機時間(ミリ秒、累積値)
  • 非読み取りプリフェッチ・ページ数(累積値)

表5:取得できるバッファ・プールの先読み情報

   非同期の読み取りが、先読み(プリフェッチ)にあたります。

   この情報を取得したら、先読みにかかる時間および無駄な先読み(非読み取りプリフェッチ・ページ数)の累積値が多くないかを確認します。

   以前の性能が良好な時と比べて、無駄が多い場合には、データベースの統計情報が最新のものとなっているか確認します。

   また、無駄が多い現象の対応としては、先読み量の指定(表スペースのプリフェッチサイズ)を小さくなるように調整をし、SQLのアクセスプランでリスト・プリフェッチが多く選択されていることがわかった場合には、DB2登録変数での指定「DB2_MINIMIZE_LISTPREFETCH=YES」の使用などを検討します。


バッファプール〜更新データ書き込み処理

   データベース・スナップショットでは、更新データの書き込み処理に関連する情報として、以下のものを取得できます。

書き込みページ数および時間の情報
  • バッファ・プール・データ書き込み(累積値)
  • 非同期プール・データ・ページ書き込み(累積値)
  • バッファ・プール索引書き込み(累積値)
  • 非同期プール索引ページ書き込み(累積値)
  • バッファ・プール書き込み時間の合計(ミリ秒、累積値)
  • 非同期書き込み合計経過時間(累積値)
書き込みのトリガーの情報
  • LSN Gapクリーナー・トリガー(累積値)
  • ダーティー・ページ・スチール・クリーナー・トリガー(累積値)
  • ダーティー・ページしきい値クリーナー・トリガー (累積値)
バッファ・プール内にある更新データ量についての情報
  • リカバリーで再実行されるログ(バイト、現在値)
  • ダーティー・ページ用のログ(バイト、現在値)

表6:取得できる更新データの書き込み情報

   この中で特に注意が必要なのは、更新データの書き出しの原因となったトリガーについての情報です。ダーティー・ページ・スチール・クリーナー・トリガーは、SQLの実行が大きく遅延することが多いため、避けなければなりません。

   そのためには、ページクリーナー・プロセス数(データベース構成パラメータのNUM_IOCLEANERSで指定)を多くしたり、バッファープール自体のサイズを大きくする必要があります。LSN Gapクリーナー・トリガーだけが使用されていることが望ましい状況です。

   また更新処理について、更新データの書き込みが追いついているかどうかについては、バッファプール内にある更新データ量を示す情報をモニタリングすることで確認できます。この数値が大きくなっていくと、いずれはダーティー・ページ・スチール・クリーナー・トリガーでの書き出し起きるようになる可能性があります。また、障害時のデータベース・リカバリーに多くの時間がかかってしまうことになります。

   このような場合には、上述のページクリーナー・プロセス数を多くします。これで対応できない場合には物理設計の見直し、さらにはアプリケーションの見直しが必要な場合があります。物理設計の見直しとして、表スペース・コンテナーをできるだけ多くの独立したデバイスに配置する、あるいはトランザクション・ログをデータおよびインデックスとは異なるデバイスに配置するといったことを検討します。


ソート

   データベース・スナップショットでは、ソートに関して、以下の情報を取得することができます。

  • 専用ソート・ヒープ割り振りの合計(現在値、DB2エージェント内で私用メモリに割り振られたもの)
  • 共有ソート・ヒープ割り振りの合計(現在値)
  • 共有ソート・ヒープの最高水準点(水準値)
  • ソート合計(累積値)
  • ソート時間の合計(ミリ秒、累積値)
  • ソート・オーバーフロー(累積値)
  • アクティブ・ソート(現在値)

表7:取得できるソート情報

   ソートオーバーフローの頻度が高い場合には、ソート・ヒープ用のメモリーサイズ(データベース構成パラメータのSORTHEAPおよびデータベース・マネージャー構成パラメータのSHEAPTHRES)を大きくして調整します。

   データベース・マネージャ・スナップショットでのみ、以下の情報を取得できます。

  • パイプ済みソート要求(累積値)
  • パイプ済みソート受け入れ(累積値)

表8:データベース・マネージャ・スナップショットで取得できる情報

   1つ1つのSQLの実行が非常に短いようなOLTPシステムにおいて、パイプ済みソート要求数と受け入れ数に差がある場合には、パフォーマンスが十分にだすことができない場合があります。その場合には、ソート用のメモリーサイズを大きくして、差ができるだけ小さくなるように調整する必要があります。

前のページ  1  2   3  4  次のページ


日本アイ・ビー・エム  中坪 宏明
著者プロフィール
日本アイ・ビー・エム株式会社  中坪 宏明
インフォメーション・マネジメント・テクニカル・セールス所属
DB2の技術支援(設計支援、パフォーマンス・チューニング、障害解決支援、案件サポートなど)を10年以上実施している。Linuxをはじめとして各オペレーティングシステムおよびハードウェアとの組み合わせでの機能検証および性能検証も実施している。


INDEX
第9回:稼動情報からボトルネックを探し出す
  主な稼動情報の取得
バッファプール〜先読み情報
  SQL実行数
  カタログ・キャッシュ