Oracle-11g-R2

如何使用 Instance Caging 管理 Oracle Database 11g 中的 CPU 使用率?

  • November 13, 2017

我正在對 cpu 使用情況進行一些測試,知道我可以使用 Instance Caging 來提高我的資源使用率。有人可以讓我知道該怎麼做嗎?我正在使用 oracle 11g。

實例鎖定是 Oracle Database 11g 第 2 版 (11.2) 企業版中的一項功能,可簡化整合環境中 CPU 使用率的管理。通過啟用資源管理器並在每個實例中設置 CPU_COUNT 參數,您可以限制實例可以使用的 CPU/核心的最大數量。為此,您必須注意三點。

1. Enabling Resource Manager
2. Setting CPU_COUNT
3. Monitoring Instance Caging

1.啟用資源管理器 資源管理器已經在Oracle數據庫中可用。資源管理器預設不啟用,因此必須通過指定資源計劃來啟用它,然後實例籠子才能生效。

SELECT plan FROM dba_rsrc_plans;

 PLAN
------------------------------
DEFAULT_PLAN
INTERNAL_QUIESCE
INTERNAL_PLAN
APPQOS_PLAN
DEFAULT_MAINTENANCE_PLAN
ETL_CRITICAL_PLAN
MIXED_WORKLOAD_PLAN
ORA$AUTOTASK_SUB_PLAN
ORA$AUTOTASK_HIGH_SUB_PLAN
DSS_PLAN

10 rows selected.
SQL>

如果您在實例中沒有特定的資源管理需求,最簡單的解決方案是使用預設計劃。

  ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = default_plan;

2.設置CPU_COUNT

ALTER SYSTEM SET cpu_count = 2;

3.監控實例Caging

Resource Manager 的節流效果可以使用以下視圖的 CONSUMED_CPU_TIME 和 CPU_WAIT_TIME 列來顯示。CONSUMED_CPU_TIME 是消費者組消耗的 CPU 時間的毫秒數,而 CPU_WAIT_TIME 是由於資源管理器節流而等待 CPU 的時間。

SELECT name, consumed_cpu_time, cpu_wait_time
FROM v$rsrc_consumer_group;

ALTER SESSION SET nls_date_format='DD-MON-YYYY HH24:MI:SS';

SET LINESIZE 100
SELECT begin_time,
  consumer_group_name,
  cpu_consumed_time,
  cpu_wait_time
FROM   v$rsrcmgrmetric_history
ORDER BY begin_time;

引用自:https://dba.stackexchange.com/questions/190798