4 リアルタイムなデータベースのパフォーマンスの監視
自動データベース診断モニター(ADDM)は、 「データベースのパフォーマンスの自動監視」で説明しているように、データベースでパフォーマンスの問題を自動的に識別します。パフォーマンスの情報は、Oracle Enterprise Manager Cloud Control (Cloud Control)の「パフォーマンス」ページに表示されます。
「パフォーマンス」ページからその他のページにドリルダウンして、リアルタイムのデータベースのパフォーマンスの問題を識別できます。問題を検出した場合は、ADDMを手動で実行して、次のADDM分析を待たずにすぐにその問題を分析できます。ADDMを手動で実行する方法は、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。
この章では、データベース・アクティビティのいくつかの側面の監視方法について説明します。内容は次のとおりです。
4.1 ユーザー・アクティビティの監視
「Oracle Databaseパフォーマンス・メソッド」で説明しているように、データベース時間(DB時間)は、データベース・インスタンスのワークロードの合計の指標です。ある期間の平均アクティブ・セッションとは、期間中のすべてのユーザー・セッションの合計データベース時間を、期間の経過時間(wall-clock時間)で割った数値です。
「パフォーマンス」ページの「平均アクティブ・セッション」グラフには、期間のCPU使用率および待機クラスの平均アクティブ・セッションが表示されます。 Oracle Databaseパフォーマンス・メソッド で説明されているパフォーマンス・メソッドに従って、グラフからドリルダウンしてパフォーマンスの問題に関連するインスタンスの原因を識別して、解決できます。
ユーザー・アクティビティの監視手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
「平均アクティブ・セッション」積上げ面グラフの任意のスパイクまたは他の興味のある領域を特定します。
図4-1は、「パフォーマンス」ページの「平均アクティブ・セッション」グラフの例を示しています。
積上げ面グラフの色付きの各領域には、指定された期間の指定されたイベントの平均アクティブ・セッションが表示されます。グラフで、各イベントの平均アクティブ・セッション量は、その下に積み上げられています。イベントは凡例に示されている順序でグラフに表示され、CPUはY軸でゼロから開始し、他のイベントはCPU待機からその他に昇順で積み上げられます。待機クラスでは、ディスクI/Oなどのリソースに対する待機によって、どのくらいのデータベース・アクティビティが使用されているのかが表示されます。
たとえば、図4-1では、午後1時26分前後に、5つのイベント(「CPU」、「CPU待機」、「スケジューラ」、「並行性」および「その他」)がサンプリングされた時間間隔でデータベース時間を消費しています。結合した平均アクティブ・セッションの合計は、2.1です。平均アクティブ・セッション値はCPUでは約1.52、CPU待機では約.38、スケジューラでは約.03、並行性では約.16、その他では約.01です。
Y軸の2の「CPUコア」ラインは、ホスト・システムのCPU数を示します。「CPU」の値が「CPUコア」のラインに達した場合は、データベース・インスタンスがシステムのCPU時間を100%消費しています。
図4-1では、グラフによって、ほとんどのアクティビティが1時20分から1時28分および1時53分前後から2時20分の間に発生していることがわかります。1時20分から1時28分の間のほとんどのアクティビティおよび1時59分以降のほとんどのアクティビティは、CPUの使用でした。待機クラスのアクティビティでは、1時56分から2時12分の間に数回スパイクが発生し、1時52分前後から2時8分前後の間に大量のデータベース時間を消費しています。
-
各待機クラスを識別するには、クラスに対応する「平均アクティブ・セッション」グラフの領域にカーソルを移動します。
対応する待機クラスは、グラフの凡例で強調表示されます。
-
グラフで最大の色付きの領域または凡例で対応する待機クラスをクリックして、最大のアクティブ・セッションを含む待機クラスにドリルダウンします。
「CPU」または「CPU待機」をクリックすると、「実行中のアクティブ・セッション: CPU + CPU待機」ページが表示されます。「ユーザーI/O」などの、異なった待機クラスをクリックした場合、その待機クラスの「待機中アクティブ・セッション」ページが表示されます。図4-2は、「実行中のアクティブ・セッション: CPU + CPU待機」ページを示しています。
実行中のアクティブ・セッション・ページには、1時間の時間軸が表示されます。各待機クラスの詳細は、「選択した5分間隔の詳細」の下に5分間隔で表示されます。
異なったディメンションで待機クラスの詳細を確認できます。次のいずれかの項を続行します。
-
選択した間隔で時間を変更するには、グラフの影付き領域を異なった間隔にドラッグします。
「選択した5分間隔の詳細」セクションに含まれる情報は、選択した時間間隔を表示するよう自動的に更新されます。
図4-2の例では、CPUおよびCPU待機クラスで9時59分から10時4分までの5分間隔が選択されています。
-
パフォーマンスの問題を検出した場合、リアルタイムでその問題を解決できます。「パフォーマンス」ページで次のいずれかを実行します。
-
「平均アクティブ・セッション」グラフの下で、パフォーマンスの問題が発生した時間と一致するスナップショットをクリックしてこの期間のADDMを実行します。
ADDM分析の詳細は、「自動データベース診断モニターの分析の確認」を参照してください。
-
「ADDMの即時実行」をクリックしてスナップショットを手動で作成します。
手動でのスナップショットの作成の詳細は、「スナップショットの作成」を参照してください。ADDMを手動で実行する方法については、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。
-
「ASHレポートの実行」をクリックしてアクティブ・セッション履歴(ASH)レポートを作成し、発生期間が短い一時的なパフォーマンスの問題を分析します。
ASHレポートの詳細は、「アクティブ・セッション履歴レポート」を参照してください。
-
4.1.1 上位SQLの監視
実行中のアクティブ・セッション・ページでは、「実行中の上位SQL」表に、CPUリソースを消費して積極的に実行しているSQL文のデータベース・アクティビティが表示されます。「アクティビティ(%)」列には、各SQL文が消費するアクティビティの割合が表示されます。1つまたは複数のSQL文がアクティビティの大部分を使用している場合、該当するSQL文を調査する必要があります。
実行中の上位SQL文の監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある「CPU」または「CPU待機」領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「実行中の上位SQL」表で、最もアクティブなSQL文の「SQL ID」リンクをクリックします。たとえば、図4-2では、ほとんどのアクティブなSQL文のSQL IDは
ddthrb7j9a63f
です。「SQLの詳細」ページが表示されます。
待機時間の大部分を消費しているSQL文について、「SQLチューニング・アドバイザ」を使用するか、SQLチューニング・セットを作成して、問題のSQL文をチューニングします。
4.1.2 上位セッションの監視
セッションは、データベース・インスタンス・メモリー内の論理的なエンティティで、データベースに対する現在のユーザー・ログインの状態を表します。セッションは、ユーザーがデータベースにログインしてから切断するまで続きます。たとえば、SQL*Plusを開始したとき、ユーザーはセッションを確立するために有効なデータベースのユーザー名およびパスワードを提供する必要があります。単一のセッションがデータベース・アクティビティの大部分を使用している場合、そのセッションを調べる必要があります。
実行中の上位セッションの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある「CPU」または「CPU待機」領域または凡例に対応する待機クラスをクリックします。
図4-2に示すように、「実行中のアクティブ・セッション: CPU + CPU待機」ページが表示されます。
-
「実行中の上位セッション」セクションの「選択した5分間隔に対する詳細」の下で、「ビュー」リストから「上位セッション」を選択します。
「実行中の上位セッション」表が表示されます。表には選択した期間時、対応する待機クラスを待つ上位のセッションが表示されます。
-
「実行中の上位セッション」表で、最大のデータベース・アクティビティを使用しているセッションの「セッションID」リンクをクリックします。
セッションの詳細ページが表示されます。
このページには、セッション・アクティビティ、セッション統計、オープン・カーソル、ブロックしているセッション、待機イベント履歴および選択したセッションのパラレルSQLなどの情報が含まれています。
セッションが過剰にデータベース・アクティビティを消費している場合、「セッションの中断」をクリックしてSQL文をチューニングすることを検討してください。
参照:
4.1.3 上位サービスの監視
サービスは共通の属性、サービス・レベルのしきい値、優先度を持つアプリケーション・グループです。たとえば、SYS$USERS
サービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。SYS$BACKGROUND
サービスは、すべてのデータベースのバックグラウンド・プロセスで構成されています。サービスが待機時間の大部分を使用している場合、そのサービスを調べる必要があります。
サービスの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位サービス」を選択します。
「上位サービス」表が表示されます。
「上位サービス」表は、選択した時間間隔中に対応した待機イベントを待機している上位サービスを表示します。たとえば、図4-3では、
SYS$USERS
サービスがデータベース・アクティビティの86.47%を使用しています。 -
最もアクティブなサービスの「サービス」リンクをクリックします。
「サービス」ページが表示されます。
このページには、選択したサービスのモジュール、アクティビティおよび統計に関する情報が含まれます。
4.1.4 上位モジュールの監視
「モジュール」は、ワークロードの定義の一部としてサービス名を設定するアプリケーションを示します。たとえば、DBMS_SCHEDULER
モジュールはSYS$BACKGROUND
サービスで実行するジョブを割り当てます。単一のモジュールを待機時間の大部分で使用する場合、そのモジュールを調べる必要があります。
モジュールの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位モジュール」を選択します。
「上位モジュール」表が表示されます。
「上位モジュール」表は、選択した時間間隔中に対応した待機イベントを待機している上位モジュールを表示します。たとえば、図4-4では、SQL*Plusモジュールが、データベース・アクティビティの84%以上を使用しているため、これを調査する必要があります。図4-2に示すように、データベース・アクティビティの大半は、ユーザー
HR
のSQL*Plusセッションによって使用されています。 -
アクティビティの割合が最も高いモジュールの「モジュール」リンクをクリックします。
「モジュール」ページが表示されます。
このページには、選択したモジュールのアクション、アクティビティおよび統計が含まれています。
4.1.5 上位アクションの監視
「アクション」は、モジュールで実行されたジョブを示します。たとえば、DBMS_SCHEDULER
モジュールはGATHER_STATS_JOB
アクションを実行して、すべてのデータベース・オブジェクトで統計を採取します。単一のアクションが待機時間の大部分を使用している場合、そのアクションを調べる必要があります。
アクションの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位アクション」を選択します。
「上位アクション」表が表示されます。
「上位アクション」表は、選択した時間間隔中に対応した待機イベントを待機している上位アクションを表示します。たとえば、図4-5では、SQL*Plusモジュールに関連する
SALES_INFO
アクションがデータベース・アクティビティの40.3%、EMP_DML
が39.55%、EMP_Query
が4.48%を使用しています。この情報は、ユーザーHR
のデータベース・セッションがデータベース・アクティビティの82%以上を使用していることを示す図4-2と一致します。 -
最もアクティブなアクションの「アクション」リンクをクリックします。
「アクション」ページが表示されます。
このページには、選択したアクションの統計が含まれています。
4.1.6 上位クライアントの監視
クライアントは、データベースで操作を実行するリクエストを開始するWebブラウザまたはクライアント・プロセスです。単一のクライアントが待機時間の大部分を使用している場合、そのクライアントを調べる必要があります。
クライアントの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位クライアント」を選択します。
「上位クライアント」表が表示されます。
「上位クライアント」表は、選択した時間間隔中に対応した待機イベントを待機している上位クライアントを表示します。たとえば、図4-6では、client1およびclient2が、データベース・アクティビティの大部分を消費しています。
-
最もアクティブなクライアントの「クライアントID」リンクをクリックします。
「クライアント」ページが表示されます。
このページには、選択したユーザー・プロセスの統計が含まれています。
4.1.7 上位PL/SQLの監視
PL/SQLサブプログラムの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある色付きの領域または凡例に対応する待機クラスをクリックします。
実行中のアクティブ・セッション・ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位PL/SQL」を選択します。
「上位PL/SQL」表が表示されます。
「上位PL/SQL」表は、選択した時間間隔中に対応した待機イベントを待機している上位PL/SQLサブプログラムを表示します。たとえば、図4-7では、
SYS.DBMS_AQ.LISTEN#2
サブプログラムがデータベース・アクティビティの100%を使用しています。 -
最もアクティブなサブプログラムの「PL/SQLサブプログラム」リンクをクリックします。
「PL/SQLサブプログラム」ページが表示されます。
このページには、選択したサブプログラムの統計が表示されます。
4.1.8 上位ファイルの監視
ファイルの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」領域または凡例に対応する待機クラスをクリックします。
「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位ファイル」を選択します。
「上位ファイル」表が表示されます。
「上位ファイル」表は、選択した時間間隔中に指定したファイルの平均待機時間を表示します。たとえば、図4-8では、待機時間の75%が
SYSTEM
およびSYSAUX
の表領域のファイルに対するI/Oに関連しています。 -
最大平均待機時間を含むファイルの「表領域」リンクをクリックします。
「表領域の表示」ページが表示されます。
4.1.9 上位オブジェクトの監視
オブジェクトの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
「アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」領域または凡例に対応する待機クラスをクリックします。
「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。
-
「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位オブジェクト」を選択します。
「上位オブジェクト」表が表示されます。
「上位オブジェクト」表は、選択した時間間隔中に対応した待機イベントを待機している上位データベース・オブジェクトを表示します。
たとえば、図4-9は、待機時間の84%以上が名前の不明なオブジェクトによるものであることを示しています。図4-2の情報に基づいて、パフォーマンスの問題が問合せおよび変更DML文によって発生していると判断できます。
-
最大平均待機時間を含むオブジェクトの「オブジェクト名」リンクをクリックします。
オブジェクトの「表示」ページが表示されます。
4.2 インスタンス・アクティビティの監視
「パフォーマンス」ページの「平均アクティブ・セッション」グラフの下に、データベース・インスタンス・アクティビティを監視するために使用できる他のグラフがあります。「「データベース・パフォーマンス」ページのカスタマイズ」で説明しているように、「パフォーマンス」ページをカスタマイズして、デフォルトで最も有効なインスタンス・アクティビティ・グラフを表示できます。
インスタンス・アクティビティ・グラフを使用して、次のタスクを実行できます。
4.2.1 スループットの監視
データベース・スループットによって、時間の単位にデータベースが実行する作業量を測定できます。「スループット」グラフは「平均アクティブ・セッション」グラフで使用する競合を表示します。
「スループット」グラフのピークを「平均アクティブ・セッション」グラフのピークと比較します。「平均アクティブ・セッション」グラフに待機中のセッションが多数表示され、内部的な競合が示されている場合でも、スループットが高ければ、状況は許容できる可能性があります。内部的な競合が低く、スループットが高い場合も、データベースはおそらく効率よく実行されています。一方、内部的な競合が高くスループットが低い場合は、データベースのチューニングを検討してください。
スループットの監視手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
「スループット」タブをクリックします。
-
次の「インスタンス・スループット率」オプションのいずれかを選択します。
-
1秒当たり
2つのグラフが表示されます。1つは1秒当たりのログオンおよびトランザクションの数を表示し、もう1つは1秒当たりの物理読取りおよびREDOサイズを表示します。
図4-10は、「1秒当たり」の「インスタンス・スループット率」が選択された「スループット」グラフを示しています。図の真ん中の棒は、領域の考慮によって削除されたグラフの部分(1時37分から1時52分前後)を示しています。図4-10では、ほとんどのトランザクションが午後1時15分から午後1時27分および午後2時8分から午後2時12分の間に発生しています。
-
1トランザクション当たり
1トランザクション当たりの物理読取りおよびREDOサイズの数を示すグラフが表示されます。
-
4.2.2 I/Oの監視
「I/O」グラフは、すべてのデータベース・クライアントから収集したI/O統計を表示します。データベース・プロセスのI/O待機時間は、保留中のI/Oが完了した場合、プロセスが有効な動作を実行する時間を示します。Oracle Databaseは、均一な状態ですべての重要なI/OコンポーネントのI/O待機時間を取得して、OracleプロセスでのすべてのI/O待機時間がI/O統計から推論できるようにします。
「同期単一ブロック読取りの待機時間」グラフには、ブロック読取りにおいて認識された合計のI/O遅延が表示されており、I/Oリクエストが発行された時間と、転送の最初のバイトが到達した時間の差です。待機時間が10ミリ秒未満の場合は、ほとんどのシステムが正常に稼働しています。このタイプのI/Oリクエストは、次の理由から、I/Oパフォーマンスの最適なインジケータです。
-
記憶域の書込みキャッシュのため、書込み操作で良好なパフォーマンスを示します。
-
複数ブロックのI/Oリクエストのサイズが異なるため、それぞれにかかる時間は異なります。
-
非同期I/Oリクエストの待機時間は完全なI/O待機時間を表しません。
次の項の説明に従って、「I/Oブレークダウン」の選択に応じて、他のグラフが表示されます。
4.2.2.1 関数によるI/Oの監視
「I/Oファンクション」グラフにより、アプリケーションまたはジョブごとのI/O使用レベルが決定されます。コンポーネント・レベルの統計により、I/Oバンド幅使用状況の詳細が表示され、ジョブのスケジューリングおよびI/Oのプロビジョニングに使用できます。コンポーネント・レベルの統計は次のカテゴリに分類されます。
-
バックグラウンド・タイプ
このカテゴリには、ARCH、LGWRおよびDBWRが含まれます。
-
アクティビティ
このカテゴリには、XDB、Streams AQ、データ・ポンプ、リカバリおよびRMANが含まれます。
-
I/Oタイプ
このカテゴリには、次のI/Oタイプが含まれています。
-
ダイレクト書込み
この書込みは、バッファ・キャッシュ由来ではなく、フォアグラウンド・プロセスによって発行されます。
-
ダイレクト読取り
ダイレクト読取りは、バッファ・キャッシュを迂回して、データ・ブロックをプロセス専用メモリーに直接読み込む、データ・ファイルからの物理I/Oです。
-
バッファ・キャッシュ読取り
-
-
その他
このカテゴリには、制御ファイルのI/OのようなI/Oが含まれます。
関数によるI/Oの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
「同期単一ブロック読取りの待機時間」、「I/O MB/秒」および「I/Oリクエスト/秒」グラフが表示されます。
-
「I/Oブレークダウン」で、「I/Oファンクション」を選択します。
「ファンクションごとのI/O MB/秒」グラフと「ファンクションごとのI/Oリクエスト数/秒」グラフが表示されます。
図4-11の例は、ログ・ライターによって大量のI/Oが実行されていることを示しています。ログ・ライターのアクティビティのピークは、約600 I/Oリクエスト/秒です。
-
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「I/OファンクションごとのI/Oスループット」ページが選択したカテゴリの詳細とともに表示されます。
I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。
参照:
-
ARCH、LGWR、DBWRなどのデータベース・バックグラウンド・プロセスの詳細は、『Oracle Database概要』を参照してください。
4.2.2.2 タイプ別のI/Oの監視
「I/Oタイプ」グラフにより、読取りおよび書込み操作のタイプ別にI/Oを監視できます。小規模I/Oとは128KBより小さいリクエストで、通常、単一のデータベース・ブロックのI/O操作です。大規模I/Oとは、128KB以上のリクエストです。大規模のI/Oは、表または索引のスキャン、ダイレクト・データ・ロード、バックアップ、リストア、アーカイブなどのデータベース操作によって生成されます。
OLTP環境などでトランザクションの時間を軽減するために最適化する場合は、小規模I/Oの待機時間を監視します。待機時間が長いということは、通常、ストレージ・システムがボトルネックであることを示します。
データ・ウェアハウス内にあるような大規模な問合せを最適化する場合、パフォーマンスはI/Oリクエストの待機時間ではなく、ストレージ・システムが実現できる最大のスループットに依存します。この場合、同期単一ブロックのI/O待機時間ではなくI/O MB/秒が監視されます。
タイプ別のI/Oの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。
-
「I/Oブレークダウン」で、「I/Oタイプ」を選択します。
「I/OタイプごとのI/O MB/秒」グラフと「I/OタイプごとのI/Oリクエスト数/秒」グラフが表示されます。
前のサンプル・グラフでは、1秒当たりの小規模の書込み数が600を超えています。これらの書込みは、図4-11に示されるログ・ライターのI/Oリクエストに対応しています。
-
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「I/O詳細」ページが表示されます。
I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。
4.2.2.3 コンシューマ・グループ別のI/Oの監視
Oracle Database Resource Managerが使用可能である場合は、データベースにより、現在有効なリソース・プランに含まれるコンシューマ・グループ全体のI/O統計が収集されます。「コンシューマ・グループ」グラフを使用すると、I/Oをコンシューマ・グループ別に監視できます。
リソース・プランでは、リソースを様々なユーザー(リソース・コンシューマ・グループ)間で分散する方法を指定します。リソース・コンシューマ・グループを使用して、ユーザー・セッションをリソース要件ごとに構成できます。_ORACLE_BACKGROUND_GROUP_
コンシューマ・グループには、バックグラウンド・プロセスにより発行されたI/Oリクエストが含まれることに注意してください。
コンシューマ・グループ別のI/Oリクエストの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
インスタンス・アクティビティ・グラフで、「I/O」をクリックします。
I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。
-
「I/Oブレークダウン」で、「コンシューマ・グループ」を選択します。
「コンシューマ・グループごとのI/O MB/秒」グラフおよび「コンシューマ・グループごとのI/Oリクエスト数/秒」グラフが表示されます。
4.2.3 パラレル実行の監視
「パラレル実行」グラフには、パラレル問合せに関連するシステム・メトリックが表示されます。メトリックは、単位当たりの統計数値です。この単位には、秒数などの時間尺度、トランザクションまたはセッションを指定できます。
パラレル問合せでは、SQL文を実行する作業が複数のプロセスに分割されます。グラフには、サンプル・セッション・アクティビティの最も高い割合を占める待機イベントを待機していたパラレル問合せが表示されます。
パラレル実行の監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
インスタンス・アクティビティ・グラフで、「パラレル実行」をクリックします。
「パラレル実行」グラフが表示されます。
2つのペアのグラフが表示されます。最初のペアはY軸上のセッションの数を示し、2番目のペアはY軸上の秒単位の率を示します。
図4-12の例では、問合せのパラレル化が午後12時30分から午後4時までアクティブでした。
4.2.4 サービスの監視
「サービス」は共通の属性のアプリケーション・グループ、サービス・レベルのしきい値および優先度を示します。たとえば、SYS$USERS
サービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。
サービスの監視手順:
-
「パフォーマンス」ページにアクセスします(「ユーザー・アクティビティの監視」を参照)。
-
インスタンス・アクティビティ・グラフで、「サービス」をクリックします。
「サービス」グラフが表示されます。「サービス」グラフには、表示中の期間における、対応する待機イベントについて待機しているサービスが表示されます。アクティブ・セッションのみが表示されます。
図4-13では、
SYS$USERS
サービスに最大数のアクティブ・セッションがあります。 -
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するサービスをクリックして、アクティブ・セッションが最も多いサービスにドリルダウンします。
「サービス」ページが表示され、「アクティビティ」サブページが表示されます。
このページでは、サービスに関連付けられたすべての待機クラスに対するセッション負荷を示すリアルタイム・データを参照できます。
4.3 ホスト・アクティビティの監視
パフォーマンス・ページの「ホスト」表に、データベースのホスト・システムの使用状況に関する情報が表示されます 。
ホスト・システムにデータベースを実行するために十分な使用可能なリソースがあるかどうかを確認するには、使用するCPU、メモリーおよびディスクのリソースの量に対する適切な要件を確立します。次に、データベースによりこれらのリソースが過剰に消費されていないかどうかを確認できます。
CPU、メモリーおよびディスク使用率の詳細の表示手順:
-
「ターゲット」メニューから「ホスト」を選択します。
ホスト・ページが表示されます。
-
ホストのリストで、データベースが存在するホストの名前をクリックします。
ホスト名ページが表示されます。ホスト名とは、ホストの名前です。
-
十分なリソースが使用可能かどうか、またシステムにより過剰なリソースが使用されているかどうかを確認します。
たとえば、次の場合にデータベースにより使用されるCPU、メモリーおよびディスクのリソースの量を確認します。
-
システムがアイドル状態(データベースのアクティビティがほとんど存在しないか、データベース以外のアクティビティが存在する)の場合
-
平均ワークロード
-
ピーク・ワークロード
システムのリソース使用率のレベルを評価する場合、ワークロードは重要なファクタです。ワークロードのピーク時に、CPUに10パーセントのアイドル時間および待機時間があり、リソースの使用率が90パーセントの場合、許容範囲内です。ただし、通常のワークロードにおいて、システムが高い使用率を表示するような場合は、追加のワークロードのための容量はありません。
次のタスクを実行して、データベースのホスト・アクティビティを監視します。
-
-
パフォーマンス・メトリックに対する適切なしきい値を設定すると、これらのしきい値を超えた場合、システムにより自動的にアラートが生成されます。
メトリックのしきい値の設定については、「パフォーマンス・アラートのメトリックしきい値の設定」を参照してください。
4.3.1 CPU使用率の監視
CPUの問題に対処するには、まずシステムに必要なCPUリソースの量を適切に予測します。次に、十分なCPUリソースが使用可能であるかどうかを判断し、システムがリソースを過剰に使用している時期を確認します。この項では、CPU使用率を監視する方法について説明します。
CPU使用率を監視するには、次のステップを実行します。
-
ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。
-
「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
「CPU詳細」ページが表示されます。
このページには、CPU使用率、I/O待機および最近1時間の負荷に関する統計が含まれます。上位10のプロセスは、CPU使用率に基づいてリストされます。
-
「CPU使用率」グラフを使用して、現在のCPU使用率を確認します。
「CPU使用率」グラフには、過去1時間半のCPU使用率が表示されています。現在の値はグラフの下に表示されます。標準のワークロード時には、この値がクリティカルなしきい値を超えることはありません。
-
「CPU使用率」をクリックします。
「CPU使用率」ページが表示されます。
このページには、過去24時間に生成されたCPU使用率統計および関連アラートが表示されます。
次の例では、午後12時28分にCPU使用率に約8%から89.49%への急激なスパイクが発生しています。これは警告しきい値の80%を超えています。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUパフォーマンスの問題を調査する必要があります。
-
「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
-
「CPU I/O待機」グラフを使用して、現在のCPU I/O待機時間を確認します。
「CPU I/O待機」グラフには、過去1時間半のCPU I/O待機時間が表示されています。現在の値はグラフの下に表示されます。通常のワークロード時にはCPU I/O待機の値は警告のしきい値を超えません。
-
「CPU I/O待機」をクリックします。
「I/O待機内のCPU」ページが表示されます。
このページには、CPU I/O待機統計および24時間以内に生成された関連するアラートが含まれます。
この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、CPUパフォーマンスに問題がある場合があります。
-
「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
-
「CPU負荷」グラフを使用して、現在のCPU使用率を確認します。
「CPU負荷」グラフには、過去1時間半のCPU負荷が表示されています。現在の値はグラフの下に表示されます。標準のワークロード時には、CPU負荷の値が警告のしきい値を超えることはありません。
CPU負荷は前のCPUリソースでスケジュールを設定された待機中の平均プロセス数、または時間の経過によるCPUの競合時間のレベルを表します。
-
「CPU負荷」をクリックします。
実行キューの長さ(5分平均)ページが表示されます。
このページには、CPU負荷の統計および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUのパフォーマンスに問題がある場合があります。
-
「CPU詳細」ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
-
「上位10プロセス(CPU順)」表を確認します。
プロセスがCPU使用率を過剰に消費する場合、そのプロセスを調査します。
次の例では、2つのデータベース・プロセスがCPU使用率の87.6%を使用しています。このため、潜在的なCPUのパフォーマンスの問題の原因はデータベースである可能性が高く、調査が必要です。
参照:
-
CPUの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
-
Oracle Database Resource Managerの詳細は、『Oracle Database管理者ガイド』を参照してください。
4.3.2 メモリー使用率の監視
オペレーティング・システムのパフォーマンスの問題は、一般にプロセス管理、メモリー管理およびスケジューリングに関係します。この項では、メモリー使用率を監視し、ページングやスワッピングなどの問題を識別する方法について説明します。
メモリー使用率を監視するには、次のステップを実行します。
-
ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。
-
「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。
メモリーの詳細・ページが表示されます。
このページには、メモリー使用率、ページ・スキャン率および最近1時間のスワップ使用量に関する統計が含まれます。上位10のプロセスもメモリー使用率順にリストされます。図4-15は、「メモリーの詳細」ページの一部を示しています。「上位10プロセス(メモリー順)」セクションは表示されません。
-
「メモリー・ページ・スキャン率」グラフを使用して、現在のメモリー・ページ・スキャン率を確認します。
メモリー・ページ・スキャン率の現在の値がグラフの下に表示されます。UNIXおよびLinuxでは、この値は1秒当たりにスキャンされるページの平均数を表します。Microsoft Windowsでは、困難なページ・フォルトの解決のためにディスクから読み込まれるまたはディスクに書き込まれるページの率を表します。この値は、システム規模の遅延を引き起こす可能性のあるフォルトの主要なインジケータとなります。
-
「メモリー・スキャン率(ページ/秒)」をクリックします。
「メモリー・ページ・スキャン率」ページが表示されます。
このページには、メモリー・ページ・スキャン率の統計および24時間以内に生成された関連アラートが含まれます。
この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「メモリー使用率」グラフを使用して、現在のメモリーの使用率を確認します。
「メモリー使用率」グラフは、メモリーの使用量を示します。メモリー使用率の現在の値はグラフの下に表示されます。標準のワークロード時には、この値が警告のしきい値(黄色で表示)を超えることはありません。
-
「メモリー使用率(%)」をクリックします。
「メモリー使用率」ページが表示されます。
このページには、過去24時間に生成されたメモリー使用率統計および関連アラートが表示されます。
この例では、メモリー使用率が80%を超えたため、「メトリック・アラート履歴」表に警告が表示されます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「スワップ使用率」グラフを使用して、現在のスワップ使用量を確認します。
「スワップ使用率」グラフは、スワップ領域の使用率を示します。スワップ使用率の現在の値はグラフの下に表示されます。通常のワークロード時には、この値が警告のしきい値を超えることはありません。
-
「スワップ使用率(%)」をクリックします。
「スワップ使用率」ページが表示されます。
このページには、過去24時間に生成されたスワップ使用率統計および関連アラートが表示されます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
「メモリーの詳細」ページに戻ります。「ホスト」メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「上位10プロセス(メモリー順)」表で上位のプロセスを確認します。
プロセスがメモリーを過度に多く占有する場合、このプロセスを調査する必要があります。
-
メモリー・パフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。
-
自動メモリー管理を使用して、システム・グローバル領域(SGA)と集計プログラム・グローバル領域(PGA集計)の間でメモリーを自動的に管理および分散します。
-
メモリー・アドバイザを使用してSGAおよびPGAのメモリー・ターゲット値を設定します。
-
自動PGA管理を使用してSQLメモリーの実行を管理します。
-
メモリーを大量に消費する多くのプロセスの実行を回避します。
-
ページングまたはスワッピングを削減します。
-
カーソル共有時のオープン・カーソルおよびハード解析の数を削減します。
-
参照:
-
自動メモリー管理の使用については、『Oracle Database管理者ガイド』を参照してください。
-
メモリーの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
4.3.3 ディスクI/O使用率の監視
データベースは一連のディスク上に存在するため、I/Oサブシステムのパフォーマンスは、データベースのパフォーマンスにとって非常に重要です。ディスクに関する重要な統計には、1秒当たりのディスクI/Oおよびサービス時間の長さが含まれます。これらの統計には、ディスクが最適な状態で実行されているかどうか、またはストレージ・システムが過負荷の状態にあるかどうかが表示されます。この項では、ディスクI/O使用率を監視する方法について説明します。
ディスクI/O使用率を監視するには、次のステップを実行します。
-
「ターゲット」メニューから「ホスト」を選択します。
ホスト・ページが表示されます。
-
ホストのリストで、データベースが存在するホストの名前をクリックします。
ホスト名ページが表示されます。ホスト名とは、ホストの名前です。
-
「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。
このページには、ディスクI/O使用率およびサービス時間統計、および使用されていた時間の割合ごとに表示される上位ディスク・デバイスが含まれます。
-
「全ディスクによる合計ディスクI/O」グラフを使用して、現在のディスクI/O使用率を確認します。
「全ディスクによる合計ディスクI/O」グラフに、1秒当たりに実行されるディスクI/Oの数が表示されます。1秒当たりの合計ディスクI/Oに対する現在の値はグラフの下に表示されます。図4-16の値は153.07です。
-
「全ディスクによる合計ディスクI/O(/秒)」をクリックします。
「全ディスクによる合計ディスクI/O(/秒)」ページが表示されます。
このページにはディスク使用率の統計、および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、標準のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。
-
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)グラフを使用して、現在のI/Oサービス時間を確認します。
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)グラフには、ディスクI/Oの最長サービス時間がミリ秒単位で表示されます。最長I/Oサービス時間に対する現在の値はグラフの下に表示されます。図4-16の値は、1.79です。
-
「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。
-
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)をクリックします。
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)ページが表示されます。
このページにはI/Oサービス時間の統計および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。
-
「ホスト」メニューから、「監視」、「ディスクの詳細」の順に選択します。
「ディスクの詳細」ページが表示されます。
-
ディスクの詳細ページの「上位ディスク・デバイス(ビジー順にソート)」表で、ディスク・デバイスを検証します。
特定のディスクがほとんどの時間でビジーになっている場合は、このディスクを調査する必要があります。
図4-16では、Oracle Databaseのホスト・ドライブ(xvdaおよびxvda1)へのアクセス時間がわずか12.14%および10.93%であるため、ディスクのパフォーマンスの問題はないと考えられます。
-
ディスクI/Oのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。
-
Oracle Automatic Storage Management(Oracle ASM)を使用してデータベース記憶域を管理します。
-
全データを全ディスクにストライプ化し、I/Oを分散します。
-
別のディスクにファイル(アーカイブREDOログ、REDOログなど)を移動します。
-
必要なデータをメモリーに保存して物理I/Oの数を削減します。
-
参照:
-
ディスクI/Oの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
4.4 データベース・アクティビティのスパイクの原因の確認
「パフォーマンス」ページにデータベース・アクティビティのスパイクが表示されている場合は、「ASH分析」ページにアクセスすると、多くのデータベース時間を消費しているセッションを特定することができます。このページには積上げ面グラフが表示され、待機クラス、モジュール、アクション、SQL ID、インスタンス、ユーザー・セッション、コンシューマ・グループなど、様々なディメンションのアクティブ・セッション・アクティビティを視覚的に確認できます。ディメンションの特定のメンバーにドリルダウン(垂直ズーム)したり、任意の期間にズーム・インまたはズーム・アウト(水平ズーム)できます。
アクティブ・セッション・アクティビティを「ASH分析」ページに表示する手順
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「ASH分析」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「ASH分析」ページが表示されます。
図4-17に、「ASH分析」ページの例を示します。
-
最上部のグラフ内の影付き領域を目的の期間にドラッグすることにより、選択した期間中のトップ・アクティビティの概要を表示します。
ヒント:
スライダのどちらかの端でコントロールを選択し、左または右にドラッグすることによって、影付きのスライダ領域の選択期間を変更することができます。
デフォルト設定の1時間の期間を選択することも、グラフ上のセレクタ・ボタンを使用して1日、1週間または1か月の各期間を選択することもできます。また、「カレンダ」または「カスタム」ボタンを使用して、事前設定された選択肢以外の期間を表示することもできます。
-
選択した期間をより詳細な視点で表示するには、このページのアクティビティ・グラフを使用します。デフォルトでは、待機クラスのワークロード・アクティビティのブレークダウンが表示されます。
-
システムに悪影響を与えているトップ・アクティビティ・セッションの詳細な統計を表示することにより、影響を調査します。
セッションの詳細な統計を表示する手順
-
グラフ内の最大スパイクか、グラフの横にある凡例内の対応する待機クラスを選択します。これにより、興味のある待機クラスを除くグラフ内のすべてがフィルタで除去されます。
たとえば、「並行性」待機クラスのスパイクが最大であったことがグラフに示されている場合は、「並行性」の凡例のグラフ領域を選択します。これにより、グラフがリフレッシュされ、「並行性」値のみが表示され、「フィルタ」バーに「待機クラス: 並行性」アイコンが表示されます。
ヒント:
フィルタの数は無制限に作成できます。
-
「アクティビティ」セッションで、ディメンション・リストから「トップ・ディメンション」を選択します。選択内容に応じてグラフがリフレッシュされ、選択した特定のカテゴリの値が表示されます。
たとえば、前述のように「並行性」のフィルタを作成した後、リストから「トップ・ディメンション」を選択し、次に「ユーザー・セッション」を選択すると、グラフに「並行性」のユーザー・セッションのみが表示されます。
図4-18は、選択した「トップ・ディメンション」でのアクティビティ・リストを示します。
-
-
オプションとして、システム・アクティビティのグラフィカル・ビューを表示するには、ロード・マップを使用します。
ロード・マップは、選択した期間内でアクティビティの変更を時系列で確認しない場合に1次元または多次元レイアウトのアクティビティを表示する際に役立ちます。
図4-19は、待機クラスと待機イベントによるアクティビティのロード・マップを示しています。
-
オプションとして、「保存」をクリックし、オフライン参照用のHTMLファイルとして現在のページ・ビューを保存します。「保存」をクリックすると、「別名保存」ダイアログ・ボックスが表示され、レポートの保存場所を指定できます。このアクションにより、分析の一部として現在収集されているすべてのデータを網羅するEnterprise Managerアクティブ・レポートが作成されます。後でこれを使用して、たとえば、より綿密な事後分析を実行できます。Cloud Controlまたはデータベース接続を使用しないでレポートを表示できます。
「メール」をクリックして、添付ファイルとしてページを送信する電子メール・アドレスも指定できます。
4.5 「データベース・パフォーマンス」ページのカスタマイズ
要件に対応できるように、「パフォーマンス」ページをカスタマイズできます。「インスタンス・アクティビティの監視」で説明されているように、「パフォーマンス」ページにデフォルトで表示するグラフおよびグラフの表示方法を指定できます。「スループット」グラフおよび「サービス」グラフにベースライン値を含めるかどうかも決定できます。
Cloud Controlには、リポジトリ内の各ユーザーの永続カスタマイズ情報が格納されます。パフォーマンス・ページにアクセスして設定を変更するまで残りのブラウザ・セッションに対してカスタマイズ・データをキャッシュする場合は、Cloud Controlによりカスタマイズ・データが取得されます。
「パフォーマンス」ページのカスタマイズ手順:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
「設定」をクリックします。
「「パフォーマンス」ページの設定」ページが表示されます。
-
「グラフの詳細設定」セクションで、インスタンス・アクティビティ・グラフの表示のデフォルトを選択します。手順は次のとおりです。
-
「デフォルトのビュー」で、「平均アクティブ・セッション」セクションにデフォルトで表示するインスタンス・アクティビティ・グラフを選択します。
「スループット」、「I/O」、「パラレル実行」および「サービス」の各グラフの説明は、「インスタンス・アクティビティの監視」を参照してください。
-
「スループット・グラフの設定」で、「スループット」グラフに表示するデフォルトのインスタンスのスループットの割合として、「1秒当たり」または「1トランザクション当たり」を選択します。
「スループット」グラフの使用方法は、「スループットの監視」を参照してください。
-
「I/Oグラフの設定」で、「I/O」グラフに表示するデフォルトのI/Oオプションを選択します。
「I/O」グラフの使用方法は、「I/Oの監視」を参照してください。
-
-
「ベースライン表示」セクションで、パフォーマンス・グラフでのAWRベースラインの表示方法を選択します。次のいずれかの操作を行います。
-
「ベースライン値を表示しない」を選択してベースラインを表示させないようにします。
-
「システム変動ウィンドウ・ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択して、「スループット」グラフおよび「サービス」グラフの表示のパーセンタイルを指定します。
-
「計算された統計を持つ静的ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択し、「ベースライン名」リストからベースライン名を選択します。
「ベースラインのしきい値統計の計算」の説明に従って、スケジュール統計の計算を経たベースラインのみ選択できます。
-
-
「OK」をクリックします。
「パフォーマンス」ページが表示されます。
カスタマイズ設定に従って、グラフが表示されます。