Oracle リソースマネージャの仕様を確認

CPU を管理するリソースマネージャ。12c のマルチテナントに対応し、CDB (コンテナデータベース)、PDB (プラガブルデータベース)での CPU リソース制御が可能となった。
複数 PDB が存在する環境では、Oracle で使用可能なリソースに対し、各 PDB でどれだけ許容するかを設定する。



share ディレクティブ

share ディレクティブには、 CPU リソース(utilizaztion_limit)と、パラレルサーバ比率(parallel_server_limit)について設定する。例えばある PDBに、share=2 とした場合、share=1 が指定された PDB と比べ、2倍のリソースを使用することが出来る。

この share 値から算出した全体サイズに対し、CPU リソース(utilizaztion_limit) と、パラレルサーバ比率(parallel_server_limit) でどのように割り振るのかを指定する。

utilizaztion_limit と parallel_server_limit パラメータ

例えば、2つの PDB がある場合。

PDB01: share=1、utilizaztion_limit=90、parallel_server_limit=50
全体リリースの 25% を割当てられ、
そのうち CPU リソースは90% まで、パラレルサーバ実行の比率は50%まで。

PDB02: share=3、utilizaztion_limit=100、parallel_server_limit=100
全体リリースの 75% を割当てられ、
そのうち CPU リソースと、パラレルサーバ実行の比率は100%。
つまり無制限( 75% をフルに使える)

パラレルサーバ比率(parallel_server_limit)の最大値は、
初期化パラメータ「parallel_servers_target」をもとに比率で算出する。

CDB リソースプランを使用するための準備

ペンディングエリアを作成後に、dbms_resource_manager パッケージで
提供されているプロシージャを使用する。

create_cdb_plan プロシージャ

CDB リソースプランの作成

create_cdb_plan プロシージャを実行すると、自動化メンテナンスタスク(ora$autotask)とPDB デフォルト割当て(ora$default_pdb_directive)のリソースプランが作成される。

自動化メンテナンスタスク(ora$autotask)のデフォルト

share=-1
utilizaztion_limit=90
parallel_server_limit=100
share=-1 だけ特殊で、20%指定した意味になる。

create_cdb_plan_directive プロシージャ

CDB リソースプランディレクティブ作成

update_cdb_plan_directive プロシージャ

CDB リソースプランディレクティブ変更

CDB リソースプランの確認 SQL

リソースプランの確認では、dba_cdb_rsrc_plan_directives を参照する。

SQL> select
         plan, pluggable_database, shares, utilization_limit, parallel_server_limit
     from dba_cdb_rsrc_plan_directives;