我正在尝试设置
writeback_percent
值 > 40,但它只接受 0 到 40 之间的值。
如果我设置
echo 50 > /sys/block/bcache0/bcache/writeback_percent
然后当我读到值时
more /sys/block/bcache0/bcache/writeback_percent
我有 40。对于 value<=40,设置工作正常。
我的缓存类型设置是
more /sys/block/bcache0/bcache/cache_mode
writethrough [writeback] writearound none
我知道这很危险,但这对我来说不是问题。
据我了解 writeback_percent 是缓存中脏数据使用的百分比,为什么我不能使用 90% 或 100% 的可用空间?也许我不太了解这个设置?
答案1
这是 bcache 驱动代码中的硬编码值 - linux/drivers/md/bcache/writeback.h。更改此限制的唯一方法是从源代码重建驱动程序。
答案2
根据 https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt 回写百分比 如果非零,bcache 会尝试通过限制后台写回并使用 PD 控制器平滑调整速率来保持脏缓存的百分比。
所以这是脏缓存量的目标。解释下面的辩论,这个目标是动态实现的,而活动不断发生。即使在 writeback_rate 下,只要有足够的时间,bcache 也可能完成写回操作。