Oracle-11g-R2
如何使用 Instance Caging 管理 Oracle Database 11g 中的 CPU 使用率?
我正在對 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;