| 併發連接數 | 所需內存 |
|---|---|
| 50 | 186 MB |
內核維護共享內存標識符 (shmid),每次成功 shmget 調用初始化。shmid 標識共享段,包含:實際共享 RAM 頁、維護段信息的數據結構。ipcs -ma 可查看共享段詳情。
T ID KEY MODE OWNER GROUP NATTCH SEGSZ CPID LPID ATIME DTIME CTIME
m 0 0 -- root root 1 68 351 351 09:38 09:38 09:38
m 1 ... -- dba dba 25 524288 392 12102 20:54 13:25 09:38
m 2 ... -- dba dba 21 4407296 392 12102 13:25 13:25 09:38
m 3 ... -- dba dba 20 5308416 400 12102 09:38 13:25 09:38
sar -k 或 crash > kmastat 監控。/usr/proc/bin/pmap <PID> 分析段分佈(resident/shared/private)。| 項目 | 規則 | 估算值 | 備註 |
|---|---|---|---|
| 系統進程 | +system | 10 MB | |
| 系統庫 | +sys libraries | 15 MB | |
| 用戶進程 | +proc_user | 9.7 MB/用戶 | 大型應用 |
| +proc_sys-wide | 15.6 MB | ||
| 後台進程 | +background priv/shared | 27 MB | |
| 緩衝緩存 | +buffer cache | 100 MB | 若數據庫用 RAW 設備 |
| SysV 共享內存 | +shar-mem | 560 MB | DBA 參數生成的共享段 |
| 內核內存 | +kernel_mem | 150 MB | RAW 設備無調優 |
| 總計 | ~900 MB | 留 1.1GB 給 OS/緩存/擴展 |
頁面大小:DB2 服務器 8192 bytes/page。
shmsys、ipc。semmap、semmni、semmns、semmnu。初始化時檢查內核內存 25% 上限。msgmnb、msgmax ≥ 65535。shmmax:單個共享段最大值,建議設置為物理內存 90~100%(字節)。例:196MB 物理內存 → shmmax=184968806;AIX 上常設 536870912 (512MB)。shmmin:最小段大小,默認 1 通常無需調整。shmmni:系統級共享段標識符上限,決定內核為 shmid 結構預分配內存 (每個 112+8 bytes)。默認 100 約佔 13KB 內核內存。切勿任意設大,受內核地址空間限制 (sun4m 128MB、sun4d 576MB、sun4u 4GB)。shmseg:單進程最大附加段數,默認 32K 受數據類型限制,實際受段大小/系統規模制約。| 命令 | 用途 | 關鍵指標 |
|---|---|---|
sar -m | IPC 活動 | msg/s (消息操作/秒)、sema/s (信號量操作/秒) |
sar -q | 運行隊列/交換隊列 | runq-sz <2、%runocc <90%、swpq-sz、%swpocc |
sar -r | 空閒內存/交換 | freemem (頁)、freeswap (512B 塊) |
sar -u | CPU 利用率 | %usr、%sys、%wio (高=磁盤瓶頸)、%idle |
sar -v | 系統表狀態 | proc-sz、inod-sz、file-sz、lock-sz (共享內存記錄表) |
msgmnb、msgmax ≥ 65535shmmax 設置為物理內存 90~100%DB2 內存規劃是系統級工程:從客戶端連接基線、進程/內核/共享/緩存/空閒五大分類、經驗公式預算、IPC 參數 (共享內存/信號量/消息隊列/AIO) 調優、sar 多維監控構建閉環。核心原則:共享內存參數按實際需求+10% 預留,不可盲目設大;內核內存佔比不超 25%;持續監控 runq/wio/freemem 三大紅線指標。