TOPサーバ構築・運用> 主な稼動情報の取得
Linux+DB2
Linux+DB2のパフォーマンスチューニング

第9回:稼動情報からボトルネックを探し出す
著者:日本アイ・ビー・エム  中坪 宏明   2007/1/10
1   2  3  4  次のページ
主な稼動情報の取得

   前回は、DB2の稼動情報を取得するためのツールを紹介してきました。続く今回は、前回紹介してきたツールの中から「スナップショット・モニター」「DB2メモリー・トラッカー」に焦点をあてて、稼動情報の取得方法から情報の使い方を解説します。

   まずは、DB2の主な稼動情報とスナップショット・モニターで取得可能な情報を以下に示します。
主要な稼動情報
表1:主要な稼動情報
(画像をクリックすると別ウィンドウに拡大表示します)

注1: 接続の累計数の情報、および過去の最大接続数の情報は取得できません。
注2: 複数のバッファープールがある場合でも、合計量の情報のみ取得可能です。個別のバッファープールごとに情報を得るためには、バッファープール・スナップショットを利用します。
注3: 先読み処理での待ち時間、および先読みしたものの利用されなかったページ数についての情報が得られます。先読みしたページ数、および先読み実行時間については、データベース・スナップショットで取得します。
注4: 書出し処理の時間がわかります。書き出しのトリガーについての情報は、データベース・スナップショットで取得します。
注5: データベース・マネージャ・スナップショットでのみ、パイプ済みソートの情報が得られます。しかし、ソートオーバーフローの数、ソート時間、現在実行中のソート数の情報は得られません。
注6: ソート数、ソートオーバーフロー、ソート時間合計のみがわかります。
注7: SQLの種類ごと(動的/静的、あるいはSELECTおよびUPDATE/INSERT/DELETE)ごとに実行数わかります。
注8: SQL文ごとに実行数、コンパイル数(最適化を実施した回数)がわかります。


各稼動情報について

   データベース・スナップショットを中心に、各稼動情報について解説します。これらの情報は、パフォーマンス分析・チューニングに必須の情報であるため、普段から記録を取っておく必要があります。そして、チューニングが必要な状況となった場合に、この記録の値と現在の値を比較し、問題点を調査します。


   スナップショットで得られる値には、大きく3種類存在します。


現在値
スナップショットを実行した時点での値。
累積値
データベースを活動化してから、あるいは、モニター項目をリセット ( たとえば、reset monitor all コマンドを実行)してから、スナップショット実行時点までの累積した実行値(回数、読取り・書込み量など)。この項目のある特定時間帯の状況を知るためには、その時間帯の少なくとも2回のスナップショットから差分値を取得する必要があります。
水準値
データベースを活動化してから、スナップショット実行時点までの、最高水準値あるいは最低水準値。この項目は、通常、モニター項目をリセットしても、値はリセットされません。

表2:スナップショットで得られる値


接続

   インデックスを利用して少ない行数をアクセスするシンプルなSQLの処理と比べると、接続処理はかなり負荷が高い(CPU)処理となります。頻繁に接続を繰り返すような場合には、全体の性能に影響をおよぼす場合があります。

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

  • 接続用最高水準点(水準値)
  • アプリケーション接続(累積値)
  • 2次接続合計(累積値)
  • 現在のアプリケーション接続(現在値)
  • DBマネージャーで現在実行中のアプリケーション(現在値)
  • アプリケーションに関連したエージェント(現在値)
  • アプリケーションに関連した最大エージェント(現在値)
  • 最大コーディネーター・エージェント(水準値)

表3:データベース・スナップショットで取得できる情報

   これらのうち、アプリケーション接続は累計値のため、あるインターバルでデータベース・スナップショットを取得することにより、時間帯ごとの新規接続数を把握することが可能です。


バッファプール〜ヒット率

   データベース・スナップショットでは、以下のように、データ、インデックス、一時表スペースごとに、ヒット率を確認することができます。バッファプール・スナップショットでは、さらにバッファプールごとに同様の情報を入手できます。

  • バッファ・プール・データ論理読み取り(累積値)
  • バッファ・プール・データ物理読み取り(累積値)
  • バッファ・プール一時データ論理読み取り(累積値)
  • バッファ・プール一時データ物理読み取り(累積値)
  • バッファ・プール索引論理読み取り(累積値)
  • バッファ・プール索引物理読み取り(累積値)
  • バッファ・プール一時索引論理読み取り(累積値)
  • バッファ・プール一時索引物理読み取り(累積値)
  • バッファ・プール読み取り時間の合計(ミリ秒、累積値)

表4:取得できるバッファ・プールのヒット情報

   ここでの論理読み取りは、総読み取り要求をあらわします。よって、ヒット率は以下のように計算します。

バッファ・プール・データのヒット率の計算式
図1:バッファ・プール・データのヒット率の計算式

   バッファ・プールヒット率は、性能に大きな影響を与えるため、ヒット率の監視は重要です。

   読み取りページ数は累積値となるため、ある時間帯の性能を調査するためには、最低でも2回スナップショットを取り、差分値を使ってヒット率を計算する必要があります。

1   2  3  4  次のページ


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


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