在 HP-UX 多邏輯分區環境執行並行 LOAD 時,db2diag.log 記錄 DIA8533C The system memory limit was reached,導致 LOAD 掛起。根因為作業系統核心參數 (訊息佇列、共享記憶體、信號量) 過小,無法支援多邏輯分區並行操作的資源需求。
2006-06-02-18.00.56.823018+480 I25267A383 LEVEL: Severe
PID : 28027 TID : 1 PROC : db2lload 3
INSTANCE: XXXX NODE : 003 DB : XXXX
FUNCTION: DB2 UDB, database utilities, sqluAllocTBufs, probe:100
MESSAGE : DIA8533C The system memory limit was reached.
sqluAllocTBufs 分配傳輸緩衝區失敗,觸發嚴重錯誤HP-UX kernel parameters 章節msginfo_msgmni, seminfo_semmni, seminfo_semmns, shmmax, shmseg 等
# 查看說明
db2osconf -h
# 參數說明
-c # Client only
-f # Compare to current
-h # Help
-l # List current
-m # 指定記憶體 GB 數
-n # 指定 CPU 數
-p # 訊息佇列效能等級 (0-3)
-s # 擴展因子 (1-2)
-t # 執行緒數
單一物理機器運行多個 DB2 邏輯分區時,必須放大參數。使用 -p (效能等級) 與 -s (擴展因子) 參數:
# 範例:單物理機 3 個邏輯分區
db2osconf -p 3 -s 2
-p 3:設定訊息佇列效能等級為 3 (最高,適合高並行)-s 2:擴展因子 2,針對多 LPAR 環境放大資源配額/etc/system (或 HP-UX 相應核心配置檔)db2stop force; db2start| 措施 | 頻率/時機 | 工具/指令 |
|---|---|---|
| 核心參數合規檢查 | 每次 OS 升級/補丁後 | db2osconf -f (比對目前值) |
| 訊息佇列使用率監控 | 日常巡檢 | ipcs -q / ipcs -q | awk '{sum+=$5} END {print sum}' |
| 共享記憶體段檢查 | 例行維護 | ipcs -m | grep db2inst |
| LOAD 作業並行度控制 | 執行前評估 | 避免同時啟動過多 LOAD,分批次執行 |
https://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/start/t0006477.htmhttps://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/core/r0008113.htm