4 リアルタイムなデータベースのパフォーマンスの監視
自動データベース診断モニター(ADDM)は、 「データベースのパフォーマンスの自動監視」で説明しているように、データベースでパフォーマンスの問題を自動的に識別します。パフォーマンスの情報は、Oracle Enterprise Manager Cloud Control (Cloud Control)の「パフォーマンス」ページに表示されます。
「パフォーマンス」ページからその他のページにドリルダウンして、リアルタイムのデータベースのパフォーマンスの問題を識別できます。問題を検出した場合は、ADDMを手動で実行して、次のADDM分析を待たずにすぐにその問題を分析できます。ADDMを手動で実行する方法を学習するには、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。
この章では、データベース・アクティビティのいくつかの側面の監視方法について説明します。内容は次のとおりです。
ユーザー・アクティビティの監視
「Oracle Databaseパフォーマンス・メソッド」で説明しているように、データベース時間(DB時間)は、データベース・インスタンスのワークロードの合計の指標です。ある期間の平均アクティブ・セッションとは、期間中のすべてのユーザー・セッションの合計データベース時間を、期間の経過時間(wall-clock時間)で割った数値です。
パフォーマンス・ハブ・ページの「平均アクティブ・セッション」グラフには、期間のCPU使用率および待機クラスの平均アクティブ・セッションが表示されます。グラフをクリックしてドリルダウンし、インスタンスに関連するパフォーマンスの問題の原因を特定して、解決できます。
ユーザー・アクティビティを監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ハブ」および「ASH分析」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。パフォーマンス・ハブ・ページが表示されます。
-
「平均アクティブ・セッション」積上げ面グラフで、任意のスパイクまたは他の関心のある領域を探します。
図4-1に、パフォーマンス・ハブ・ページの「平均アクティブ・セッション」グラフの1つのディメンションの例を示します。
積上げ面グラフの色付きの各領域には、指定された期間の指定されたイベントの平均アクティブ・セッションが表示されます。グラフで、各イベントの平均アクティブ・セッション量は、その下に積み上げられています。イベントは凡例に示されている順序でグラフに表示され、CPUはY軸でゼロから開始し、他のイベントはCPU待機からその他に昇順で積み上げられます。待機クラスでは、ディスクI/Oなどのリソースに対する待機によって、どのくらいのデータベース・アクティビティが使用されているのかが表示されます。
Y軸の2の「CPUコア」ラインは、ホスト・システムのCPU数を示します。「CPU」の値が「CPUコア」のラインに達した場合は、データベース・インスタンスがシステムのCPU時間を100%消費しています。
グラフ・タイトル待機クラス別平均アクティブ・セッションの最後の項目は、パフォーマンスを表示するその他のディメンションのドロップダウン・メニューです。「待機クラス」がデフォルトです。
主なディメンションは次のとおりです:
- 待機クラス
- 待機イベント
- インスタンス
- サービス
- モジュール
- アクション
- ユーザー・セッション
- SQL ID
実行中のアクティブ・セッション・ページには、1時間の時間軸が表示されます。各待機クラスの詳細が、5分間隔で表示されます。
異なったディメンションで待機クラスの詳細を確認できます。次のいずれかの項を続行します。
-
選択した時間間隔を変更するには、 「パフォーマンス・ハブ」ビューを使用して開始時間と終了時間を異なった間隔にドラッグします。
「平均アクティブ・セッション」に含まれる情報は自動的に更新され、選択した期間が表示されます。
パフォーマンスの問題を検出した場合、リアルタイムでその問題を解決できます。パフォーマンス・ページで次のいずれかを実行します。
-
「平均アクティブ・セッション」グラフの下で、パフォーマンスの問題が発生した時間と一致するスナップショットをクリックしてこの期間のADDMを実行します。
ADDM分析の詳細は、「自動データベース診断モニターの分析の確認」を参照してください。
-
「ADDMの即時実行」をクリックしてスナップショットを手動で作成します。
手動でのスナップショットの作成の詳細は、「スナップショットの作成」を参照してください。ADDMを手動で実行する方法については、「現在のデータベースのパフォーマンスを分析するADDMの手動実行」を参照してください。
-
「ASHレポートの実行」をクリックしてアクティブ・セッション履歴(ASH)レポートを作成し、発生期間が短い一時的なパフォーマンスの問題を分析します。
ASHレポートの詳細は、「アクティブ・セッション履歴レポート」を参照してください。
トップ・ディメンションの監視
「平均アクティブ・セッション基準」ドロップダウンには、次の共通ビューを持つ「トップ・ディメンション」ポップアップが表示されます。
- 待機クラス
- 待機イベント
- インスタンス
- サービス
- モジュール
- アクション
- ユーザー・セッション
- SQL ID
トップ・ディメンションを監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」ドロップダウンをクリックし、「トップ・ディメンション」の上にマウスを置いて、目的のビューを選択します。
- 待機クラス
- 待機イベント
- インスタンス
- サービス
- モジュール
- アクション
- ユーザー・セッション
- SQL ID
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
SQLの監視
「平均アクティブ・セッション基準」ドロップダウンには、次の共通ビューを持つ「SQL」ポップアップが表示されます。
- SQL ID
- トップ・レベルSQL ID
- SQL強制一致署名
- SQL計画ハッシュ値
- SQL完全計画ハッシュ値
- SQL計画操作
- SQL計画操作行
- SQLオプコード
- トップ・レベルSQLオプコード
SQLを監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」のドロップダウンをクリックし、マウスを「SQL」に移動して、ポップアップから目的のビューを選択します。
- SQL ID
- トップ・レベルSQL ID
- SQL強制一致署名
- SQL計画ハッシュ値
- SQL完全計画ハッシュ値
- SQL計画操作
- SQL計画操作行
- SQLオプコード
- トップ・レベルSQLオプコード
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
PL/SQLの監視
PL/SQLを監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」のドロップダウンをクリックし、マウスを「PL/SQL」に移動して、ポップアップから目的のビューを選択します。
- PL/SQL
- トップ・レベルPL/SQL
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
リソース使用量の監視
「平均アクティブ・セッション基準」ドロップダウンには、次の共通ビューを持つ「リソース使用量」ポップアップが表示されます。
- 待機クラス
- 待機イベント
- オブジェクト
- ブロックしているセッション
セッションは、データベース・インスタンス・メモリー内の論理的なエンティティで、データベースに対する現在のユーザー・ログインの状態を表します。セッションは、ユーザーがデータベースにログインしてから切断するまで続きます。たとえば、SQL*Plusを開始したとき、ユーザーはセッションを確立するために有効なデータベースのユーザー名およびパスワードを提供する必要があります。単一のセッションがデータベース・アクティビティの大部分を使用している場合、そのセッションを調べる必要があります。
リソース使用量を監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」のドロップダウンをクリックし、マウスを「リソース使用量」に移動して、ポップアップから目的のビューを選択します。
- 待機クラス
- 待機イベント
- オブジェクト
- ブロックしているセッション
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
セッション識別子の監視
「平均アクティブ・セッション基準」ドロップダウンには、次の共通ビューを持つ「セッション識別子」ポップアップが表示されます。
- インスタンス
- サービス
- ユーザー・セッション
- パラレル処理
- ユーザー名
- プログラム
- セッション・タイプ
サービスは共通の属性、サービス・レベルのしきい値、優先度を持つアプリケーション・グループです。たとえば、SYS$USERS
サービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。SYS$BACKGROUND
サービスは、すべてのデータベースのバックグラウンド・プロセスで構成されています。サービスが待機時間の大部分を使用している場合、そのサービスを調べる必要があります。
セッションは、データベース・インスタンス・メモリー内の論理的なエンティティで、データベースに対する現在のユーザー・ログインの状態を表します。セッションは、ユーザーがデータベースにログインしてから切断するまで続きます。たとえば、SQL*Plusを開始したとき、ユーザーはセッションを確立するために有効なデータベースのユーザー名およびパスワードを提供する必要があります。単一のセッションがデータベース・アクティビティの大部分を使用している場合、そのセッションを調べる必要があります。
セッション識別子を監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」のドロップダウンをクリックし、マウスを「セッション識別子」に移動して、ポップアップから目的のビューを選択します。
- インスタンス
- サービス
- ユーザー・セッション
- パラレル処理
- ユーザー名
- プログラム
- セッション・タイプ
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
セッション属性の監視
「平均アクティブ・セッション基準」ドロップダウンには、次の共通ビューを持つセッション属性ポップアップが表示されます。
- コンシューマ・グループ
- モジュール
- アクション
- クライアント
- クライアント・ホスト名
- クライアント・ホスト・ポート
- トランザクションID
- 実行コンテキストID
- データベース操作
クライアントは、データベースで操作を実行するリクエストを開始するWebブラウザまたはクライアント・プロセスです。単一のクライアントが待機時間の大部分を使用している場合、そのクライアントを調べる必要があります。
「モジュール」は、ワークロードの定義の一部としてサービス名を設定するアプリケーションを示します。たとえば、DBMS_SCHEDULER
モジュールはSYS$BACKGROUND
サービスで実行するジョブを割り当てます。単一のモジュールを待機時間の大部分で使用する場合、そのモジュールを調べる必要があります。
セッション属性を監視するには:
-
パフォーマンス・ハブ・ページにアクセスします(ユーザー・アクティビティの監視を参照)。
-
「平均アクティブ・セッション基準」のドロップダウンをクリックし、マウスを「セッション属性」に移動して、ポップアップから目的のビューを選択します。
- コンシューマ・グループ
- モジュール
- アクション
- クライアント
- クライアント・ホスト名
- クライアント・ホスト・ポート
- トランザクションID
- 実行コンテキストID
- データベース操作
グラフ、表およびページに関する情報が、選択した基準を反映するように更新されます。
インスタンス・アクティビティの監視
「パフォーマンス」ページの「平均アクティブ・セッション」グラフの下に、データベース・インスタンス・アクティビティを監視するために使用できる他のグラフがあります。「「データベース・パフォーマンス」ページのカスタマイズ」で説明しているように、「パフォーマンス」ページをカスタマイズして、デフォルトで最も有効なインスタンス・アクティビティ・グラフを表示できます。
インスタンス・アクティビティ・グラフを使用して、次のタスクを実行できます。
スループットの監視
データベース・スループットによって、時間の単位にデータベースが実行する作業量を測定できます。「スループット」グラフは「平均アクティブ・セッション」グラフで使用する競合を表示します。
「スループット」グラフのピークを「平均アクティブ・セッション」グラフのピークと比較します。「平均アクティブ・セッション」グラフに待機中のセッションが多数表示され、内部的な競合が示されている場合でも、スループットが高ければ、状況は許容できる可能性があります。内部的な競合が低く、スループットが高い場合も、データベースはおそらく効率よく実行されています。一方、内部的な競合が高くスループットが低い場合は、データベースのチューニングを検討してください。
スループットを監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
「スループット」タブをクリックします。
-
次の「インスタンス・スループット率」オプションのいずれかを選択します。
-
1秒当たり
2つのグラフが表示されます。1つは1秒当たりのログオンおよびトランザクションの数を表示し、もう1つは1秒当たりの物理読取りおよびREDOサイズを表示します。
図4-3は、「1秒当たり」の「インスタンス・スループット率」が選択された「スループット」グラフを示しています。図の真ん中の棒は、領域の考慮によって削除されたグラフの部分(1時37分から1時52分前後)を示しています。図4-3では、ほとんどのトランザクションが午後1時15分から午後1時27分および午後2時8分から午後2時12分の間に発生しています。
-
1トランザクション当たり
1トランザクション当たりの物理読取りおよびREDOサイズの数を示すグラフが表示されます。
-
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が含まれます。
-
アクティビティ
このカテゴリには、XDB、アドバンスト・キューイング(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-4の例は、ログ・ライターによって大量のI/Oが実行されていることを示しています。ログ・ライターのアクティビティのピークは、約600 I/Oリクエスト/秒です。
-
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「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は、表または索引のスキャン、ダイレクト・データ・ロード、バックアップ、リストア、アーカイブなどのデータベース操作によって生成されます。
OLTP環境などでトランザクションの時間を軽減するために最適化する場合は、小規模I/Oの待機時間を監視します。待機時間が長いということは、通常、ストレージ・システムがボトルネックであることを示します。
データ・ウェアハウス内にあるような大規模な問合せを最適化する場合、パフォーマンスはI/Oリクエストの待機時間ではなく、ストレージ・システムが実現できる最大のスループットに依存します。この場合、同期単一ブロックのI/O待機時間ではなくI/O MB/秒が監視されます。
タイプ別のI/Oを監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
インスタンス・アクティビティ領域で「I/O」タブをクリックします。
「I/O MB/秒」および「I/Oリクエスト/秒」のグラフが表示されます。
-
「I/Oブレークダウン」で、「I/Oタイプ」を選択します。
「I/OタイプごとのI/O MB/秒」グラフと「I/OタイプごとのI/Oリクエスト数/秒」グラフが表示されます。
-
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するファンクションをクリックして、I/Oレートが最も高いファンクションにドリルダウンします。
「I/O詳細」ページが表示されます。
I/OのMBまたはI/Oリクエストの詳細に関する、リアルタイム・データまたは履歴データを参照できます。
コンシューマ・グループ別のI/Oの監視
Oracle Database Resource Managerが使用可能である場合は、データベースにより、現在有効なリソース・プランに含まれるコンシューマ・グループ全体のI/O統計が収集されます。「コンシューマ・グループ」グラフを使用すると、I/Oをコンシューマ・グループ別に監視できます。
リソース・プランでは、リソースを様々なユーザー(リソース・コンシューマ・グループ)間で分散する方法を指定します。リソース・コンシューマ・グループを使用して、ユーザー・セッションをリソース要件ごとに構成できます。_ORACLE_BACKGROUND_GROUP_
コンシューマ・グループには、バックグラウンド・プロセスにより発行されたI/Oリクエストが含まれることに注意してください。
コンシューマ・グループ別のI/Oリクエストを監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
インスタンス・アクティビティ領域で「I/O」タブをクリックします。
「I/O MB/秒」および「I/Oリクエスト/秒」のグラフが表示されます。
-
「I/Oブレークダウン」で、「コンシューマ・グループ」を選択します。
「コンシューマ・グループごとのI/O MB/秒」グラフおよび「コンシューマ・グループごとのI/Oリクエスト数/秒」グラフが表示されます。
パラレル実行の監視
「パラレル実行」グラフには、パラレル問合せに関連するシステム・メトリックが表示されます。メトリックは、単位当たりの統計数値です。この単位には、秒数などの時間尺度、トランザクションまたはセッションを指定できます。
パラレル問合せでは、SQL文を実行する作業が複数のプロセスに分割されます。グラフには、サンプル・セッション・アクティビティの最も高い割合を占める待機イベントを待機していたパラレル問合せが表示されます。
パラレル実行を監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
インスタンス・アクティビティ・グラフで、「パラレル実行」タブをクリックします。
「パラレル実行」グラフが表示されます。
2つのペアのグラフが表示されます。最初のペアはY軸上のセッションの数を示し、2番目のペアはY軸上の秒単位の率を示します。
サービスの監視
「サービス」は共通の属性のアプリケーション・グループ、サービス・レベルのしきい値および優先度を示します。たとえば、SYS$USERS
サービスは、サービス名を明示的に指定せずユーザー・セッションが確立されたときに使用するデフォルトのサービス名です。
サービスを監視するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ホーム」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「パフォーマンス」ページが表示されます。
-
インスタンス・アクティビティ・グラフで、「サービス」をクリックします。
「サービス」グラフが表示されます。「サービス」グラフには、表示中の期間における、対応する待機イベントについて待機しているサービスが表示されます。アクティブ・セッションのみが表示されます。
図4-7では、
SYS$USERS
サービスに最大数のアクティブ・セッションがあります。 -
グラフ上で最大の色付きの領域をクリックするか、または凡例内の対応するサービスをクリックして、アクティブ・セッションが最も多いサービスにドリルダウンします。
「サービス」ページが表示され、「アクティビティ」サブページが表示されます。
このページでは、サービスに関連付けられたすべての待機クラスに対するセッション負荷を示すリアルタイム・データを参照できます。
ホスト・アクティビティの監視
パフォーマンス・ページの「ホスト」表に、データベースのホスト・システムの使用状況に関する情報が表示されます 。
ホスト・システムにデータベースを実行するために十分な使用可能なリソースがあるかどうかを確認するには、使用するCPU、メモリーおよびディスクのリソースの量に対する適切な要件を確立します。次に、データベースによりこれらのリソースが過剰に消費されていないかどうかを確認できます。
CPU、メモリーおよびディスク使用率の詳細の表示手順:
-
「ターゲット」メニューから「ホスト」を選択します。
ホスト・ページが表示されます。
-
ホストのリストで、データベースが存在するホストの名前をクリックします。
ホスト名ページが表示されます。ホスト名とは、ホストの名前です。
-
十分なリソースが使用可能かどうか、またシステムにより過剰なリソースが使用されているかどうかを確認します。
たとえば、次の場合にデータベースにより使用されるCPU、メモリーおよびディスクのリソースの量を確認します。
-
システムがアイドル状態(データベースのアクティビティがほとんど存在しないか、データベース以外のアクティビティが存在する)の場合
-
平均ワークロード
-
ピーク・ワークロード
システムのリソース使用率のレベルを評価する場合、ワークロードは重要なファクタです。ワークロードのピーク時に、CPUに10パーセントのアイドル時間および待機時間があり、リソースの使用率が90パーセントの場合、許容範囲内です。ただし、通常のワークロードにおいて、システムが高い使用率を表示するような場合は、追加のワークロードのための容量はありません。
次のタスクを実行して、データベースのホスト・アクティビティを監視します。
-
-
パフォーマンス・メトリックに対する適切なしきい値を設定すると、これらのしきい値を超えた場合、システムにより自動的にアラートが生成されます。
メトリックのしきい値の設定については、「パフォーマンス・アラートのメトリックしきい値の設定」を参照してください。
CPU使用率の監視
CPUの問題に対処するには、まずシステムに必要なCPUリソースの量を適切に予測します。次に、十分なCPUリソースが使用可能であるかどうかを判断し、システムがリソースを過剰に使用している時期を確認します。この項では、CPU使用率を監視する方法について説明します。
CPU使用率を監視するには:
-
ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。
-
「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
「CPU詳細」ページが表示されます。
このページには、CPU使用率、I/O待機および最近1時間の負荷に関する統計が含まれます。上位10のプロセスは、CPU使用率に基づいてリストされます。
-
「CPU使用率」グラフを使用して、現在のCPU使用率を確認します。
「CPU使用率」グラフには、過去1時間半のCPU使用率が表示されています。現在の値はグラフの下に表示されます。標準のワークロード時には、この値がクリティカルなしきい値を超えることはありません。
-
CPU使用率のグラフで、「CPU使用率」リンクをクリックします。
このページには、過去24時間に生成されたCPU使用率統計および関連アラートが表示されます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUパフォーマンスの問題を調査する必要があります。
-
CPU詳細ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
-
「CPU I/O待機」グラフを使用して、現在のCPU I/O待機時間を確認します。
「CPU I/O待機」グラフには、過去1時間半のCPU I/O待機時間が表示されています。現在の値はグラフの下に表示されます。通常のワークロード時には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負荷」のグラフの下で、「CPU負荷」リンクをクリックします。
実行キューの長さ(平均5分)ページが表示されます。
このページには、CPU負荷の統計および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、CPUのパフォーマンスに問題がある場合があります。
-
CPU詳細ページに戻ります。「ホスト」メニューから、「監視」、「CPU詳細」の順に選択します。
-
「上位10プロセス(CPU順)」表を確認します。
プロセスがCPU使用率を過剰に消費する場合、そのプロセスを調査します。
参照:
-
CPUの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
-
Oracle Database Resource Managerの詳細は、『Oracle Database管理者ガイド』を参照してください。
メモリー使用率の監視
オペレーティング・システムのパフォーマンスの問題は、一般にプロセス管理、メモリー管理およびスケジューリングに関係します。この項では、メモリー使用率を監視し、ページングやスワッピングなどの問題を識別する方法について説明します。
メモリー使用率を監視するには:
-
ホスト名ページにアクセスします(「ホスト・アクティビティの監視」を参照)。
-
「ホスト」ドロップダウン・メニューから、「監視」、「メモリーの詳細」の順に選択します。
メモリーの詳細ページが表示されます。
このページには、メモリー使用率、ページ・スキャン率および最近1時間のスワップ使用量に関する統計が含まれます。上位10のプロセスもメモリー使用率順にリストされます。図4-8は、「メモリーの詳細」ページの一部を示しています。「上位10プロセス(メモリー順)」セクションは表示されません。
-
「メモリー・ページ・スキャン率」グラフを使用して、現在のメモリー・ページ・スキャン率を確認します。
メモリー・ページ・スキャン率の現在の値がグラフの下に表示されます。UNIXおよびLinuxでは、この値は1秒当たりにスキャンされるページの平均数を表します。Microsoft Windowsでは、困難なページ・フォルトの解決のためにディスクから読み込まれるまたはディスクに書き込まれるページの率を表します。この値は、システム規模の遅延を引き起こす可能性のあるフォルトの主要なインジケータとなります。
-
「メモリー・スキャン率(ページ/秒)」をクリックします。
「メモリー・ページ・スキャン率」ページが表示されます。
このページには、メモリー・ページ・スキャン率の統計および24時間以内に生成された関連アラートが含まれます。
この値に予期しない増加が発生し、標準のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
メモリーの詳細ページに戻ります。「ホスト」ドロップダウン・メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「メモリー使用率」グラフを使用して、現在のメモリーの使用率を確認します。
「メモリー使用率」グラフは、メモリーの使用量を示します。メモリー使用率の現在の値はグラフの下に表示されます。標準のワークロード時には、この値が警告のしきい値(黄色で表示)を超えることはありません。
-
「メモリー使用率(%)」をクリックします。
メモリー使用率ページが表示されます。
このページには、過去24時間に生成されたメモリー使用率統計および関連アラートが表示されます。
この例では、メモリー使用率が80%を超えたため、「メトリック・アラート履歴」表に警告が表示されます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
メモリーの詳細ページに戻ります。「ホスト」ドロップダウン・メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「スワップ使用率」グラフを使用して、現在のスワップ使用量を確認します。
「スワップ使用率」グラフは、スワップ領域の使用率を示します。スワップ使用率の現在の値はグラフの下に表示されます。通常のワークロード時には、この値が警告のしきい値を超えることはありません。
-
「スワップ使用率(%)」をクリックします。
スワップ使用率ページが表示されます。
このページには、過去24時間に生成されたスワップ使用率統計および関連アラートが表示されます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、メモリー・パフォーマンスに問題がある場合があります。
-
メモリーの詳細ページに戻ります。「ホスト」ドロップダウン・メニューから、「監視」、「メモリーの詳細」の順に選択します。
-
「上位10プロセス(メモリー順)」表で上位のプロセスを確認します。
プロセスがメモリーを過度に多く占有する場合、このプロセスを調査する必要があります。
-
メモリー・パフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。
-
自動メモリー管理を使用して、システム・グローバル領域(SGA)と集計プログラム・グローバル領域(PGA集計)の間でメモリーを自動的に管理および分散します。
-
メモリー・アドバイザを使用してSGAおよびPGAのメモリー・ターゲット値を設定します。
-
自動PGA管理を使用してSQLメモリーの実行を管理します。
-
メモリーを大量に消費する多くのプロセスの実行を回避します。
-
ページングまたはスワッピングを削減します。
-
カーソル共有時のオープン・カーソルおよびハード解析の数を削減します。
-
参照:
-
自動メモリー管理の使用については、『Oracle Database管理者ガイド』を参照してください。
-
メモリーの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
ディスク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-9の値は、153.07です。
-
「全ディスクによる合計ディスクI/O(/秒)」をクリックします。
全ディスクによる合計ディスクI/O(/秒)ページが表示されます。
このページにはディスク使用率の統計、および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、標準のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。
-
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)グラフを使用して、現在のI/Oサービス時間を確認します。
「全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)」グラフは、ディスクI/Oの最長サービス時間をミリ秒単位で示しています。最長I/Oサービス時間に対する現在の値はグラフの下に表示されます。図4-9の値は、1.79です。
-
ディスクの詳細ページに戻ります。「ホスト」ドロップダウン・メニューから「監視」、「ディスクの詳細」の順に選択します。
-
全ディスクの最大平均ディスクI/Oサービス時間(ミリ秒)をクリックします。
このページにはI/Oサービス時間の統計および24時間以内に生成された関連するアラートが含まれます。
この値に予期しないスパイクが発生し、通常のワークロード時にその状態が継続する場合、ディスクI/Oのパフォーマンスに問題がある可能性があり、調査が必要です。
-
ディスクの詳細ページに戻ります。「ホスト」ドロップダウン・メニューから「監視」、「ディスクの詳細」の順に選択します。
-
ディスクの詳細ページの「上位ディスク・デバイス(ビジー順にソート)」表で、ディスク・デバイスを確認します。
特定のディスクがほとんどの時間でビジーになっている場合は、このディスクを調査する必要があります。
-
ディスクI/Oのパフォーマンスの問題が識別された場合、次の方法によって問題の解決を試みることができます。
-
Oracle Automatic Storage Management(Oracle ASM)を使用してデータベース記憶域を管理します。
-
全データを全ディスクにストライプ化し、I/Oを分散します。
-
別のディスクにファイル(アーカイブREDOログ、REDOログなど)を移動します。
-
必要なデータをメモリーに保存して物理I/Oの数を削減します。
-
参照:
-
ディスクI/Oの問題の解決については、『Oracle Databaseパフォーマンス・チューニング・ガイド』を参照してください。
データベース・アクティビティのスパイクの原因の確認
「パフォーマンス」ページにデータベース・アクティビティのスパイクが表示されている場合は、「ASH分析」ページにアクセスすると、多くのデータベース時間を消費しているセッションを特定することができます。このページには積上げ面グラフが表示され、待機クラス、モジュール、アクション、SQL ID、インスタンス、ユーザー・セッション、コンシューマ・グループなど、様々なディメンションのアクティブ・セッション・アクティビティを視覚的に確認できます。ディメンションの特定のメンバーにドリルダウン(垂直ズーム)したり、任意の期間にズーム・インまたはズーム・アウト(水平ズーム)できます。
アクティブ・セッション・アクティビティを「ASH分析」ページに表示するには:
-
データベース・ホームページにアクセスします。
詳細は、「データベースのホームページのアクセス」を参照してください。
-
「パフォーマンス」メニューから、「パフォーマンス・ハブ」を選択し、「ASH分析」を選択します。
「データベース・ログイン」ページが表示されたら、管理者権限のあるユーザーとしてログインします。「ASH分析」ページが表示されます。
図4-10に、「ASH分析」ページの例を示します。
-
最上部のグラフ内の影付き領域を目的の期間にドラッグすることにより、選択した期間中のトップ・アクティビティの概要を表示します。
ヒント:
スライダのどちらかの端でコントロールを選択し、左または右にドラッグすることによって、影付きのスライダ領域の選択期間を変更することができます。
デフォルト設定の1時間の期間を選択することも、グラフ上のセレクタ・ボタンを使用して1日、1週間または1か月の各期間を選択することもできます。また、「カレンダ」または「カスタム」ボタンを使用して、事前設定された選択肢以外の期間を表示することもできます。
-
選択した期間をより詳細な視点で表示するには、このページのアクティビティ・グラフを使用します。デフォルトでは、待機クラスのワークロード・アクティビティのブレークダウンが表示されます。
-
システムに悪影響を与えているトップ・アクティビティ・セッションの詳細な統計を表示することにより、影響を調査します。
セッションの詳細な統計を表示するには:
-
グラフ内の最大スパイクか、グラフの横にある凡例内の対応する待機クラスを選択します。これにより、興味のある待機クラスを除くグラフ内のすべてがフィルタで除去されます。
たとえば、「並行性」待機クラスのスパイクが最大であったことがグラフに示されている場合は、「並行性」の凡例のグラフ領域を選択します。これにより、グラフがリフレッシュされ、「並行性」値のみが表示され、「フィルタ」バーに「待機クラス: 並行性」アイコンが表示されます。
ヒント:
フィルタの数は無制限に作成できます。
-
「アクティビティ」セッションで、ディメンション・リストから「トップ・ディメンション」を選択します。選択内容に応じてグラフがリフレッシュされ、選択した特定のカテゴリの値が表示されます。
たとえば、前述のように「並行性」のフィルタを作成した後、リストから「トップ・ディメンション」を選択し、次に「ユーザー・セッション」を選択すると、グラフに「並行性」のユーザー・セッションのみが表示されます。
図4-11は、選択した「トップ・ディメンション」でのアクティビティ・リストを示します。
-
-
オプションとして、システム・アクティビティのグラフィカル・ビューを表示するには、ロード・マップを使用します。
ロード・マップは、選択した期間内でアクティビティの変更を時系列で確認しない場合に1次元または多次元レイアウトのアクティビティを表示する際に役立ちます。
図4-12は、待機クラスと待機イベントによるアクティビティのロード・マップを示しています。