Autonomous DatabaseでのCPU/IOシェアの管理

Autonomous Databaseには、様々なコンシューマ・グループに割り当てられた事前定義済のCPU/IOシェアが付属しています。ワークロードに異なるCPU/IOリソース割り当てが必要な場合は、これらの事前定義済CPU/IOシェアを変更できます。

コンシューマ・グループに割り当てられたCPU/IOシェアによって、コンシューマ・グループが他のコンシューマ・グループに関して使用できるCPU/IOリソースが決まります。デフォルトのCPU/IOシェアは、Autonomous Databaseワークロードによって異なります。

各サービスに割り当てられたCPUシェアは、データベース内のCPU使用率が100%に達したときに、それらのサービスを使用するセッションが取得するCPUおよびIOの量を決定します。その場合、各サービスは、割り当てられたCPU共有に比例したCPUおよびIOリソースを取得します。自動オプティマイザ統計収集など、Autonomous Databaseで自動タスクとして実行されるOracle内部プロセスは、リソース共有1で実行されます。

ワークロード・タイプ 詳細

データ・ウェアハウス

デフォルトでは、コンシューマ・グループHIGH、MEDIUM、LOWに割り当てられるCPU/IOシェアは、それぞれ4、2、1です。デフォルト設定では、コンシューマ・グループHIGHは、必要に応じて、LOWに比べて4倍のCPU/IOリソース、MEDIUMに比べて2倍のCPU/IOリソースを使用できます。コンシューマ・グループMEDIUMは、必要に応じて、LOWに比べて2倍多くのCPU/IOリソースを使用できます。

トランザクション処理

JSONデータベース

デフォルトでは、コンシューマ・グループTPURGENT、TP、HIGH、MEDIUMおよびLOWに割り当てられるCPU/IOシェアは、それぞれ12、8、4、2、1です。デフォルト設定では、コンシューマ・グループTPURGENTは、必要に応じて、LOWに比べて12倍多くのCPU/IOリソースを使用できます。コンシューマ・グループTPは、必要に応じて、MEDIUMに比べて4倍多くのCPU/IOリソースを使用できます。

CPU/IO共有は、Database ActionsまたはPL/SQLパッケージCS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVEを使用して設定できます。

データベース・アクションを使用してコンシューマ・グループのCPU/IO共有値を変更するには:

  1. ADMINユーザーとしてデータベース・アクションへのアクセス。
  2. データベース・アクションの起動パッドの「管理」で、「Resource Managementルールの設定」をクリックします。
  3. 「CPU/IOシェア」タブを選択して、コンシューマ・グループのCPU/IOシェア値を設定します。
  4. 値を入力するか、「減分」または「増分」アイコンをクリックして、コンシューマ・グループに必要なCPU/IOシェア値を設定します。
  5. 「変更の保存」をクリックします。
  6. 「OK」をクリックします。

CPU/IOシェア値をデフォルトにリセットするには、「デフォルト値のロード」をクリックし、「変更の保存」をクリックして移入された値を適用します。

データベース・アクションを使用するかわりに、PL/SQLプロシージャCS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVEを使用して、コンシューマ・グループのCPU/IOシェア値を変更できます。

たとえば、Autonomous Data Warehouseデータベースで、ADMINユーザーとして次のスクリプトを実行し、コンシューマ・グループHIGH、MEDIUMおよびLOWに対してCPU/IO共有をそれぞれ8、2および1に設定します。これにより、コンシューマ・グループHIGHは、コンシューマ・グループMEDIUMに比べて4倍のCPU/IOリソースを、コンシューマ・グループLOWに比べて8倍のCPU/IOリソースを使用できるようになります:

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'HIGH', shares => 8);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'MEDIUM', shares => 2);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'LOW', shares => 1);
END;
/

たとえば、Autonomous JSON DatabaseまたはAutonomous Transaction Processingデータベースで、ADMINユーザーとして次のスクリプトを実行し、コンシューマ・グループTPURGENT、TP、HIGH、MEDIUMおよびROWに対してCPU/IOシェアをそれぞれ12、4、2、1および1に設定します。これにより、コンシューマ・グループTPURGENTは、コンシューマ・グループTPに比べて3倍のCPU/IOリソースを、コンシューマ・グループMEDIUMに比べて12倍のCPU/IOリソースを使用できるようになります:

BEGIN
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'TPURGENT', shares => 12);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'TP', shares => 4);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'HIGH', shares => 2);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'MEDIUM', shares => 1);
   CS_RESOURCE_MANAGER.UPDATE_PLAN_DIRECTIVE(consumer_group => 'LOW', shares => 1);
END;
/

デフォルトの共有値に戻す場合は、PL/SQLプロシージャCS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUESを使用してデフォルト設定に戻すことができます。

たとえば、Autonomous Data Warehouseデータベースで、ADMINユーザーとして次のスクリプトを実行し、コンシューマ・グループHIGH、MEDIUMおよびLOWのCPU/IOシェアをそれぞれデフォルト値に設定します。

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'HIGH', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'MEDIUM', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'LOW', shares => TRUE);
END;
/

たとえば、Autonomous JSON DatabaseまたはAutonomous Transaction Processingデータベースで、ADMINユーザーとして次のスクリプトを実行し、コンシューマ・グループTPURGENT、TP、HIGH、MEDIUMおよびLOWのCPU/IO共有のデフォルト値を設定します:

BEGIN
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'TPURGENT', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'TP', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'HIGH', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'MEDIUM', shares => TRUE);
   CS_RESOURCE_MANAGER.REVERT_TO_DEFAULT_VALUES(consumer_group => 'LOW', shares => TRUE);
END;
/

詳細は、CS_RESOURCE_MANAGERパッケージを参照してください。