本教學將引導您透過簡單易懂的方式,掌握 DB2 9.7 Workload Manager (WLM) 的核心物件關係與新功能。您將學會:理解 WLM 物件架構、運用服務類的 BUFFERPOOL PRIORITY、善用工作負載定義中的連接屬性通配符與 ADDRESS 屬性、以 CPUTIME 度量建立閾值、實作服務子類重新映射(優先級時限)、使用範例腳本建立分層服務類環境、透過 WLM 預存程序設定用戶端資訊、以及運用事件監控器進行短/長期監控。
先決條件:具備 DB2 管理經驗但未接觸 WLM 的 DBA。系統需求:DB2 Enterprise Server Edition 9.7 (Linux/UNIX/Windows),範例腳本請從附件 WLMLab.zip 取得並解壓至 C:\COBRA_LAB_SCRIPTS\WLM。
db2pd、表函數、預存程序、事件監控器
支援 APPLNAME、CLIENT_USERID、CLIENT_APPLNAME、CLIENT_WRKSTNNAME、CLIENT_ACCTNG 等屬性使用 * 通配符,大幅減少腳本撰寫量。例如:
CREATE WORKLOAD "work1" CLIENT_USERID('db2user*');
不可使用通配符:SYSTEM_USER、SESSION_USER、SESSION_USER GROUP、SESSION_USER ROLE。
可依網域名稱、IPv4、IPv6 (長/短格式) 定義工作負載:
CREATE WORKLOAD "IPADDR1" ADDRESS('mydomain.ibm.com');
CREATE WORKLOAD "IPADDR2" ADDRESS('9.26.53.111');
CREATE WORKLOAD "IPADDR3" ADDRESS('2002:91a:519:13:204:acff:fe57:6135');
CREATE WORKLOAD "IPADDR4" ADDRESS('fe80::202:55ff:fe9a:6eee');
工作負載層級現可收集聚合活動資料(COLLECT AGGREGATE ACTIVITY DATA EXTENDED),優勢包括:
新增 BUFFERPOOL PRIORITY 選項 (HIGH/MEDIUM/LOW),可影響特定服務類活動佔用緩衝池頁面比例。範例:
CREATE SERVICE CLASS "Managers" UNDER "Marketing"
AGENT PRIORITY 5
PREFETCH PRIORITY HIGH
BUFFERPOOL PRIORITY HIGH;
DB2 服務類可關聯 Linux WLM 服務類,自動將代理程式關聯至對應的 OS 級服務類,提供 CPU 配額管理、動態調整、借用閒置配額及 OS 級統計。
ALTER SERVICE CLASS "Marketing" OUTBOUND CORRELATOR "_DB2_Marketing";

透過服務類閾值自動提升/降低進行中活動優先級,以控制長時間查詢、改善短查詢吞吐量,取代 Query Patroller。實作三步驟:
WLM_TIERS / WLM_SHORT / WLM_MEDIUM / WLM_LONG)CPUTIMEINSC 觸發,CHECKING EVERY 5 SECONDS)
AGGSQLTEMPSPACE:控制服務子類所有活動的系統臨時表空間上限CPUTIME:限制單一活動在分區上的處理器時間SQLROWSREAD:限制單一活動可讀取的列數上限配合新監控指標 act_cpu_time_top、act_rows_read_top、lock_wait_time_top 更易設定合理閾值。
三個新監控元素:num_remaps (重新映射次數)、act_remapped_in (映入活動數)、act_remapped_out (映出活動數)。
wlmtiersdefault.db2:依已耗用執行時間重新映射,示範服務類/工作負載/閾值用法wlmtierstimerons.db2:依估計成本在執行前重新映射wlmtiersdrop.db2:清除上述腳本建立的 WLM 物件db2cmd),執行 SETUP_COBRA_LABS.CMD 初始化環境WLM01.CMD 查看預設 WLM 環境 (輸出至 WLM01_OUTPUT.TXT)WLM03.CMD / WLM04.DB2,執行 WLM03.CMD 建立自訂環境 (含兩個工作負載/服務類配置、閾值、事件監控器)WLM01.CMD 驗證新環境,觀察服務超類/子類階層、工作動作集映射規則

WLM05.CMD / wlmtiersdefault.db2,執行 WLM05.CMD 建立分層環境WLM10.CMD (db2pd 報告) 確認統計初始為零WLM20.CMD 建立樣本表 WLM_SAMPLE_TABLE 並載入 20 萬筆資料WLM30.SQL,依序執行查詢觀察工作負載/服務類/工作動作集統計變化

WLM22.CMD (用戶 db2user1,執行 200 次 DML),觀察對應至 CLP_Workload_User1 / CLP_Serv_UserWLM23.CMD (用戶 db2cobra),對應至 CLP_Workload_Admin / CLP_Serv_Admin,工作動作集將寫入映射至 HI 子類、讀取映射至 MED 子類WLM24.CMD (用戶 db2default),對應預設工作負載 SYSDEFAULTADMWORKLOAD / WLM_TIERS / WLM_SHORT#4 long query) 觸發 CPUTIMEINSC 閾值,驗證活動從 WLM_SHORT 重新映射至 WLM_MEDIUM

CALL WLM_COLLECT_STATS() 將記憶體統計寫入事件監控器表格#5 Workload event monitor、#6 Workload aggregate (新功能:工作負載層級聚合)、#7 Service Class、#8 Work Action Set、#9 Threshold violations (顯示導致重新映射的閾值違規)WLM10.CMD 取得 db2pd 完整報告,對照 WLM30.SQL 底部的完整表格查詢

DB2 9.7 LUW Workload Manager 提供強大且易於客製化的資源控制能力,無需修改應用程式碼即可滿足 SLA 與管理需求。本教學完整示範了服務類優先級時限、連接屬性通配符、地址連接屬性、緩衝池 I/O 優先級等新特性的實際部署與驗證流程。