首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

DB2 9.5 WLM 服務類完整指南:從建立到屬性配置與監控驗證

     編輯:DB2 教學

環境建置:建立測試資料庫與範例表

# 建立資料庫(指定 GBK 碼頁,預設為 UTF-8/1208)
db2 "create database DB2TEST1 using codeset GBK territory CN collate using system pagesize 4096"

# 驗證配置
db2 get db cfg for db2test1
# 關鍵參數:Database codepage = 1386, Database codeset = GBK, Territory = CN

# 確認版本
db2level
# DB2 code release "SQL09050" → 確為 9.5

# 建立測試表 PROJECT(20 筆資料)
db2 connect to db2test1 user rhette
db2 -tvf project.sql  -- 含 CREATE TABLE、PK、INDEX
db2 "select * from project"  -- 驗證資料

服務類架構:父類與子類的兩層結構

  • Service Superclass(服務父類):資源配額、優先級、預取優先級的總管;可建立多個子類。
  • Service Subclass(服務子類):實際執行工作的單位;繼承父類資源設定,可覆寫 Agent Priority、Prefetch Priority、收集設定。
  • 所有資料庫請求皆在服務類中執行:用戶請求 → Workload → Service Subclass → Service Superclass;系統請求 → 預設系統服務類。

建立服務父類與子類(含屬性詳細說明)

-- 先清理舊物件(須先 DISABLE 再 DROP)
alter service class subclass_rhette under super_class disable;
alter service class subclass_db2admin under super_class disable;
alter service class super_class disable;
drop service class subclass_rhette under super_class;
drop service class subclass_db2admin under super_class;
drop service class super_class;

-- 建立父類
create service class super_class;

-- 建立子類 rhetor(繼承父類預設優先級,開啟完整活動採集)
create service class subclass_rhette under super_class
  agent priority default
  prefetch priority default
  collect activity data on all with details and values
  collect aggregate activity data base
  collect aggregate request data base;

-- 建立子類 db2admin(提高代理優先級 + 高預取優先級)
create service class subclass_db2admin under super_class
  agent priority 6
  prefetch priority high;

關鍵屬性深度解析

屬性選項/範圍效用預設/繼承規則
AGENT PRIORITYDEFAULT / integer (-6~6 on Windows, -20~20 on Linux/Unix,值越小優先級越高)代理執行緒 CPU 排程優先級(相對於作業系統基準)父類 DEFAULT;子類 DEFAULT 繼承父類;預設子類不可改
PREFETCH PRIORITYHIGH / MEDIUM / LOW / DEFAULT預取 I/O 請求優先序父類 MEDIUM;子類 DEFAULT 繼承父類
COLLECT ACTIVITY DATANONE / ON COORDINATOR / ON ALL + WITHOUT/WITH DETAILS + AND VALUES活動完成後送事件監視器:NONE/僅協調器分區/所有分區;是否含 SQL 文本/編譯環境/輸入參數值僅適用子類;預設 NONE
COLLECT AGGREGATE ACTIVITY DATABASE / EXTENDED / NONE定期彙總活動統計(頻率由 wlm_collect_int 控制)僅適用子類;預設 NONE
COLLECT AGGREGATE REQUEST DATABASE / NONE定期彙總請求統計僅適用子類;預設 NONE

WLM 收集時間間隔 (wlm_collect_int)

  • 單位:分鐘;0 表示不自動收集/重設。
  • 每隔 x * wlm_collect_int 分鐘收集並重設統計,送活動統計事件監視器(寫檔或寫表)。
  • 較小間隔捕捉短期行為但增加開銷;較大間隔適合長期趨勢分析。
  • 每資料庫設定,非每 SQL/應用程式。

驗證:db2pd 查看服務類狀態

db2pd -db DB2TEST1 -serviceclasses

輸出關鍵欄位:

  • Service Class Name / ID / Type (Superclass/Subclass)
  • Agent Priority / Prefetch Priority
  • Collect Activity Opt / Collect Aggr Activity Opt / Collect Aggr Request Opt
  • Access Count / Activities HWM / Completed / Rejected / Aborted
  • Associated Agents / Non-agent threads

範例輸出確認:SUPER_CLASS (ID=14)、SYSDEFAULTSUBCLASS (ID=15, 自動建立)、SUBCLASS_RHETTE (ID=16, 採集全開)、SUBCLASS_DB2ADMIN (ID=17, Agent Priority=6, Prefetch=High)。

控制中心查看 SYSCAT.SERVICECLASSES 系統視圖

後續擴展:連結 Workload、Threshold、Work Action

  • 建立 WORKLOAD 映射至特定 SERVICE SUBCLASS(依連接屬性、Session 變數等分類)。
  • 於服務類/子類/工作負載/工作動作層級建立 THRESHOLD 限制資源濫用。
  • 定義 WORK CLASS SET + WORK ACTION SET 針對活動類型/成本採集或阻擋。
  • 透過 WLM_GET_* 表函數族即時監控活動分布、資源爭用、統計趨勢。

總結

服務類是 DB2 9.5 WLM 資源管控的核心容器。透過父類統一資源配額、子類差異化優先級與採集策略,配合 Workload 映射與 Threshold 保護,即可構建出「關鍵業務高優先、批次報表可控、異常查詢可觀測可阻擋」的企業級工作負載管理體系。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved