我有一个文件服务器,其中有一堆磁盘在BTRFS池中一起运行,并希望添加一个用于缓存的SSD。我主要不是在加快速度,但我想抓住常规的小访问,以便能够关闭硬盘的大部分时间,而不是大量使用(不运行它们24/7将节省能源,并应使磁盘更长的时间)。
据我所知,目前有两种在Linux中实现的SSD缓存技术,dm-cache和bcache。dm-缓存仍然被告知要更有效率,但这两个方面的开发都在进行,我不需要为绝对的最大效率进行调优。
在阅读bcache文档时,我想到了以下几种选择:
writeback_delay:当脏数据被写入缓存并且以前没有包含任何数据时,在启动写回之前等待一定时间。默认为30。writeback_percent:如果非零,bcache试图保持这个百分比的缓存脏,通过节流背景写和使用PD控制器,以平稳地调整速率。writeback_running:如果关闭,就根本不会对脏数据进行回写。脏数据仍将被添加到缓存中,直到大部分数据已满为止;只用于基准测试。默认为on。
为writeback_delay
设置一个足够大的值似乎是我的工作:每小时只写一次,或者(我假设这会发生),如果缓存已经满了。
这是否是一个合理的设置,我是否考虑过其他成功的旋转磁盘?如果完全满足我的要求,我也可以选择完全不同的路线。
看起来@gorkypl是寻找类似问题的另一个解决方案,但是它有不同的需求和环境,也没有得到任何答案。
发布于 2014-04-25 10:04:16
我觉得你的方法太复杂了。
读取缓存:这里没有什么可做的。如果您有足够的ram,这将在linux中自动完成。
编写缓存--基本上这是您想要的。但是,如果写入到磁盘,最终也会导致唤醒。
因此,您可以直接将受影响的文件系统放到ram-disk /dev/shm或ssd上。
省电:我不认为频繁的向下/向上旋转会节省电力。相反,磁盘可能会提前死亡,因此生产过程需要额外的能源消耗。也是非常强大的力量。
https://unix.stackexchange.com/questions/126380
复制相似问题