UNIX/Linux 管理員常透過 ps -ef 檢查 DB2 進程進行問題診斷與資源分析。Solaris/HP-UX 需用 /usr/ucb/ps -axw 才能看到完整引擎可調度單元(EDU)。Windows 下僅見單一 db2sysc 進程,EDU 以執行緒形式運行。本文系統說明各進程功能、啟動時機與配置影響,助你解讀 db2diag.log 並精準診斷效能瓶頸。
真實案例:
db2pclnr(I/O 清理器)佔 90%+ CPU。調整清理器觸發參數後,處理能力提升 50%+。db2rebal 運行中——原為 40GB 表空間新增容器觸發重平衡。重平衡完成後效能恢復正常。db2diag.log 記錄含進程資訊:
2000-03-06-11.53.18.001160 Instance:myInst Node:000
PID:78121(db2agent (TEST)) TID:352
Appid:*LOCAL.payroll.000306140834
lock_manager sqlplrq Probe:111 Database:TEST
DIA9999E An internal return code occurred. Report the following:
"0xFFFFE10E".
PID 78121 對應 db2agent 連接 TEST 資料庫。識別進程角色能加速日誌分析。
| 類型 | 進程名 | 角色 |
|---|---|---|
| 協調代理 | db2agent | 代表應用程式協調工作,透過 IPC/遠端協定與其他代理通訊。所有用戶端連線請求皆分配一協調代理 |
| 子代理 | db2agntp | 啟用 intra_parallel 時,協調代理將請求分派給子代理執行。完成工作後轉為閒置 db2agnta 進入代理池 |
代理池大小受 maxagents、num_poolagents 控制。其他代理類型(如並行恢復代理 db2agnsc)詳見後續章節。


按功能分組(部分列舉):
db2sysc(主引擎)、db2wdog(看門狗)、db2gds(全域守護)、db2syslog、db2resync、db2ipccm(IPC 通訊管理)、db2tcpcm(TCP 通訊管理)db2agent、子代理 db2agntp/db2agntadb2loggr(日誌讀取)、db2loggw(日誌寫入)、db2pclnr(頁面清理)、db2pfchr(預取)、db2dlock(死鎖偵測)、db2event(事件監視)db2fcmd(快速通訊管理器)、db2acd(自動用戶端重導向)db2bm(備份/還原)、db2vend(廠商儲存 API)、db2taskd(任務中心)





db2start 後(NUM_INITAGENTS=0):
root 49504 1 0 13:13:07 - 0:00 db2wdog
db2inst1 49180 49504 0 13:13:10 - 0:00 db2sysc
db2inst1 60680 49180 0 13:13:17 - 0:00 db2ipccm
...
連接 SAMPLE 後:出現 db2agent (SAMPLE)、3 個 db2pfchr(對應 NUM_IOSERVERS=3)、1 個 db2pclnr(對應 NUM_IOCLEANERS=1)。執行 db2 connect reset 後代理轉為 db2agent (idle) 留在池中。
掌握進程模型、配置參數影響與實際輸出解讀,能顯著提升 DB2 管理診斷能力。謹記:切勿在正常環境直接干擾進程(如 kill -9),可能導致實例異常停止。