我目前正在从 cgroups v1 迁移到 cgroups v2。而且我找不到我在 cgroups v1 中使用的 memory.swappiness 文件。只有以下关于交换的文件
memory.swap.current
memory.swap.events
memory.swap.high
memory.swap.max
但根据文档,它们中的每一个都与 swappiness 参数无关。我在 cgroups v2 中找不到有关文件 memory.swappiness 的任何信息,仅有关/proc/sys/vm/swappiness
文件中的文件和 vm.swappiness 参数的信息/etc/sysctl.conf
。这是否意味着无法使用 cgroups v2 设置 swappiness?
操作系统:Debian 11
没错,使用 cgroups v2,swappiness 只能全局控制。Tejun Heo(设计和实施 cgroups v2)给出了以下理由:
在实践中,swappiness 更多的是关于系统中的 I/O 平衡,这通常是系统存储的属性,而不是单个工作负载行为。
cgroups v2 提供了其他可用于控制内存使用的设置,通常以比 swappiness 更合适的方式:可以设置阈值以完全阻止回收(
memory.min
),尝试最小化回收(memory.low
),并限制交换使用(memory.swap.max
以及在极端情况下memory.swap.high
) .