Linux 將實體記憶體劃分為頁框,透過虛擬記憶體機制為每個進程提供獨立位址空間。核心子系統包含:頁面快取、匿名頁、頁表、交換空間、OOM Killer。理解這些基礎是調優前提。
調整 vm.vfs_cache_pressure(預設 100,增大加速 inode/dentry 回收),或限制 vm.dirty_ratio/vm.dirty_background_ratio 控制髒頁刷寫頻率。
降低 vm.swappiness(預設 60,建議 10-20),優先保留熱頁在實體記憶體。若記憶體確實不足,需擴容或優化應用記憶體佔用。
為資料庫(Oracle、MySQL)預留 HugePages,減少 TLB Miss 與頁表開銷:vm.nr_hugepages 設定為 SGA/InnoDB Buffer Pool 大小換算值,並關閉透明大頁(THP)。
使用 slabtop 定位高佔用 Cache,結合 kmemleak 排查核心模組洩漏。
-Xms/Xmx、-XX:MaxDirectMemorySize、啟用 UseLargePages、選擇適合負載的 GC 演算法(G1/ZGC)。「監控先行、找準瓶頸、分層優化、驗證效果」。記憶體調優非單一參數調整,需結合業務負載特徵、核心版本、硬體規格綜合評估。