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

DB2 9.7: 掌握全新 Workload Manager 特性,優化資源管理與效能

     編輯:DB2 教學

教學目標與前置準備

本教學將引導您透過簡單易懂的方式,掌握 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。

WLM 核心概念速覽

  • 工作負載:依連接屬性路由工作到服務類
  • 服務類:資源控制的主要單位
  • 閾值:提供預測性與反應性的行為控制
  • 工作動作集:區分讀/寫/呼叫/DML/DDL/Load 等行為類型
  • 監控工具:db2pd、表函數、預存程序、事件監控器

DB2 9.5 WLM 特性總結

DB2 9.7 關鍵新功能詳解

1. 連接屬性通配符

支援 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。

2. 新增 ADDRESS 連接屬性

可依網域名稱、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');

3. 聚合活動資料收集

工作負載層級現可收集聚合活動資料(COLLECT AGGREGATE ACTIVITY DATA EXTENDED),優勢包括:

  • 支援依時間遞減優先級的工作重新映射
  • 為工作負載域閾值提供最佳最大值參考
  • 降低儲存需求下提升監控粒度

4. 緩衝池 I/O 優先級

新增 BUFFERPOOL PRIORITY 選項 (HIGH/MEDIUM/LOW),可影響特定服務類活動佔用緩衝池頁面比例。範例:

CREATE SERVICE CLASS "Managers" UNDER "Marketing"
AGENT PRIORITY 5
PREFETCH PRIORITY HIGH
BUFFERPOOL PRIORITY HIGH;

5. Linux WLM 整合

DB2 服務類可關聯 Linux WLM 服務類,自動將代理程式關聯至對應的 OS 級服務類,提供 CPU 配額管理、動態調整、借用閒置配額及 OS 級統計。

ALTER SERVICE CLASS "Marketing" OUTBOUND CORRELATOR "_DB2_Marketing";

Linux WLM 整合架構

6. 優先級時限

透過服務類閾值自動提升/降低進行中活動優先級,以控制長時間查詢、改善短查詢吞吐量,取代 Query Patroller。實作三步驟:

  1. 建立服務類階層 (WLM_TIERS / WLM_SHORT / WLM_MEDIUM / WLM_LONG)
  2. 建立重新映射閾值 (以 CPUTIMEINSC 觸發,CHECKING EVERY 5 SECONDS)
  3. 建立工作類集與工作動作集完成活動映射

優先級時限運作流程

7. 新增閾值類型

  • AGGSQLTEMPSPACE:控制服務子類所有活動的系統臨時表空間上限
  • CPUTIME:限制單一活動在分區上的處理器時間
  • SQLROWSREAD:限制單一活動可讀取的列數上限

配合新監控指標 act_cpu_time_top、act_rows_read_top、lock_wait_time_top 更易設定合理閾值。

8. 重新映射活動監控

三個新監控元素:num_remaps (重新映射次數)、act_remapped_in (映入活動數)、act_remapped_out (映出活動數)。

9. 新版範例腳本

  • wlmtiersdefault.db2:依已耗用執行時間重新映射,示範服務類/工作負載/閾值用法
  • wlmtierstimerons.db2:依估計成本在執行前重新映射
  • wlmtiersdrop.db2:清除上述腳本建立的 WLM 物件

實作演練:建立自訂 WLM 環境

  1. 開啟 DB2 CLP (db2cmd),執行 SETUP_COBRA_LABS.CMD 初始化環境
  2. 執行 WLM01.CMD 查看預設 WLM 環境 (輸出至 WLM01_OUTPUT.TXT)
  3. 檢視 WLM03.CMD / WLM04.DB2,執行 WLM03.CMD 建立自訂環境 (含兩個工作負載/服務類配置、閾值、事件監控器)
  4. 再次執行 WLM01.CMD 驗證新環境,觀察服務超類/子類階層、工作動作集映射規則

啟動 DB2 CLP DB2 CLP 視窗 腳本檔案瀏覽 首次執行 WLM01.CMD 輸出 WLM04.DB2 新特性對應 WLM04.DB2 續 WLM04.DB2 續 WLM04.DB2 續 自訂 WLM 環境總覽

建立分層服務類展示優先級時限

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

WLM05.CMD 呼叫範例腳本 服務超類/子類定義 閾值映射規則 執行 WLM05.CMD 後環境 db2pd 統計為零 建立樣本表 Command Editor 匯入 WLM30.SQL 連接 SAMPLE 資料庫 執行 Workload 查詢 查詢結果

模擬多重工作負載驗證重新映射

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

WLM22.CMD 設定用戶端資訊 WLM22.CMD 執行 200 次 WLM28.BAT 呼叫 WLM29.DML WLM29.DML SELECT 敘述 db2user1 執行負載 第二次 Workload 查詢結果 Service class activity counts WLM23.CMD 使用 db2cobra 兩個 CLP 視窗並行 Service class activity counts 續 Work Action Set Activity Counts 三個 CLP 視窗並行 第三次 Service class activity counts 重新映射後統計

事件監控器與 db2pd 實用程式實戰

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

收集事件監控器統計 工作負載聚合事件監控器 WLM04.DB2 聚合收集定義 閾值違規事件監控器 db2pd 當前統計 WLM30.SQL 完整表格查詢

結語

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

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