ヘッダーをスキップ
Oracle® Database 2日でパフォーマンス・チューニング・ガイド
11gリリース2(11.2)
B56313-03
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

4 リアルタイムなデータベースのパフォーマンスの監視

Oracle Enterprise Manager(Enterprise Manager)の「パフォーマンス」ページには、リアルタイムでデータベースの全体のパフォーマンスを評価するために使用できる3つのセクションの情報が表示されます。

図4-1は「パフォーマンス」ページを示しています。

図4-1 「パフォーマンス」ページ

図4-1の説明が続きます。
「図4-1 「パフォーマンス」ページ」の説明

一般的に、自動データベース診断モニター(ADDM)の自動診断機能を使用して、第3章「データベースのパフォーマンスの自動監視」で説明しているように、データベースでパフォーマンスの問題を識別します。場合によっては、リアルタイムでデータベースのパフォーマンスを監視して、パフォーマンスの問題が発生したときにそれらを識別します。たとえば、ADDMはデフォルトで1時間ごとの自動ワークロード・リポジトリ(AWR)・スナップショットの後、分析を実行します。ただし、「パフォーマンス」ページのデータベース・アクティビティで突然のスパイクに気づいた場合、次のADDM分析の前にインシデントを調査する必要があります。

「パフォーマンス」ページからその他のページにドリルダウンして、リアルタイムのデータベースのパフォーマンスの問題を識別できます。問題を検出した場合は、ADDMを手動で実行して、次のADDM分析を待たずにすぐにその問題を分析できます。ADDMを手動で実行する方法は、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。

この章の内容は次のとおりです。

ユーザー・アクティビティの監視

「パフォーマンス」ページの「平均アクティブ・セッション」グラフには、データベースの負荷の平均が示されます。ある期間の平均アクティブ・セッションは、その期間内のすべてのセッションの合計DB時間を、その期間の経過時間(実経過時間)で割った値に等しくなります。このグラフには、CPUで実行されているアクティブなセッションと、イベントを待機しているアクティブなセッションが示されています。

図4-2 ユーザー・アクティビティの監視

図4-2の説明が続きます。
「図4-2 ユーザー・アクティビティの監視」の説明

第2章「Oracle Databaseのパフォーマンス・メソッド」で説明されているパフォーマンス・メソッドに従って、グラフからドリルダウンしてインスタンスに関連するパフォーマンスの問題の原因を識別し、解決できます。

ユーザー・アクティビティの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. 「平均アクティブ・セッション」グラフで、急激な増大を確認します。

    各コンポーネントには、指定した時間内に指定した状態であったアクティブ・セッションの平均数が表示されます。たとえば、1つのセッションのみがアクティブであった場合、CPUの値が0.8であるとすると、ターゲット時間にサンプリングされた5回の時間(秒)のうち4回でセッションがCPUを使用したことを示します。最大CPU数はシステム上のCPU数と同じになります。「使用中のCPU」の値が「最大CPU」の線に到達している場合、そのホスト・システムでは、データベース・インスタンスがCPU時間の100%を使用しています。

    待機クラスでは、ディスクI/Oなどのリソースに対する待機によって、どのくらいのデータベース・アクティビティが使用されているのかが表示されます。アクティブ・セッションの大きなブロックを使用する値は、凡例で関連する色で示されている特定の待機クラスが原因のボトルネックを示します。

    図4-2に示すグラフでは、午後3:35以降のアクティビティの最大量が濃い緑色で表示されます。これは「使用中のCPU」待機クラスに対応しています。

  3. 各待機クラスを識別するには、クラスに対応する「平均アクティブ・セッション」グラフのブロックにカーソルを移動します。

    対応する待機クラスは、グラフの凡例で強調表示されます。

  4. グラフ上で最大のカラー・ブロックをクリックするか、または凡例内の対応する待機クラスをクリックして、アクティブ・セッション数が最も多い待機クラスにドリルダウンします。

    「使用中のCPU」をクリックした場合、その待機クラスに対する実行中のアクティブ・セッション・ページが表示されます。「ユーザーI/O」などの、異なった待機クラスをクリックした場合、実行中のアクティブ・セッション・ページが表示されます。

    図4-3 実行中のアクティブ・セッション・ページ

    図4-3の説明が続きます。
    「図4-3 実行中のアクティブ・セッション・ページ」の説明

    実行中のアクティブ・セッション・ページには、1時間の時間軸が表示されます。各待機クラスの詳細は、「選択した5分間隔の詳細」の下に5分間隔で表示されます。

    異なったディメンションで待機クラスの詳細を確認できます。次のいずれかの項を続行します。

  5. 選択した時間間隔を変更するには、グラフの下のスライダを異なった間隔に移動します。

    「選択した5分間隔の詳細」セクションに含まれる情報は、選択した時間間隔を表示するよう自動的に更新されます。

    図4-3の例では、「使用中のCPU」待機クラスで5時3分から5時8分までの5分間隔が選択されています。

  6. パフォーマンスの問題を検出した場合、リアルタイムでその問題を解決できます。「パフォーマンス」ページで次のいずれかを実行します。

上位SQLの監視

実行中のアクティブ・セッション・ページでは、「実行中の上位SQL」表に、CPUリソースを消費して積極的に実行しているSQL文のデータベース・アクティビティが表示されます。「アクティビティ(%)」列には、各SQL文が消費するアクティビティの割合が表示されます。1つまたは複数のSQL文がアクティビティの大部分を使用している場合、該当するSQL文を調査する必要があります。

図4-4 上位SQLの監視

図4-4の説明が続きます。
「図4-4 上位SQLの監視」の説明

図4-4の例では、単一のSELECT文が、データベース・アクティビティの47%以上を使用し、4つの変更DML文が約35%を使用しています。これらの文を調査する必要があります。

実行中の上位SQL文の監視手順: 

  1. 「パフォーマンス」ページの「アクティブ・セッション」グラフで、グラフにある「CPU」ブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「実行中の上位SQL」表で、最もアクティブなSQL文の「SQL ID」リンクをクリックします。

    「SQLの詳細」ページが表示されます。

    待機時間の大部分を使用しているSQL文に、「SQLチューニング・アドバイザ」を使用するか、SQLチューニング・セットを作成して、問題のSQL文をチューニングします。

上位セッションの監視

実行中のアクティブ・セッション・ページで、「実行中の上位セッション」表が、選択した時間間隔中に対応した待機クラスを待機している上位セッションを表示します。セッションは、データベース・インスタンス・メモリー内の論理的なエンティティで、データベースに対する現在のユーザー・ログインの状態を表します。

図4-5 上位セッションの監視

図4-5の説明が続きます。
「図4-5 上位セッションの監視」の説明

セッションは、ユーザーがデータベースにログインしてから切断するまで続きます。たとえば、SQL*Plusを開始したとき、ユーザーはセッションを確立するために有効なデータベースのユーザー名およびパスワードを提供する必要があります。単一のセッションがデータベース・アクティビティの大部分を使用している場合、そのセッションを調べる必要があります。

実行中の上位セッションの監視手順: 

  1. 「パフォーマンス」ページの「平均アクティブ・セッション」グラフで、グラフにある「使用中のCPU」ブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位セッション」を選択します。

    「実行中の上位セッション」表が表示されます。

  3. 「実行中の上位セッション」表で、最大のデータベース・アクティビティを使用しているセッションの「セッションID」リンクをクリックします。

    「セッションの詳細」ページが表示されます。

    このページには、セッション・アクティビティ、セッション統計、オープン・カーソル、ブロックしているセッション、待機イベントおよび選択したセッションのパラレルSQLなどの情報が含まれています。

    セッションが過度のデータベース・アクティビティを使用している場合は、「セッションの中断」をクリックしてセッションのSQL文のチューニングを行うことを検討します。

上位サービスの監視

「上位サービス」表は、選択した時間間隔中に対応した待機イベントを待機している上位サービスを表示します。

「サービス」は共通の属性のアプリケーション・グループ、サービス・レベルのしきい値および優先度を示します。たとえば、SYS$USERSサービスとは、サービス名を明示的に識別せずにユーザー・セッションを確立する場合に使用されるデフォルトのサービス名です。SYS$BACKGROUNDサービスは、すべてのデータベースのバックグラウンド・プロセスで構成されています。サービスが待機時間の大部分を使用している場合、そのサービスを調べる必要があります。

サービスの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにあるブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位サービス」を選択します。

    「上位サービス」表が表示されます。

    図4-6 上位サービスの監視

    図4-6の説明が続きます。
    「図4-6 上位サービスの監視」の説明

    図4-6の例では、SYS$USERSサービスがデータベース・アクティビティの86.47%を使用しています。このサービスは、図4-5に示されるユーザーhrおよびshのデータベース・セッションに対応しています。

  3. 最もアクティブなサービスの「サービス」リンクをクリックします。

    「サービス」ページが表示されます。

    このページには、選択したサービスのモジュール、アクティビティおよび統計に関する情報が含まれます。

上位モジュールの監視

「上位モジュール」表は、選択した時間間隔中に対応した待機イベントを待機している上位モジュールを表示します。

「モジュール」は、ワークロードの定義の一部としてサービス名を設定するアプリケーションを示します。たとえば、DBMS_SCHEDULERモジュールはSYS$BACKGROUNDサービスで実行するジョブを割り当てます。単一のモジュールを待機時間の大部分で使用する場合、そのモジュールを調べる必要があります。

モジュールの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにあるブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位モジュール」を選択します。

    「上位モジュール」表が表示されます。

    図4-7 上位モジュールの監視

    図4-7の説明が続きます。
    「図4-7 上位モジュールの監視」の説明

  3. アクティビティの割合が最も高いモジュールの「モジュール」リンクをクリックします。

    「モジュール」ページが表示されます。

    このページには、選択したモジュールのアクション、アクティビティおよび統計が含まれています。

    図4-7の例では、SQL*Plusモジュールが、データベース・アクティビティの84%以上を使用しているため、これを調査する必要があります。図4-5に示すように、データベース・アクティビティの大半は、ユーザーshおよびhrのSQL*Plusセッションによって使用されています。

上位アクションの監視

「上位アクション」表は、選択した時間間隔中に対応した待機イベントを待機している上位アクションを表示します。

「アクション」は、モジュールで実行されたジョブを示します。たとえば、DBMS_SCHEDULERモジュールはGATHER_STATS_JOBアクションを実行して、すべてのデータベース・オブジェクトで統計を採取します。単一のアクションが待機時間の大部分を使用している場合、そのアクションを調べる必要があります。

アクションの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにあるブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位アクション」を選択します。

    「上位アクション」表が表示されます。

    図4-8 上位アクションの監視

    図4-8の説明が続きます。
    「図4-8 上位アクションの監視」の説明

  3. 最もアクティブなアクションの「アクション」リンクをクリックします。

    「アクション」ページが表示されます。

    このページには、選択したアクションの統計が含まれています。

    図4-8の例では、SQL*Plusモジュールに関連するSALES_INFOアクションがデータベース・アクティビティの40.3%、EMP_DMLが39.55%、EMP_QUERYが4.48%を使用しています。この情報は、ユーザーHRおよびSHの2つのデータベース・セッションがデータベース・アクティビティの84%以上を使用していることを示す図4-5と一致します。

上位クライアントの監視

「上位クライアント」表は、選択した時間間隔中に対応した待機イベントを待機している上位クライアントを表示します。クライアントは、データベースで実行される操作のリクエストを開始するWebブラウザまたはクライアント・プロセスです。単一のクライアントが待機時間の大部分を使用している場合、そのクライアントを調べる必要があります。

クライアントの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにあるブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位クライアント」を選択します。

    「上位クライアント」表が表示されます。

    図4-9 上位クライアントの監視

    図4-9の説明が続きます。
    「図4-9 上位クライアントの監視」の説明

  3. 最もアクティブなクライアントの「クライアントID」リンクをクリックします。

    「クライアント」ページが表示されます。

    このページには、選択したユーザー・プロセスの統計が含まれています。

上位PL/SQLの監視

「上位PL/SQL」表は、選択した時間間隔中に対応した待機イベントを待機している上位PL/SQLサブプログラムを表示します。単一のPL/SQLサブプログラムが待機時間の大部分を使用する場合、そのPL/SQLサブプログラムを調べる必要があります。

PL/SQLサブプログラムの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにあるブロックまたは凡例に対応する待機クラスをクリックします。

    実行中のアクティブ・セッション・ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位PL/SQL」を選択します。

    「上位PL/SQL」表が表示されます。

    図4-10 上位PL/SQLの監視

    図4-10の説明が続きます。
    「図4-10 上位PL/SQLの監視」の説明

  3. 最もアクティブなサブプログラムの「PL/SQLサブプログラム」リンクをクリックします。

    「PL/SQLサブプログラム」ページが表示されます。

    このページには、選択したサブプログラムの統計が表示されます。

    図4-10では、SYS.DBMS_AQ.LISTEN#2サブプログラムがデータベース・アクティビティの100%を使用しています。

上位ファイルの監視

「上位ファイル」表は、選択した時間間隔中に指定したファイルの平均待機時間を表示します。このデータは「待機中アクティブ・セッション: ユーザーI/O」から使用できます。

ファイルの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」ブロックまたは凡例に対応した待機クラスをクリックします。

    「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位ファイル」を選択します。

    「上位ファイル」表が表示されます。

    図4-11 上位ファイルの監視

    図4-11の説明が続きます。
    「図4-11 上位ファイルの監視」の説明

  3. 最大平均待機時間を含むファイルの「表領域」リンクをクリックします。

    「表領域の表示」ページが表示されます。

    図4-11の例では、待機時間の75%がSYSTEMおよびSYSAUXの表領域のファイルに対するI/Oに関連しています。

上位オブジェクトの監視

「上位オブジェクト」表は、選択した時間間隔中に対応した待機イベントを待機している上位データベース・オブジェクトを表示します。このデータは「待機中アクティブ・セッション: ユーザーI/O」から使用できます。

オブジェクトの監視手順: 

  1. 「パフォーマンス」ページの、「平均アクティブ・セッション」グラフで、グラフにある「ユーザーI/O」ブロックまたは凡例に対応した待機クラスをクリックします。

    「待機中アクティブ・セッション: ユーザーI/O」ページが表示されます。

  2. 「選択した5分間隔の詳細」の下で、「ビュー」リストから「上位オブジェクト」を選択します。

    「上位オブジェクト」表が表示されます。

    図4-12 上位オブジェクトの監視

    図4-12の説明が続きます。
    「図4-12 上位オブジェクトの監視」の説明

  3. 最大平均待機時間を含むオブジェクトの「オブジェクト名」リンクをクリックします。

    オブジェクトの「表示」ページが表示されます。

    図4-12の例は、待機時間の84%以上が名前の不明なオブジェクトによるものであることを示しています。図4-4および図4-5の情報に基づいて、パフォーマンスの問題が問合せおよび変更DML文によって発生していると判断できます。

インスタンス・アクティビティの監視

「パフォーマンス」ページの「平均アクティブ・セッション」セクションで、インスタンス・グラフを使用してデータベース・インスタンスのアクティビティを監視できます。「データベース・パフォーマンス・ページのカスタマイズ」で説明しているように、パフォーマンス・ページをカスタマイズして、デフォルトで最も有効なグラフを表示できます。

インスタンス・アクティビティ・グラフを使用して、次のタスクを実行できます。

スループットの監視

データベース・スループットによって、時間の単位にデータベースが実行する作業量を測定できます。「スループット」グラフは「平均アクティブ・セッション」グラフで使用する競合を表示します。「パフォーマンス」ページの「スループット」グラフは次の項目を表示します。

  • 1秒当たりのログオン、トランザクション、物理読取りおよびREDOサイズの数

  • トランザクションごとの物理読取りおよびREDOサイズの数

図4-13 スループットの監視

図4-13の説明が続きます。
「図4-13 スループットの監視」の説明

「スループット」グラフのピークを「平均アクティブ・セッション」グラフのピークと比較します。「平均アクティブ・セッション」グラフに待機中のセッションが多数表示され、内部的な競合が示されている場合でも、スループットが高ければ、状況は許容できる可能性があります。内部的な競合が低く、スループットが高い場合も、データベースはおそらく効率よく実行されています。一方、内部的な競合が高くスループットが低い場合は、データベースのチューニングを検討してください。

スループットの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「スループット」をクリックします。

    「スループット」グラフは、「インスタンス・スループット率」がデフォルト値である「1秒当たり」に設定されて表示されます。「1トランザクション当たり」を選択して、1トランザクション当たりのスループット率を表示できます。

    図4-13に示す例では、1秒当たりのトランザクション数および物理読取り数が午後12:30ごろに上昇し、その状態が午後5時ごろまで続きました。

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ブレークダウン」の選択に応じて、他のグラフが表示されます。

関数によるI/Oの監視

「I/Oファンクション」グラフにより、アプリケーションまたはジョブごとのI/O使用レベルが決定されます。コンポーネント・レベルの統計により、I/Oバンド幅使用状況の詳細が表示され、ジョブのスケジューリングおよびI/Oのプロビジョニングに使用できます。コンポーネント・レベルの統計は次のカテゴリに分類されます。

  • バックグラウンド・タイプ

    このカテゴリには、ARCH、LGWRおよびDBWRが含まれます。

  • アクティビティ

    このカテゴリには、XML DB、Streams AQ、データ・ポンプ、リカバリおよびRecovery Managerが含まれます。

  • I/Oタイプ

    このカテゴリには、次のI/Oタイプが含まれています。

    • ダイレクト書込み

      この書込みは、バッファ・キャッシュ由来ではなく、フォアグラウンド・プロセスによって発行されます。

    • ダイレクト読取り

      ダイレクト読取りは、バッファ・キャッシュを迂回して、データ・ブロックをプロセス専用メモリーに直接読み込む、データ・ファイルからの物理I/Oです。

    • バッファ・キャッシュ読取り

  • その他

    このカテゴリには、制御ファイルのI/OのようなI/Oが含まれます。

関数によるI/Oの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。

    I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。

  3. 「I/Oブレークダウン」で、「I/Oファンクション」を選択します。

    「ファンクションごとのI/O MB/秒」グラフと「ファンクションごとのI/Oリクエスト数/秒」グラフが表示されます。

    図4-14の例は、ログ・ライターによって大量のI/Oが実行されていることを示しています。ログ・ライターのアクティビティのピークは、約500 I/Oリクエスト/秒です。

  4. グラフ上で最大のブロックをクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートの最も高いファンクションにドリルダウンします。

    「I/O詳細」ページが表示されます。

    I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。


参照:

  • ARCH、LGWR、DBWRなどのデータベース・バックグラウンド・プロセスの詳細は、『Oracle Database概要』を参照してください。


タイプ別のI/Oの監視

「I/Oタイプ」グラフにより、読取りおよび書込み操作のタイプ別にI/Oを監視できます。小規模I/Oとは128KBより小さいリクエストで、通常、単一のデータベース・ブロックのI/O操作です。大規模I/Oとは、128KB以上のリクエストです。大規模のI/Oは、表または索引のスキャン、ダイレクト・データ・ロード、バックアップ、リストア、アーカイブなどのデータベース操作によって生成されます。

perf_io_type.gifの説明が続きます。
perf_io_type.gifの説明

OLTP環境などでトランザクションの時間を軽減するために最適化する場合は、小規模I/Oの待機時間を監視します。待機時間が長いということは、通常、ストレージ・システムがボトルネックであることを示します。

データ・ウェアハウス内にあるような大規模な問合せを最適化する場合、パフォーマンスはI/Oリクエストの待機時間ではなく、ストレージ・システムが実現できる最大のスループットに依存します。この場合、同期単一ブロックのI/O待機時間ではなくI/O MB/秒が監視されます。

タイプ別のI/Oの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。

    I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。

  3. 「I/Oブレークダウン」で、「I/Oタイプ」を選択します。

    「I/OタイプごとのI/O MB/秒」グラフと「I/OタイプごとのI/Oリクエスト数/秒」グラフが表示されます。

    この例では、1秒当たりの小規模の書込み数が600を超えています。これらの書込みは、図4-14に示されるログ・ライターのI/Oリクエストに対応しています。

  4. グラフ上で最大のブロックをクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートの最も高いファンクションにドリルダウンします。

    「I/O詳細」ページが表示されます。

    I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。

コンシューマ・グループ別のI/Oの監視

Oracle Database Resource Managerが使用可能である場合は、データベースにより、現在有効なリソース・プランに含まれるコンシューマ・グループ全体のI/O統計が収集されます。「コンシューマ・グループ」グラフを使用すると、I/Oをコンシューマ・グループ別に監視できます。

リソース・プランでは、リソースを様々なユーザー(リソース・コンシューマ・グループ)間で分散する方法を指定します。リソース・コンシューマ・グループを使用して、ユーザー・セッションをリソース要件ごとに構成できます。_ORACLE_BACKGROUND_GROUP_コンシューマ・グループには、バックグラウンド・プロセスにより発行されたI/Oリクエストが含まれることに注意してください。

perf_io_consum.gifの説明が続きます。
perf_io_consum.gifの説明

コンシューマ・グループ別のI/Oリクエストの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「I/O」をクリックします。

    I/O MB/秒のグラフおよび「1秒当たりのI/Oリクエスト」グラフが表示されます。

  3. 「I/Oブレークダウン」で、「コンシューマ・グループ」を選択します。

    「コンシューマ・グループごとのI/O MB/秒」グラフおよび「コンシューマ・グループごとのI/Oリクエスト数/秒」グラフが表示されます。

パラレル実行の監視

「パラレル実行」グラフには、パラレル問合せに関連するシステム・メトリックが表示されます。メトリックは、単位当たりの統計数値です。この単位には、秒数などの時間尺度、トランザクションまたはセッションを指定できます。

パラレル問合せでは、SQL文を実行する作業が複数のプロセスに分割されます。グラフには、サンプル・セッション・アクティビティの最も高い割合を占める待機イベントを待機していたパラレル問合せが表示されます。

図4-15 パラレル実行の監視

図4-15の説明が続きます。
「図4-15 パラレル実行の監視」の説明

パラレル実行の監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「パラレル実行」をクリックします。

    「パラレル実行」グラフが表示されます。

    2つのペアのグラフが表示されます。最初のペアはY軸上のセッションの数を示し、2番目のペアはY軸上の秒単位の率を示します。

    図4-15の例では、問合せのパラレル化が午後12時30分から午後4時までアクティブでした。

サービスの監視

「サービス」グラフには、表示中の期間における、対応する待機イベントについて待機しているサービスが表示されます。「サービス」は共通の属性のアプリケーション・グループ、サービス・レベルのしきい値および優先度を示します。たとえば、SYS$USERSサービスとは、サービス名を明示的に識別せずにユーザー・セッションを確立する場合に使用されるデフォルトのサービス名です。アクティブ・セッションのみが表示されます。

図4-16 サービスの監視

図4-16の説明が続きます。
「図4-16 サービスの監視」の説明

サービスの監視手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. インスタンス・アクティビティ・グラフで、「サービス」をクリックします。

    「サービス」グラフが表示されます。

    図4-16では、SYS$USERSサービスに最大数のアクティブ・セッションがあります。

  3. グラフ上で最大のカラー・ブロックをクリックするか、または凡例内の対応するサービスをクリックして、アクティブ・セッションが最も多いサービスにドリルダウンします。

    「サービス」ページが表示され、「アクティビティ」サブページが表示されます。

    このページでは、サービスに関連付けられたすべての待機クラスに対するセッション負荷を示すリアルタイム・データを参照できます。

ホスト・アクティビティの監視

「パフォーマンス」ページの「ホスト」グラフに、データベースのホスト・システムの使用状況に関する情報が表示されます。

図4-17 ホスト・アクティビティの監視

図4-17の説明が続きます。
「図4-17 ホスト・アクティビティの監視」の説明

ホスト・システムにデータベースを実行するために十分な使用可能なリソースがあるかどうかを確認するには、使用するCPU、メモリーおよびディスクのリソースの量に対する適切な要件を確立します。次に、データベースによりこれらのリソースが過剰に消費されていないかどうかを確認できます。

CPU、メモリーおよびディスク使用率の詳細の表示手順: 

  1. データベースのホームページの「ホストCPU」で、「負荷」リンクをクリックします。

    host_cpu.gifの説明が続きます。
    host_cpu.gifの説明

    「ホスト」ページが表示され、「パフォーマンス」サブページが表示されます。

    図4-18 パフォーマンス・サマリー

    図4-18の説明が続きます。
    「図4-18 パフォーマンス・サマリー」の説明

    デフォルトで、「パフォーマンス・サマリー」ビューが表示されます。パフォーマンス・サマリー・ビューにCPU使用率、メモリー使用率、ディスクI/O使用率、およびCPU使用率とメモリー使用率の両方に基づいた上位10プロセスのメトリック値が表示されます。

  2. 十分なリソースが使用可能かどうか、またシステムにより過剰なリソースが使用されているかどうかを確認します。

    たとえば、次の場合にデータベースにより使用されるCPU、メモリーおよびディスクのリソースの量を確認します。

    • システムがアイドル状態(Oracleのアクティビティがほとんど存在しないか、Oracle以外のアクティビティが存在する)の場合

    • 平均ワークロード

    • ピーク・ワークロード

    システムのリソース使用率のレベルを評価する場合、ワークロードは重要なファクタです。ワークロードのピーク時に、CPUに10パーセントのアイドル時間および待機時間があり、リソースの使用率が90パーセントの場合、許容範囲内です。ただし、通常のワークロードにおいて、システムが高い使用率を表示するような場合は、追加のワークロードのための容量はありません。

    次のタスクを実行して、データベースのホスト・アクティビティを監視します。

  3. パフォーマンス・メトリックに対する適切なしきい値を設定すると、これらのしきい値を超えた場合、システムにより自動的にアラートが生成されます。

    メトリックのしきい値の設定については、「パフォーマンス・アラートのメトリックしきい値の設定」を参照してください。

CPU使用率の監視

CPUの問題に対処するには、まずシステムに必要なCPUリソースの量を適切に予測します。次に、十分なCPUリソースが使用可能であるかどうかを判断し、システムがリソースを過剰に使用している時期を確認します。この項では、CPU使用率を監視する方法について説明します。

CPU使用率の監視手順

  1. データベースのホームページの「ホストCPU」で、「負荷」リンクをクリックします。

    「ホスト」ページが表示され、「パフォーマンス」サブページが表示されます。

  2. 「ビュー」リストで「CPU詳細」を選択します。

    「CPU詳細」ビューが表示されます。

    このビューには、CPU使用率、I/O待機および最近1時間の負荷に関する統計が含まれます。上位10のプロセスは、CPU使用率に基づいてリストされます。

  3. 「CPU使用率」グラフを使用して、現在のCPU使用率を確認します。

    「CPU使用率」グラフに最近1時間のCPU使用率が表示されます。現在の値はグラフの下に表示されます。標準のワークロード時には、この値がクリティカルなしきい値を超えることはありません。

  4. 「CPU使用率」をクリックします。

    「CPU使用率」ページが表示されます。

    このページには、過去24時間に生成されたCPU使用率統計および関連アラートが表示されます。

    次の例では、CPU使用率に約6%から99.86%への急激なスパイクが発生しています。これは警告しきい値の80%を超えています。

    cpu_util.gifの説明が続きます。
    cpu_util.gifの説明

    この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUパフォーマンスの問題を調査する必要があります。

  5. 「CPU I/O待機」グラフを使用して、現在のCPU I/O待機時間を確認します。

    「CPU I/O待機」グラフには、最近1時間のCPU I/O待機時間が表示されます。現在の値はグラフの下に表示されます。通常のワークロード時にはCPU I/O待機の値は警告のしきい値を超えません。

    CPU I/O待機とは、間隔中にI/Oを待機しているジョブの平均数を表します。

  6. 「CPU I/O待機」をクリックします。

    「I/O待機内のCPU」ページが表示されます。

    このページには、CPU I/O待機統計および24時間以内に生成された関連するアラートが含まれます。

    この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、CPUパフォーマンスに問題がある場合があります。

  7. 「CPU負荷」グラフを使用して、現在のCPU使用率を確認します。

    「CPU負荷」グラフに最近1時間のCPU負荷が表示されます。現在の値はグラフの下に表示されます。標準のワークロード時には、CPU負荷の値が警告のしきい値を超えることはありません。

    CPU負荷は、過去1分間にCPUリソース用にスケジュールされることを待機していた平均プロセス数、または長時間のCPU競合時間のレベルを表します。

  8. 「CPU負荷」をクリックします。

    「実行キューの長さ」ページが表示されます。

    このページには、CPU負荷の統計および24時間以内に生成された関連するアラートが含まれます。

    この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUのパフォーマンスに問題がある場合があります。

  9. 「ホスト・パフォーマンス」サブページの「CPU詳細」ビューに戻り、「上位10のプロセス」表を確認します。

    プロセスがCPU使用率を過剰に消費する場合、このプロセスを調査する必要があります。

    次の例では、2つのデータベース・プロセスがCPU使用率の87.6%を使用しています。このため、潜在的なCPUのパフォーマンスの問題の原因はデータベースである可能性が高く、調査が必要です。

    top_10_proc.gifの説明が続きます。
    top_10_proc.gifの説明

  10. CPUのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

    • Oracle Database Resource Managerを使用してCPUのリソース割当てに優先順位を付けることにより、ピーク時の使用状況における影響を低減します。

    • CPUを大量に消費する多くのプロセスの実行の回避

    • システムのアーキテクチャ変更を含む、ハードウェアの能力向上


参照:

  • CPUの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。

  • Oracle Database Resource Managerの詳細は、『Oracle Database管理者ガイド』を参照してください。


メモリー使用率の監視

オペレーティング・システムのパフォーマンスの問題には、一般的にプロセス管理、メモリー管理およびスケジューリングが関連しています。この項では、メモリー使用率を監視し、ページングやスワッピングなどの問題を識別する方法について説明します。

メモリー使用率の監視手順

  1. データベースのホームページの「ホストCPU」で、「負荷」リンクをクリックします。

    「ホスト」ページが表示され、「パフォーマンス」サブページが表示されます。

  2. 「ビュー」リストで「メモリーの詳細」を選択します。

    「パフォーマンス」サブページの「メモリーの詳細」ビューが表示されます。

    このビューには、メモリー使用率、ページ・スキャン率および最近1時間のスワップ使用量に関する統計が含まれます。上位10のプロセスもメモリー使用率順にリストされます。

    mem_details.gifの説明が続きます。
    mem_details.gifの説明

  3. 「メモリー・ページ・スキャン率」グラフを使用して、現在のメモリー・ページ・スキャン率を確認します。

    メモリー・ページ・スキャン率の現在の値がグラフの下に表示されます。UNIXおよびLinuxでは、この値は1秒当たりにスキャンされるページの平均数を表します。Microsoft Windowsでは、困難なページ・フォルトの解決のためにディスクから読み込まれるまたはディスクに書き込まれるページの率を表します。この値は、システム規模の遅延を引き起こす可能性のあるフォルトの主要なインジケータとなります。

  4. 「ページ・スキャン率」をクリックします。

    「メモリー・ページ・スキャン率」ページが表示されます。

    このページには、メモリー・ページ・スキャン率の統計および24時間以内に生成された関連アラートが含まれます。

    この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

  5. 「メモリー使用率」グラフを使用して、現在のメモリーの使用率を確認します。

    「メモリー使用率」グラフは、メモリーの使用量を示します。メモリー使用率の現在の値はグラフの下に表示されます。標準のワークロード時には、この値が警告のしきい値(黄色で表示)を超えることはありません。

  6. 「メモリー使用率」をクリックします。

    「メモリー使用率」ページが表示されます。

    このページには、過去24時間に生成されたメモリー使用率統計および関連アラートが表示されます。

    mem_util.gifの説明が続きます。
    mem_util.gifの説明

    この例では、メモリー使用率が60%を超えなかったため、警告は生成されません。

    この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

  7. 「スワップ使用率」グラフを使用して、現在のスワップ使用量を確認します。

    「スワップ使用率」グラフは、スワップ領域の使用率を示します。スワップ使用率の現在の値はグラフの下に表示されます。通常のワークロード時には、この値が警告のしきい値を超えることはありません。

  8. 「スワップ使用率」をクリックします。

    「スワップ使用率(%)」ページが表示されます。

    このページには、過去24時間に生成されたスワップ使用率統計および関連アラートが表示されます。

    この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。

  9. 「ホスト・パフォーマンス」サブページの「メモリーの詳細」ビューに戻り、「上位10プロセス(メモリー順)」表の上位プロセスを確認します。

    プロセスがメモリーを過度に多く占有する場合、このプロセスを調査する必要があります。

  10. メモリー・パフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

    • 自動メモリー管理を使用して、システム・グローバル領域(SGA)と集計プログラム・グローバル領域(PGA集計)の間でメモリーを自動的に管理および分散します。

    • メモリー・アドバイザを使用してSGAおよびPGAのメモリー・ターゲット値を設定します。

    • 自動PGA管理を使用してSQLメモリーの実行を管理します。

    • メモリーを大量に消費する多くのプロセスの実行を回避します。

    • ページングまたはスワッピングを削減します。

    • カーソル共有時のオープン・カーソルおよびハード解析の数を削減します。


参照:

  • 自動メモリー管理の使用については、『Oracle Database管理者ガイド』を参照してください。

  • メモリー・アドバイザの使用については、『Oracle Database 2日でデータベース管理者』を参照してください。

  • メモリーの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。


ディスクI/O使用率の監視

データベースは一連のディスク上に存在するため、I/Oサブシステムのパフォーマンスは、データベースのパフォーマンスにとって非常に重要です。ディスクに関する重要な統計には、1秒当たりのディスクI/Oおよびサービス時間の長さが含まれます。これらの統計には、ディスクが最適な状態で実行されているかどうか、またはストレージ・システムが過負荷の状態にあるかどうかが表示されます。この項では、ディスクI/O使用率を監視する方法について説明します。

ディスクI/O使用率の監視手順

  1. データベースのホームページの「ホストCPU」で、「負荷」リンクをクリックします。

    「ホスト」ページが表示され、「パフォーマンス」サブページが表示されます。

  2. 「ビュー」リストで「ディスクの詳細」を選択します。

    「ディスクの詳細」ビューが表示されます。

    このビューには、ディスクI/O使用率および最近1時間に収集されたサービス時間統計、および使用されていた時間の割合ごとに表示される上位ディスク・デバイスが含まれます。

    disk_details.gifの説明が続きます。
    disk_details.gifの説明

  3. 「ディスクI/O使用率」グラフを使用して、現在のディスクI/O使用率を確認します。

    「ディスクI/O使用率」グラフに、1秒当たりに実行されるディスクI/Oの数が表示されます。1秒当たりの合計I/Oに対する現在の値はグラフの下に表示されます。

  4. 「1秒当たりの合計I/O」をクリックします。

    「合計ディスクI/O/秒」ページが表示されます。

    このページにはディスク使用率の統計、および24時間以内に生成された関連するアラートが含まれます。

    この値に予期しないスパイクが発生し、標準のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。

  5. 「最長I/Oサービス時間」グラフを使用して、現在のI/Oサービス時間を確認します。

    「最長I/Oサービス時間」グラフに、ディスクI/Oに対する最長サービス時間がミリ秒単位で表示されます。最長I/Oサービス時間に対する現在の値はグラフの下に表示されます。

  6. 「最長I/Oサービス時間」をクリックします。

    「最長サービス時間」ページが表示されます。

    このページにはI/Oサービス時間の統計および24時間以内に生成された関連するアラートが含まれます。

    この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。

  7. 「ディスクの詳細」ページの「上位ディスク・デバイス(ビジー順にソート)」表で、ディスク・デバイスを確認します。

    特定のディスクがほとんどの時間でビジーになっている場合は、このディスクを調査する必要があります。

    この例では、Oracle Databaseのホスト・ドライブ(xvdaおよびxvda1)へのアクセス時間がわずか1.41%であるため、ディスクのパフォーマンスの問題はないと考えられます。

    top_disk_devices.gifの説明が続きます。
    top_disk_devices.gifの説明

  8. ディスクI/Oのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。

    • Oracle自動ストレージ管理(Oracle ASM)を使用してデータベース記憶域を管理します。

    • 全データを全ディスクにストライプ化し、I/Oを分散します。

    • 別のディスクにファイル(アーカイブREDOログ、REDOログなど)を移動します。

    • 必要なデータをメモリーに保存して物理I/Oの数を削減します。


参照:

  • ディスクI/Oの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。


データベース・アクティビティのスパイクの原因の確認

「パフォーマンス」ページでデータベース・アクティビティのスパイクが表示されている場合、「ASH分析」ページにアクセスして、ほとんどのデータベース時間を消費しているセッションを特定することができます。このページには積上げグラフが表示され、「イベント」、「アクティビティ・クラス」、「モジュール/アクション」、「セッション」、「インスタンスID」および「PL/SQL」機能などの複数のディメンションのアクティブ・セッション・アクティビティを簡単に可視化できます。ディメンションの特定のメンバーにドリルダウン(垂直ズーム)したり、任意の期間にズーム・インまたはズーム・アウト(水平ズーム)できます。

  1. データベース・インスタンスの「パフォーマンス」メニューから、「ASH分析」を選択します。

  2. 最上部のグラフ内の影付き領域を目的の期間にドラッグすることにより、選択した期間中のトップ・アクティビティをマクロ的な視点で表示します。


    ヒント:

    影付きブロック領域の上にマウスを置くと、スライダの両側に2つのユーザー・コントロールが表示され、目的の期間を選択できます。

    デフォルト設定の1時間の期間を選択することも、セレクタ・ボタンを使用して1日、1週間または1か月の各期間を選択することもできます。また、「カレンダ」または「カスタム」ボタンを使用して、事前設定された選択肢以外の期間を表示することもできます。


  3. このページのアクティビティ・チャートを表示することで、選択した期間をミクロ的な視点で表示します。デフォルトでは、チャートには待機クラスのワークロード・アクティビティ・ブレークダウン値が表示されます。

  4. システムに悪影響を与えているトップ・アクティビティ・セッションの詳細な統計を表示することにより、影響を調査します。

    1. グラフ内の最大スパイクか、グラフの横にある凡例内の対応する待機クラスをクリックします。これにより、興味のある待機クラスを除くグラフ内のすべてがフィルタで除去されます。

      たとえば、「並行性」待機クラスのスパイクが最大であったことがグラフに示されている場合、「並行性」の凡例のグラフ領域をクリックします。これにより、グラフがリフレッシュされ、「並行性」値のみが表示され、「フィルタ」バーに「待機クラス: 並行性」アイコンが表示されます。


      ヒント:

      フィルタの数は無制限に作成できます。

    2. 「アクティビティ」アイコンを展開して、メニューから上位ディメンションを選択すると、該当する共通プロセスのリストが表示されます。選択内容に応じてグラフがリフレッシュされ、選択した特定のカテゴリの値が表示されます。

      たとえば、前述のように「並行性」のフィルタを作成し、メニューから上位ディメンション、「ユーザー・セッション」を選択すると、グラフに「並行性」のユーザー・セッションのみが表示されます。

  5. オプション: システム・アクティビティのグラフィカル・ビューを表示するには、ロード・マップを使用します。

    ロード・マップは、選択した期間内でアクティビティの変更を時系列で確認しない場合に1次元または多次元レイアウトのアクティビティを表示する際に役立ちます。

  6. オプション: 「保存」をクリックし、オフライン参照用のHTMLファイルとして現在のページ・ビューを保存します。「保存」をクリックすると、ポップアップ・ウィンドウが表示され、レポートの保存場所を指定できます。このアクションにより、分析の一部として現在収集されているすべてのデータを網羅するEnterprise Managerアクティブ・レポートが作成されます。後でこれを使用して、たとえば、より綿密な事後分析を実行できます。Enterprise Managerまたはデータベース接続を使用しないでレポートを表示できます。

    「メール」をクリックして、添付ファイルとしてページを送信する電子メール・アドレスも指定できます。

「データベース・パフォーマンス」ページのカスタマイズ

要件に対応できるように、「パフォーマンス」ページをカスタマイズできます。「インスタンス・アクティビティの監視」で説明されているように、「パフォーマンス」ページにデフォルトで表示するグラフおよびグラフの表示方法を指定できます。「スループット」グラフおよび「サービス」グラフにベースライン値を含めるかどうかも決定できます。

Enterprise Managerには、リポジトリ内の各ユーザーの永続カスタマイズ情報が格納されます。「パフォーマンス」ページにアクセスして設定を変更するまで残りのブラウザ・セッションに対してカスタマイズ・データをキャッシュする場合は、Enterprise Managerによりカスタマイズ・データが取得されます。

「パフォーマンス」ページのカスタマイズ手順: 

  1. データベースのホームページで、「パフォーマンス」をクリックします。

    「パフォーマンス」ページが表示されます。

  2. 「パフォーマンス」ページで、「設定」をクリックします。

    「「パフォーマンス」ページの設定」ページが表示されます。

    perf_page_sett.gifの説明が続きます。
    perf_page_sett.gifの説明

  3. 「グラフの詳細設定」セクションで、インスタンス・アクティビティ・グラフの表示のデフォルトを選択します。次の手順を実行します。

    1. 「デフォルトのビュー」で、「平均アクティブ・セッション」セクションにデフォルトで表示するインスタンス・アクティビティ・グラフを選択します。

      「スループット」、「I/O」、「パラレル実行」および「サービス」の各グラフの説明は、「インスタンス・アクティビティの監視」を参照してください。

    2. 「スループット・グラフの設定」で、「スループット」グラフに表示するデフォルトのインスタンスのスループットの割合として、「1秒当たり」または「1トランザクション当たり」を選択します。

      「スループット」グラフの使用方法は、「スループットの監視」を参照してください。

    3. 「I/Oグラフの設定」で、「I/O」グラフに表示するデフォルトのI/Oブレークダウンを選択します。

      「I/O」グラフの使用方法は、「I/Oの監視」を参照してください。

  4. 「ベースライン表示」セクションで、パフォーマンス・グラフでのAWRベースラインの表示方法を選択します。次のいずれかの操作を行います。

    • 「ベースライン値を表示しない」を選択してベースラインを表示させないようにします。

    • 「システム変動ウィンドウ・ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択して、「スループット」グラフおよび「サービス」グラフの表示のパーセンタイルを指定します。

    • 「計算された統計を持つ静的ベースラインを使用して、99番目のパーセンタイル・ラインを表示します」を選択し、「ベースライン名」リストからベースライン名を選択します。

      「ベースラインのしきい値統計の計算」の説明に従って、スケジュール統計の計算を経たベースラインのみ選択できます。

  5. 「OK」をクリックします。

    「パフォーマンス」ページが表示されます。

    カスタマイズ設定に従って、グラフが表示されます。