6.4 Oracle Database QoS Managementの管理対象

Oracle Database QoS Managementは、Oracle Real Application Clusters(Oracle RAC)およびOracle Clusterwareと連動します。Oracle Database QoS Managementは、Oracle RACクラスタ全体で稼働し、様々なアプリケーションをサポートできます。

ノート:

Oracle Database QoS ManagementではOLTPワークロードのみサポートされます。次のタイプのワークロード(またはデータベース・リクエスト)はサポートされません。

  • バッチ・ワークロード

  • 完了に1秒より長くかかるワークロード

  • パラレルデータ操作言語(DML)を使用するワークロード

  • 高い使用率レベルでGV$ビューを問い合せるワークロード

6.4.1 サービス・レベルを満たすためのデータベース・リソースの管理

Oracle Database QoS Managementは、クラスタのCPUリソースを管理します。Oracle Database QoS ManagementはI/Oリソースを管理しないため、I/O集中型のアプリケーションはOracle Database QoS Managementによって効果的に管理されません。

Oracle Database QoS Managementは、次の手法でOracle RACデータベースと統合され、クラスタ内のリソースを管理します。

  • データベース・サービス

  • Oracle Database Resource Manager

  • Oracle Clusterware

  • 実行時接続ロード・バランシング

Oracle Database QoS Managementは、使用されているすべてのリソースのリソース待機時間を定期的に評価します。パフォーマンス・クラスの作業リクエストの平均レスポンス時間がパフォーマンス目標で指定されている値より大きい場合、Oracle Database QoS Managementは収集されたメトリックを使用してボトルネック・リソースを探します。可能な場合、Oracle Database QoS Managementは、サーバー・プールのサイズを調整するかOracle Database Resource Managerで使用されているリソース・プランのコンシューマ・グループを変更する推奨を提供します。

6.4.1.1 データベース・サービス

データベース・サービスは、関連する作業リクエストをグループ化するために使用できるメカニズムを提供します。

アプリケーションは、データベース・サービスを使用してクラスタ・データベースに接続します。ユーザーがデータベースに対して開始した問合せは、Webベース・アプリケーションとは異なるサービスを使用する場合があります。異なるサービスは、異なるタイプの作業リクエストを表す場合があります。Oracle RACデータベースに対して行われた各コールまたはリクエストが作業リクエストです。

また、データベース・サービスを使用して、ポリシー管理型データベース、管理者管理型データベースおよびマルチテナント・データベースのデータベース・ワークロードを管理および測定できます。サービスで使用されるリソースを管理するために、一部のサービスは複数のOracle RACインスタンスに同時にデプロイできますが、その他のサービスはサービスを使用するワークロードを分離するために単一のインスタンスにのみデプロイできます。

Oracle RACクラスタでは、Oracle Database QoS Managementはデータベース・サービスが提供されているサーバー・プールとそのノードを監視します。サービスは、データベース管理者がデータベースに対して作成します。ポリシー管理型データベースでは、サービスは指定されたサーバー・プールのすべてのサーバーで実行されます。アプリケーションを水平にスケーリングできないためシングルトン・サービスが必要な場合は、最小サイズと最大サイズが1のサーバー・プールで実行するようにサービスを制限できます。複数のプールでのポリシー管理型シングルトン・サービスのサポートは、測定および監視のみに制限されます。

パフォーマンスを管理するためにOracle Database QoS Managementを使用するには、サーバー・プールで実行される1つ以上のポリシー管理型データベースを作成する必要があります。管理者管理型データベースの場合、データベース・インスタンスは汎用サーバー・プールに置かれており、Oracle Database QoS Managementはこれらのデータベースの監視しかできません。

Oracle Database QoS Managementを初めて構成する場合、監視されているサーバー・プールに検出されたサービスごとにデフォルトのパフォーマンス・ポリシーが作成されます。これらのデフォルト・パフォーマンス・クラスの名前はservice_name_pcです。リソースを監視および管理するワークロードでは、データベース・サービスを使用してデータベースに接続する必要があります。

6.4.1.2 Oracle Database Resource Manager

Oracle Database QoS Managementは、Oracle Database Resource Managerを使用して、パフォーマンス・クラスへのリソースの割当てを管理します。

Oracle Database Resource Manager (リソース・マネージャ)は、リソース割当て方法の例です。リソース・マネージャは、管理者が指定したリソース・プランに基づいて、リソース・コンシューマ・グループのコレクション間にCPU占有率を割り当てることができます。リソース・プランは、CPUで実行する機会のパーセンテージを割り当てます。

Oracle Database QoS Managementは、既存のリソース・マネージャ・プランは調整しません。Oracle Database QoS Managementは、複雑なマルチレベルのリソース・プランであるAPPQOS_PLANというリソース・プランをアクティブ化します。Oracle Database QoS Managementは、パフォーマンス・クラスであるコンシューマ・グループおよび各コンシューマ・グループのリソース・プラン・ディレクティブも作成します。

Oracle Database QoS Managementの推奨を実装してパフォーマンス・クラスのコンシューマ・グループをプロモートまたは降格する場合、Oracle Database QoS Managementは、リソース・プランで指定されたCPU占有率へのパフォーマンス・クラスのマッピングに推奨された変更を加えます。コンシューマ・グループを変更することで、現在パフォーマンス目標を満たしていないパフォーマンス・クラスがアクセスできるCPUリソースが増やされます。

マルチテナント・データベースの場合、PDBに対して直接CPU共有を管理するかわりに、Oracle Database QoS Managementは、PDB共有をCDBの各PDBに割り当てて、マルチテナント・データベースのCPU共有を管理します。最初に、マルチテナント・データベースの各PDBに50個のPDB共有が割り当てられます。パフォーマンス・クラスがパフォーマンスの目標を満たしていない場合、PDB共有がドナーPDBから再度割り当てられ、ターゲットPDBに割り当てられます。Oracle Database QoS Managementは、リソース・プランのPDB共有の割当てを管理します。マルチテナント・データベース用にOracle Database QoS Managementが使用する2つのリソース・プランは、次のとおりです。

  • ORA$QOS_CDB_PLAN: 各PDBのCPU共有を管理します

  • ORA$QOS_PLAN: PDB共有を管理します

ノート:

「Oracle Database QoS Managementのリソース・プランの編集」で指定されているものを除いて、Oracle Database QoS Managementリソース・プランは編集しないでください。

6.4.1.3 Oracle Clusterware

Oracle Database QoS Managementは、Oracle Clusterwareで構成されるサーバー・プールを管理および監視します。

Oracle Database QoS Managementを使用する前に、Oracle Clusterwareをインストールして構成する必要があります。クラスタ管理者は、ポリシー管理型Oracle RACデータベースのデプロイに使用するサーバー・プールを作成する必要があります。管理者管理型Oracle RACデータベースは、汎用サーバー・プールのみを使用します。

Oracle Database QoS Managementを初めて構成し、初期ポリシー・セットを作成するときに、Oracle Database QoS Managementで管理する必要のあるサーバー・プールと監視のみ必要なサーバー・プールを指定します。Oracle Database QoS Managementで管理するサーバー・プールを選択した場合、Oracle Database QoS Managementは、そのサーバー・プールで実行するすべてのパフォーマンス・クラスで使用されるリソースを監視します。パフォーマンス・クラスがパフォーマンス目標を満たしていない場合、Oracle Database QoS Managementは、必要に応じて追加のリソースを提供するためにサーバー・プール間でのサーバーの移動を推奨できます。

6.4.1.4 実行時接続ロード・バランシング

Oracle Database QoS Managementで管理されているリソースを使用するアプリケーションでは、接続ロード・バランシングと透過アプリケーション・フェイルオーバー(TAF)も利用できます。

ランタイム接続ロード・バランシングでは、アプリケーションが作業を完了するために接続をリクエストしたときに、Oracleクライアントが接続プール内の接続をインテリジェントに割り当てることができます。新しい接続のルーティング先インスタンスの決定は、データベース・インスタンスが提供する現在のパフォーマンス・レベルに基づいて行われます。

接続ロード・バランシングにより、サービスをサポートしているすべてのインスタンスにユーザー接続を分散できます。サービスごとに、-clbgoalオプションを指定した適切なSRVCTLコマンドを使用して接続ロード・バランシングの目標を設定することで、リスナーがロード・バランシングに使用する方法を定義できます。SRVCTLを-failovermethodおよび-failovertypeオプションなどと使用して、サービスのすべてのユーザー用の単一のTAFポリシーを指定できます。

関連項目:

6.4.2 高可用性管理とOracle Database QoS Management

Oracle Database QoS Managementはアプリケーションのワークロードに最適なパフォーマンス・レベルを達成するのに役立ちます。

パフォーマンス管理と高可用性管理システムは密接に関連しています。通常、ユーザーはパフォーマンスが許容される場合にのみシステムが稼働している(使用可能である)とみなします。Oracle Database QoS Managementとパフォーマンス目標を使用して、許容されるパフォーマンス・レベルを指定および維持できます。

Oracle Database QoS Managementは、システムが動的ワークロード条件下でサービス・レベル合意を満たせるようにリソース割当てを最適化するランタイム・パフォーマンス管理製品です。Oracle Database QoS Managementは、ビジネスにとって最も重要な作業が必要なリソースを取得できるようにするための推奨を提供します。Oracle Database QoS Managementは、現在の要求とリソースの可用性に基づいてリソース割当てのリバランスを支援します。ビジネスにとって重要な作業が正常に完了するように、重要でない作業は抑止されます。

Oracle Database QoS Managementは、パフォーマンスを向上させるための機能ではありません。Oracle Database QoS Managementの目的は、最適なパフォーマンス・レベルを維持することです。Oracle Database QoS Managementは、パフォーマンスと可用性の両方に影響するシステム・パラメータが適切に設定され、それらが一定であることを前提としています。たとえば、FAST_START_MTTR_TARGETデータベース・パラメータは、データベース・書込みチェックポイントがデータ・ファイルをブロックする頻度を制御します。このパラメータに低い値を使用すると、データベースのリカバリに要する時間が短縮されますが、redoログ・データを頻繁に書き込むオーバーヘッドがデータベースのパフォーマンスに悪影響を及ぼす可能性があります。Oracle Database QoS Managementは、このようなパラメータに指定された値については推奨を行いません。

高可用性の管理には、ワークロードに関連せず、ワークロードの管理の影響を受けない問題が数多く含まれます。たとえば、システムの可用性は、ソフトウェア・アップグレード・イベントの頻度と期間に大きく依存します。システムの可用性は、ハードウェア障害の頻度にも直接依存します。ワークロードの管理では、ソフトウェア・アップグレードの頻度やハードウェア障害の頻度を変更できません。