背景:虛擬記憶體與頁面大小的權衡
現代作業系統在虛擬地址空間運行程式,每次記憶體訪問需將虛擬地址轉換為物理地址,由頁表維護映射。頁表大小與頁面大小成反比:頁面越小,頁表越大,地址轉換開銷越大。TLB(轉換後備緩衝器)緩存近期轉換,命中則快,未命中需查主存頁表,消耗大量 CPU 週期。
AIX 5L 多頁面大小支援
POWER5+ 處理器 + AIX 5L V5.3 TL04 引入兩種新頁面:
- 64 KB 頁面:行為同 4 KB,可分頁、池大小動態調整,無需配置,通用型負載首選
- 16 GB 巨型頁面:需 HMC V5R2,鎖定記憶體不可分頁,極高性能場景專用
舊有 4 KB、16 MB 大頁面仍保留。64 KB 頁面在 64 位核心下自動啟用。
DB2 9 自動利用 64 KB 頁面
- 自動檢測硬體/OS 支援,將所有共享記憶體區域(緩衝池、鎖列表、日誌緩衝、實用程式堆、包緩存、監視器堆、共享排序堆)預設為 64 KB
- 進程堆疊同樣自動使用 64 KB
- 代理私有記憶體(如排序堆)目前不自動用 64 KB,可自定義 16 MB
- 16 MB/16 GB 需手動配置
DB2_LARGE_PAGE_MEM 註冊變量,並謹慎規劃記憶體池,避免小頁面池過度分頁
性能實測:OLTP 負載吞吐率提升
大型系統:p5-570,16 路 2.2 GHz,512 GB RAM,473 GB 緩衝池
- 4 KB → 64 KB:+13% 吞吐率
- 64 KB → 16 MB:+8%
- 16 MB → 16 GB:+3%
中型系統:p5-520,2 路 1.9 GHz,32 GB RAM,18 GB 緩衝池
核心指標關聯:CPI 與 TLB Miss Rate
圖表顯示:64 KB 頁面使 CPI 降低 11%,TLB 未命中率降 13%,直接轉化為 13% 吞吐提升。更大頁面進一步提高 TLB 命中率,降低 CPI,獲得更高吞吐。性能增益取決於資料庫大小、可用 RAM 及緩衝池分配——壓力越大,收益越明顯。
監控指令
# svmon -P # 查看進程各頁面大小使用情況
# vmstat -p # 監控 4KB/64KB 頁幀池動態
結論與建議
- 升級至 POWER5+ + AIX 5L TL04 + DB2 9 即可零成本獲得 5%-13% OLTP 性能提升
- 大記憶體、大緩衝池系統收益顯著,建議作為標準部署基線
- 極致性能場景可評估 16 MB/16 GB 巨型頁面,但需嚴格容量規劃
- 監控
svmon 確認 64 KB 頁面實際佔比,驗證生效