Chinese (Simplified)

常见问题

为什么是一个新的子系统,而不是扩展perf或其他用户空间工具?

首先,因为它需要尽可能的轻量级,以便可以在线使用,所以应该避免任何不必要的开销,如内核-用户 空间的上下文切换成本。第二,DAMON的目标是被包括内核在内的其他程序所使用。因此,对特定工具 (如perf)的依赖性是不可取的。这就是DAMON在内核空间实现的两个最大的原因。

“闲置页面跟踪” 或 “perf mem” 可以替代DAMON吗?

闲置页跟踪是物理地址空间访问检查的一个低层次的原始方法。“perf mem”也是类似的,尽管它可以 使用采样来减少开销。另一方面,DAMON是一个更高层次的框架,用于监控各种地址空间。它专注于内 存管理优化,并提供复杂的精度/开销处理机制。因此,“空闲页面跟踪” 和 “perf mem” 可以提供 DAMON输出的一个子集,但不能替代DAMON。

DAMON是否只支持虚拟内存?

不,DAMON的核心是独立于地址空间的。用户可以在DAMON核心上实现和配置特定地址空间的低级原始 部分,包括监测目标区域的构造和实际的访问检查。通过这种方式,DAMON用户可以用任何访问检查技 术来监测任何地址空间。

尽管如此,DAMON默认为虚拟内存和物理内存提供了基于vma/rmap跟踪和PTE访问位检查的地址空间 相关功能的实现,以供参考和方便使用。

我可以简单地监测页面的粒度吗?

是的,你可以通过设置 min_nr_regions 属性高于工作集大小除以页面大小的值来实现。 因为监视目标区域的大小被强制为 >=page size ,所以区域分割不会产生任何影响。