Database Resource Manager で、コンシューマグループ REPORTS に対しレベル1で MGMT_P1=25(CPU 配分 25%)の管理(配分)ディレクティブを設定したリソースプランを有効化している。一方、REPORTS に UTILIZATION_LIMIT(MAX_UTILIZATION_LIMIT)は設定していない。
サーバの CPU が飽和していない(空きがある)時間帯に、REPORTS グループのセッションだけが重い問合せを1本実行した。このセッションが使える CPU として最も適切なものを選べ。(単一選択)
- A
MGMT_P1=25が絶対上限として働くため、CPU に空きがあってもREPORTSは常に最大 25% しか使えない - BCPU 配分ディレクティブ(
MGMT_Pn)はCPU が飽和して競合が起きているときにのみ配分比として作用する。CPU に空きがある今は抑制されず、REPORTSは25% を超えて利用可能(必要なら 100% 近くまで)。25% を絶対上限にしたいならUTILIZATION_LIMITを別途設定する必要がある - Cリソースプランが有効な時点で全グループは
MGMT_Pnの値で常時固定割り当てされ、空き CPU は他へ回らず遊休する - D
MGMT_P1は I/O 帯域の配分専用で、CPU 使用量には影響しない
正解・解説・誤答理由・ひっかけを見る▼ open
解説
Resource Manager の CPU 配分(management)ディレクティブ MGMT_Pn は、CPU が飽和して取り合いになったときに、誰に何%ずつ配るかを決めるものである。
言い換えると競合時にだけ効く比率であり、CPU に余裕があるときは抑制しない。
したがって CPU に空きがある時間帯に REPORTS だけが走っているなら、競合が無いので 25% という比率は作用せず、必要なだけ CPU を使える(100% 近くまで)。
「空いていても絶対に 25%(あるいは指定%)を超えさせたくない」=ハードキャップが欲しい場合は、配分ディレクティブではなく
UTILIZATION_LIMIT(MAX_UTILIZATION_LIMIT)を設定する。これは CPU に空きがあっても絶対上限として頭を抑える。
この「配分(competition 時のみ) vs 絶対上限(常時キャップ)」の違いが本問の核心。
- A
MGMT_Pnは絶対上限ではない。絶対上限はUTILIZATION_LIMIT。空きがあれば 25% を超えて使える。 - C空き CPU を遊休させて固定割り当てするのではない。競合が無ければ抑制せず使わせる(リソースを無駄にしない設計)。
- D
MGMT_Pnは CPU 配分のディレクティブ。I/O 専用ではない(I/O は別の仕組み)。
MGMT_P1=25 = 上限 25%」と読む誤り(A)。これは競合時の配分比であって絶対上限ではない。
絶対上限が必要なら UTILIZATION_LIMIT を使う、という配分 vs キャップの区別が頻出ポイント。