Swap

cgroups v2中memory.swappiness文件的替換是什麼

  • March 31, 2022

我目前正在從 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編碼的內容。其中很多都與文件支持的 IO 相比,如何

$$ un $$對匿名記憶體有利的 IO 正在考慮其固有的更高隨機性。因此,它更多的是底層硬體的功能,而不是工作負載。此外,實施也不太正確——iirc,行為會因回收者的不同而有所不同。

在實踐中,swappiness 更多的是關於系統中的 I/O 平衡,這通常是系統儲存的屬性,而不是單個工作負載行為。

cgroups v2 提供了其他可用於控制記憶體使用的設置,通常以比 swappiness 更合適的方式:可以設置門檻值以完全阻止回收(memory.min),嘗試最小化回收(memory.low),並限制交換使用(memory.swap.max以及在極端情況下memory.swap.high) .

引用自:https://unix.stackexchange.com/questions/697448