linux系统内存回收(LinuxKernel5.16将合并基于DAMON的内存回收机制)
linux系统内存回收(LinuxKernel5.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接口。在这些选项中,有调整最小年龄作为识别冷内存区域的时间阈值,限制回收的时间,回收的内存大小,检查水印前的最小和最大时间,采样间隔,等等。