DB2 代理是服務器端服務應用請求的核心進程/線程。理解其生命週期、類型轉換、參數調控及連接集中器特性,對解決生產環境性能瓶頸至關重要。本文從原理、配置、V9.5 新特性、常見故障排查到調優建議,全方位剖析 DB2 通信與連接體系。
NUM_INITAGENTS 決定),待命狀態,不服務任何連接。事務結束連接斷開時,協調代理視 NUM_POOLAGENTS 設定決定是返回池變為空閒,還是直接銷毀。
| 參數 | 含義 | 備註 |
|---|---|---|
| MAXAGENTS | 實例總代理上限(協調+空閒+子代理) | V9.5 已廢棄 |
| NUM_POOLAGENTS | 代理池最大空閒代理數 | 連接集中器啟用時可暫時超限應對突發 |
| NUM_INITAGENTS | 實例啟動時預創建空閒代理數 | 建議與 NUM_POOLAGENTS 一致,避免運行時創建開銷 |
| MAX_COORDAGENTS | 單節點最大協調代理數 | 直接限制並發活動連接數 |
| MAX_CONNECTIONS | 允許連接實例的最大連接數 | 大於 MAX_COORDAGENTS 即啟用連接集中器 |
| MAXCAGENTS | 令牌數量,協調代理需獲取令牌才能服務 | V9.5 已廢棄 |
數據庫級參數 MAXAPPLS 限制單庫最大連接數,所有庫之和不得超過 MAX_CONNECTIONS。
默認 MAX_CONNECTIONS = MAX_COORDAGENTS,一連接對一協調代理。將前者調大於後者即啟用集中器,引入邏輯代理(對應外部連接)與工作代理(實際 EDU)分離模型:多個邏輯代理排隊共享較少的工作代理,實現連接複用,降低內存佔用與創建銷毀開銷。
形象類比:飯店顧客(連接)> 服務員(協調代理)> 廚師/小工(子代理)。座位數 = MAX_CONNECTIONS,在編服務員上限 = MAX_COORDAGENTS,休息區座位 = NUM_POOLAGENTS。
兩參數均可設 AUTOMATIC:
MAX_CONNECTIONS AUTOMATIC, MAX_COORDAGENTS 固定值:連接無上限,協調代理受限。雙 AUTOMATIC:系統按集中率 = MAX_CONNECTIONS/MAX_COORDAGENTS 動態調整。例:300/100=3,每 300 連接增 100 協調代理。啟用需重啟實例生效。限制:聯邦庫不支持、WITH HOLD 游標無效、全局臨時表需顯式關閉、兩階段提交連接專用等。
db2 list applications 查看當前連接,排除內部進程(db2stmm、db2taskd、db2wlmd、db2evml)。db2pd -agents -db <db> 檢視 Idle agents=0、Active coord agents 接近 MAX_COORDAGENTS。db2 get snapshot for dbm 關注 Max agents overflow > 0、High water mark for coordinating agents。MAXAGENTS;MPP/SMP 增 MAXAGENTS 或 MAX_COORDAGENTS;集中器模式增 MAX_CONNECTIONS。多因緩衝池過大導致實例無法分配足夠共享內存。緊急繞過:設置註冊變量 DB2_OVERRIDE_BPF 強制縮小緩衝池,重連後再調整。V9.1+ 默認緩衝池自動增長(NPAGES=-2),建議交由 STMM 自動管理。
db2set -all 含 DB2COMM=TCPIP。SVCENAME 與 /etc/services(或 Windows services 文件)一致,或直接用端口號(<65536)。netstat -a 驗證端口監聽;防火牆放行;Windows 注冊表 SystemPages 擴大緩解「No buffer space」。Agents created from empty pool / Agents assigned from pool 比值調整。AUTOMATIC,自動平衡資源與並發。| 特性 | V8 | V9.1 | V9.5 |
|---|---|---|---|
| 子代理存在環境 | 僅 MPP/SMP | 僅 MPP/SMP | 所有環境 |
| MAXAGENTS/MAXCAGENTS | 有效 | 有效 | 廢棄 |
| AUTOMATIC 支持 | 無 | 無 | MAX_CONNECTIONS/MAX_COORDAGENTS/NUM_POOLAGENTS |
| 連接集中器啟用條件 | MAX_CONNECTIONS > MAX_COORDAGENTS | 同左 | 同左,含 AUTOMATIC 邏輯 |
掌握代理池動態、連接集中器權衡、關鍵參數調優邏輯,配合 db2pd/快照監控,即可構建高並發、低延遲、資源友好的 DB2 服務層。V9.5 的自動化能力更讓 DBA 從繁瑣閾值計算中解脫,專注業務價值。