cgroups v2 中内存.swappiness 文件的替换是什么

zla*_*ick 5 swap cgroups

我目前正在从 cgroups v1 迁移到 cgroups v2。我找不到我在 cgroups v1 中使用的 memory.swappiness 文件。关于swap的文件只有以下几个

memory.swap.current
memory.swap.events
memory.swap.high
memory.swap.max
Run Code Online (Sandbox Code Playgroud)

但根据文档,它们中的每一个都与 swappiness 参数无关。我在cgroups v2中找不到有关文件memory.swappiness的任何信息,只找到有关/proc/sys/vm/swappiness文件和文件中vm.swappiness参数的信息/etc/sysctl.conf。这是否意味着无法使用 cgroups v2 设置交换性?

操作系统:Debian 11

Ste*_*itt 6

那\xe2\x80\x99是对的,使用cgroups v2,交换只能全局控制。Tejun Heo(设计并实现了 cgroups v2)给出了以下理由

\n
\n

\xe2\x80\x99s 不太清楚交换编码是什么。其中很多与文件支持的 IO 相比,匿名内存的 IO 是如何考虑其固有的更高随机性的。因此,它更多的是底层硬件的功能而不是工作负载。此外,实现也不是很正确,或者 xe2x80x93 iirc,行为会根据回收者的不同而有所不同。

\n
\n

实际上,交换性更多的是关于系统中的 I/O 平衡,这通常是系统\xe2\x80\x99s 存储的属性,而不是单个工作负载行为。

\n

cgroups v2 提供了其他可用于控制内存使用的设置,通常以比交换性更合适的方式:可以设置阈值来完全防止回收 ( memory.min)、尝试最小化回收 ( memory.low) 以及限制交换使用(memory.swap.max在极端情况下memory.swap.high) 。

\n