Swap
cgroups v2中memory.swappiness文件的替換是什麼
我目前正在從 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
) .