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

DB2 9 自動自我調整記憶體深度解析與實作指南

     編輯:DB2 教學

背景動機

DB2 V9 前,記憶體參數與緩衝集區皆由 DBA 手動設定。但工作負載屬動態變化(負載類型轉換、用戶增減、維護作業、其他應用搶佔資源),手動調優難以即時響應。DB2 9 引入自動自我調整記憶體(Self-Tuning Memory, STM),由記憶體調整器在排序堆、套件快取、鎖定清單、緩衝集區間動態分配資源,簡化配置並優化效能。

STM 運作概覽

  • 預設單分區資料庫啟用 STM(self_tuning_mem = ON);多分區資料庫(DPF)預設停用。
  • Windows/AIX 平台上,STM 另可動態調整資料庫共享記憶體總量(database_memory = AUTOMATIC),依負載向 OS 申請/釋放實體記憶體。
  • 從 V8 遷移的資料庫不自動啟用,需手動開啟。

可自動調整的記憶體消費者與參數

啟用 STM 實作範例

1. 建立單分區資料庫(預設啟用 STM)

db2 CREATE DATABASE MYDB1

驗證配置:

db2 GET DB CFG FOR MYDB1
# 顯示 self_tuning_mem = ON
# pckcachesz, locklist, maxlocks, sortheap, sheapthres_shr, database_memory 皆為 AUTOMATIC
# db_mem_thresh = 10 (未使用記憶體超過 10% 才釋回 OS)

2. 檢視緩衝集區 STM 狀態

db2 "SELECT BPNAME, NPAGES FROM SYSIBM.SYSBUFFERPOOLS"
# NPAGES = -2 表示啟用 STM(IBMDEFAULTBP 預設啟用)

3. 建立/修改緩衝集區啟用 STM

# 新建啟用 STM
db2 CREATE BUFFERPOOL MYBP1 IMMEDIATE SIZE 100 AUTOMATIC PAGESIZE 4K

# 新建不啟用 STM
db2 CREATE BUFFERPOOL MYBP2 IMMEDIATE SIZE 100 PAGESIZE 4K

# 修改既有緩衝集區啟用 STM
db2 ALTER BUFFERPOOL MYBP2 IMMEDIATE SIZE 100 AUTOMATIC

4. 遷移資料庫手動啟用 STM

  1. UPDATE DB CFG USING self_tuning_mem ON
  2. 將相關參數設為 AUTOMATIC(至少兩個消費者啟用,sortheap 除外)。
  3. 緩衡集區用 ALTER BUFFERPOOL ... SIZE AUTOMATIC。

停用 STM 方法

  • 整體停用:UPDATE DB CFG USING self_tuning_mem OFF。參數保持 AUTOMATIC 但凍結目前大小。
  • 單一消費者停用:將參數設為 MANUAL 或具體數值。例:
    db2 UPDATE DB CFG USING locklist MANUAL
    # maxlocks 會同步改為 MANUAL
    db2 UPDATE DB CFG USING sortheap 1000 SHEAPTHRES_SHR 260
    db2 UPDATE DB CFG USING DATABASE_MEMORY MANUAL
    db2 UPDATE DB CFG USING PCKCACHESZ MANUAL
  • 緩衝集區停用:ALTER BUFFERPOOL ... SIZE 100(或 SIZE -1 由 BUFFPAGE 控制),NPAGES 變為正數。

關鍵限制與注意事項

  • STM 需至少兩個消費者啟用(sortheap 除外)才能在區域間重新分配記憶體。
  • locklist 與 maxlocks、sheapthres_shr 與 sortheap 必須同步啟用/停用。
  • 僅當 sheapthres = 0 時才允許 sheapthres_shr/sortheap 自動調整。
  • HADR 環境下 STM 僅在主伺服器運作;角色切換時 STM 隨之切換。
  • 記憶體資源極度受限(如 database_memory 設極小、多實例共存)時 STM 效益有限。
  • 工作負載記憶體特徵劇烈波動時,STM 調整頻率降低,僅嘗試維持近似最佳配置。
通告來源:https://www.cncms.com.cn/db2/q372739.Html
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
消費者控制參數啟用方式
緩衝集區ALTER/CREATE BUFFERPOOL ... SIZE AUTOMATICNPAGES = -2 表示啟用
套件快取pckcachesz = AUTOMATICUPDATE DB CFG 設定
鎖定記憶體locklist = AUTOMATIC, maxlocks = AUTOMATIC兩者必須同步啟用/停用
排序記憶體sortheap = AUTOMATIC, sheapthres_shr = AUTOMATIC兩者同步;需 sheapthres = 0
資料庫共享記憶體database_memory = AUTOMATIC僅 Windows/AIX 支援