DBAtlas · データベース運用アトラス

PDBごとのCPU、メモリ、I/O、ストレージの上限を設定

OracleMultitenant

コマンド

ALTER SESSION SET CONTAINER = <pdb>;
-- CPU (instance caging with Resource Manager; at PDB level in 19c):
ALTER SYSTEM SET cpu_count = 2 SCOPE = BOTH;
-- Memory (sga_min_size guarantee, sga_target upper limit):
ALTER SYSTEM SET sga_target = 512M SCOPE = BOTH;
ALTER SYSTEM SET sga_min_size = 96M SCOPE = BOTH;
ALTER SYSTEM SET pga_aggregate_limit = 2G SCOPE = BOTH;
-- I/O (non-Exadata):
ALTER SYSTEM SET max_iops = 5000 SCOPE = BOTH;
ALTER SYSTEM SET max_mbps = 200 SCOPE = BOTH;
-- Number of sessions (after the PDB is reopened):
ALTER SYSTEM SET sessions = 200 SCOPE = SPFILE;
-- Storage:
ALTER PLUGGABLE DATABASE STORAGE (MAXSIZE 10G MAX_SHARED_TEMP_SIZE 2G);

-- Settings across all PDBs, from the root:
ALTER SESSION SET CONTAINER = CDB$ROOT;
SELECT p.name AS pdb, sp.name, sp.value
FROM   v$system_parameter sp JOIN v$pdbs p ON p.con_id = sp.con_id
WHERE  sp.name IN ('cpu_count','sga_target','sga_min_size','max_iops','max_mbps','pga_aggregate_limit')
ORDER  BY p.name, sp.name;

概要

PDBレベルのパラメータにより、PDBがCDBから使用できるCPU、SGA/PGA、IOPS/MBPS、合計ストレージを制限する。「うるさい隣人」となるPDBが他に影響するのを防ぐ。

使用する場面

統合CDBで、異なるSLAのアプリケーションを同じCDBで実行するとき、またはPDBがサーバー全体を使い切っているのが見られるとき。

注意

PDBのsga_targetはCDBのsga_targetより小さくする必要がある。値が低すぎるとORA-04031や性能問題が発生する。sga_min_sizeの合計がCDBのSGA全体を確保してはならない。PDBのcpu_countを有効にするには、CDBでリソースマネージャプランが有効である必要がある。MAXSIZEに達するとPDBでORA-65114が発生する。

DBAtlas で開く →

関連項目