linux – 如何使用SSD进行缓存,以便我的硬盘可以降速?

我有一个文件服务器,其中有一堆磁盘在BTRFS池中一起运行,并且想要添加一个SSD用于缓存.我主要不是在加快速度,而是想抓住常规的小型访问,以便能够在大量使用时关闭硬盘(不全天候运行它们将节省能源并且应该使磁盘持续时间更长).

据我所知,目前在Linux,dm-cache和bcache中实现了两种SSD缓存技术. dm-cache仍被告知效率更高,但两者都在进行开发,我不需要调整绝对最大效率.

阅读bcache’s documentation,我遇到了这些选择:

writeback_delay: When dirty data is written to the cache and it
previously did not contain any, waits some number of seconds before
initiating writeback. Defaults to
30.

writeback_percent: If nonzero, bcache tries to keep around this
percentage of the cache dirty by throttling background writeback and
using a PD controller to smoothly adjust the rate.

writeback_running: If off, writeback of dirty data will not take
place at all. Dirty data will still be added to the cache until it
is mostly full; only meant for benchmarking. Defaults to on.

为writeback_delay设置足够大的值似乎可以为我完成这项工作:每小时只写回一次,或者(如果缓存运行完全,我认为会发生这种情况).

这是一个合理的设置,我是否还考虑了其​​他任何可以成功旋转磁盘的东西?如果满足我的要求,我也可以选择完全不同的路线.

似乎@gorkypl是looking for another solution on a similar problem,但是有不同的要求和环境,但也没有得到答案.

解决方法:

我认为你的方法太复杂了.

读取缓存:这里没什么可做的.如果你有足够的内存,这将在linux中自动完成.

写缓存基本上这就是你想要的.但是如果最后写入磁盘也会导致唤醒.

因此,您可以将受影响的文件系统直接放在ram-disk / dev / shm或ssd上.

省电:我不认为频繁的降速/升频会节省电力.相反,磁盘可能会提前死亡,因此生产过程会产生额外的能耗.旋转也非常耗电.

上一篇:ssd


下一篇:QD程序设计比赛游记