Monday, July 26, 2010

「ティパック」性能問題をトラブルシューティングする2つのフレーム

クイズであります。





1. オラクルで特定のセッション(あるいはシステム)の現在の状態をすぐにわかる一番良い方法はなんでしょうか。


2. オラクルで特定のセッション(あるいはシステム)が何をしているのかを追跡できる一番良い方法は何でしょうか。


性能問題を分析する2つのフレームで上の質問に対する私の答えを代わります。私はオラクル性能問題をトラブルシューティングする全てのツールと技法を次の2つのフレームに分けます。

  • スナップショット(Snapshot) - 特定の時点の作業の現在の状態を検索する方法
  • プロファイル(Profile) - 特定の作業を時間の流れで追跡する方法

例をあげていましょうか。

  • 10053診断イベント - オプティマイザの作業を時間の順序で追跡するプロファイル機能
  • V$SESSION_WAIT - セッションの待機状態を検索するスナップショット機能
  • Heap Dump - 特定のセッションやシステムの現在のメモリー使用程度を検索するスナップショット機能
  • System State Dump - システムの現在の状態を検索するスナップショット機能
  • Call Stack(oradebug dump callstack) - 特定のセッションの現在呼び出されているファンクションのコールツリーなのでスナップショットとプロファイルの中間性格
  • Active Session History - アクティブセッションのリストを秒あたり一度づつサンプリングしたことなのでスナップショットとプロファイルの中間性格

スナップショットデータを時間の流れによって全体あるいは一部をサンプリングしたらそれがプロファイルになります。スナップショットは特定の時点の状態をいみするので一番基本的なデータだと言えます。


スナップショットは特定の時点の状態を示しているから、ほとんど大部分差異(Delta)と比較(Diff)を通じてだけ意味を持ちます。AWRレポートをみればスナップショット間の値を差異(Delta)を計算してくれます。差異と比較を通じて直感的にシステムの現在の状態がわかります。


プロファイルは時間の流れによってデータを追跡する方式だから、ほとんど大部分集計と要約を通じてだけ意味を持ちます。10046イベントにより生成されたプロファイルデータをTKPROFレポートというツールを利用して集計して見るのが代表的な例です。


ティパックは上のような簡単明瞭なフレームの上で状況によって適当なスナップショットとプロファイルだけ存在すれば比較と要約を通じて大部分の性能問題をトラブルシューティングできるという考えに基づいています。これからブログを通じてより具体的な事例たちとともにオラクルで使用できる多様な技法たちを論議するようにします。

No comments:

Post a Comment