Linux Kernel 5.16將合併基於DAMON的記憶體回收機制
在亞馬遜的 DAMON 作為數據監控訪問框架被合併到 Linux Kernel 5.15 之後,在即將到來的 Linux Kernel 5.16 版本中會在該基礎上合併記憶體回收機制,用於在遇到系統 RAM 壓力時進行記憶體回收。 作為 Andrew Morton 的 Linux 5.16 補丁系列的一部分,基於 DAMON 的記憶體回收在過去幾個月里一直在內核郵件清單中被審查。
這種主動的記憶體頁回收可以在輕度記憶體壓力下表現良好,並利用亞馬遜的 DAMON 框架來確定系統上要回收的 cold pages。
之前從事該補丁工作的開發人員將其好處總結為:”DAMON_RECLAIM 在 v5.13 Linux 內核上使用 ZRAM 交換設備和 50ms/s 時間配額,實現了 40.34% 的記憶體節省,運行時間開銷只有 3.38%。 為此,DAMON_RECLAIM 只消耗了5.16%的單一CPU時間。 在 CPU 消耗中,預計只有高達約 1.448% 的單次 CPU 時間用於訪問模式監控”
這種基於DAMON的再生支援可配置的”速度限制”,以配置要花多少資源來確定哪些頁面可以被分頁出來。 啟用這個功能需要啟用新的CONFIG_DAMON_RECLAIM構建選項。 內核參數可以傳遞給damon_reclaim,或者還有/sys/modules/damin_reclaim作為一個sysfs介面。 在這些選項中,有調整最小年齡作為識別冷記憶體區域的時間閾值,限制回收的時間,回收的記憶體大小,檢查浮浮浮水印前的最小和最大時間,採樣間隔,等等。