oracle

使用Oracle Instance Caging技術

蔡志隆 2019/11/25 08:00:00
35

前言:

當多個Instance運行在同一台伺服器上時,為了避免Instance間的相互影響,從oracle 11g r2開始推出了Instance Caging的概念。Instance Caging能夠限制資料庫Instance使用的CPU資源。使用Instance Caging,需要設定cpu_count和resource_manger_plan兩個參數。是對CPU資源使用的一個簡單管理方法。

 

Step 1、安裝Oracle 11g r2

Oracle Instance Caging技術從 Oracle 11g r2版以後才有支援。本例以至Oracle官網下載11g r2版。
連結:
 
 下載完並解壓縮後,進入資料夾點擊Setup圖示開始安裝Orcle database,依照安裝程式步驟設定安裝路徑和系統管理員密碼後進行安裝並完成。
 
 

Step 2、下載解壓縮並開啟SQL Developer連線DB

 

安裝Oracle完成後,還必須再下載Oracle 管理工具,我們以SQL Developer 19.2.1為例。

連結:

https://www.oracle.com/tw/tools/downloads/sqldev-v192-downloads.html

 

下載完成並解壓縮後,點擊sqldeveloper應用程式開啟。開啟後點擊「連線」的按鈕,輸入連線名稱、使用者名稱、密碼、、主機名稱(localhost)、角色和SID等。Oracle預設的帳號是SYS(無大小寫之分)。密碼則輸入當初安裝Oracle時設定的管理密碼。
因為SYS帳號屬於管理者,所以角色要選擇SYSDAB。
 

Step3、開始設定Instance Caging

首先,先查看目前的資源計畫(Resource Plan)

指令:select plan FROM dba_rsrc_plans;

再打指令查看CPU的個數

指令:select value from v$osstat where stat_name = 'NUM_CPUS';


開啟Instance Caging,需要設定二個參數

參數CPU_COUNT指定了Oracle實例可以同時使用的CPU的數量,資料庫的部分功能配置依賴於CPU_COUNT參數,比如查詢優化器,並行查詢和資源管理器。

原文網址: https://kknews.cc/code/bmzopy9.html

-- 依照上述查詢到CPU的個數填入下方的cpu_count參數

說明:參數CPU_COUNT指定了Oracle實例可以同時使用的CPU的數量,資料庫的部分功能配置依賴於CPU_COUNT參數,比如查詢優化器,並行查詢和資源管理器。

alter system set cpu_count = 4;

-- 如果没有特定的資源管理需求,最簡單的解決方案是使用預設計畫

alter system set resource_manager_plan = 'default_plan'; 

通常有兩種方法來設置Instance Caging:

1.Partitioning:在這種方法中,所有實例的CPU_COUNT的總和小於或等於系統的CPU數目,實例之間互不干擾。

2.Over-provisioning:在這種方法中, 所有實例的CPU_COUNT的總和超過系統的CPU數目,實例的性能會相互影響。

 

Step4、監控 Instance Caging

顯示資源管理器的限制效果

指令:

-- 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://oracle-base.com/articles/11g/instance-caging-to-manage-cpu-usage-in-oracle-database-11gr2

https://kknews.cc/zh-tw/code/bmzopy9.html

 

 

Over-provisioning:
通常有兩種方法來設置instance caging:

原文網址: https://kknews.cc/code/bmzopy9.html

 

 

 

蔡志隆