中文
注册

Bcache

Bcache简介

Bcache 是Linux内核块设备层cache,支持将一个或多个速度较快的磁盘设备(如SSD)作为读写速度相对较慢的磁盘设备的cache。Bcache从Linux-3.10开始正式并入内核主线。

Bcache具有以下特征:

  1. 一个缓存设备可以作为多个设备的缓存,并且可以在设备运行时动态添加和删除缓存。
  2. 可以从非正常状态关机中恢复,只有当缓存写入到后端设备才会确认写完成。
  3. 正确处理写阻塞和刷缓存。
  4. 支持writethrough、writeback和writearound等写缓存模式。
  5. 检测并避开顺序IO(可配置阈值,或关闭该选项)。
  6. 当检测到SSD延迟超过配置边界值,减少到SSD流量(当一个SSD作为多个磁盘缓存时使用)。
  7. 缓存不命中时预读(默认关闭)。
  8. 高性能的writeback实现:脏数据通过排序后再刷到磁盘中。如果设置了writeback_percent值,后台的writeback进程利用PD控制器根据脏数据比例平滑地处理脏数据。
  9. 使用高效率的B+树,硬件设备足够快速的情况下,bcache随机读可以达到1M IOPS。
  10. 可在生产中稳定的使用。

Bcache的缓存策略

Bcache支持三种缓存策略:writeback(回写策略)、writethrough(写通策略)、writearound(旁路策略)。默认使用writethrough,缓存策略可动态修改。

  • writeback:此策略模式下,则所有的数据将先写入缓存盘,然后等待系统将数据回写到后端数据盘中,此策略默认关闭。
  • writethrough:此策略模式下,数据同时写入缓存盘和后端数据盘,适用于读多写少的场景,此策略默认打开。
  • writearound:选择此策略,数据将直接写入后端磁盘。

常用优化方法

  1. 设置writeback提高写性能。
    echo writeback > /sys/block/bcache0/bcache/cache_mode
  2. 允许缓存顺序I/O或者顺序I/O阈值。
  3. 支持缓存顺序IO。
    echo 0 > /sys/block/bcache0/bcache/sequential_cutoff
  4. 调整顺序IO阈值。
    echo 4M > /sys/block/bcache0/bcache/sequential_cutoff

    上述设置,当顺序IO缓存量超过该阈值后,相应的IO将直接写到后端数据盘上。

  1. 关闭拥塞控制项。
    echo 0 > /sys/fs/bcache/<cache set uuid>/congested_read_threshold_us
    echo 0 > /sys/fs/bcache/<cache set uuid>/congested_write_threshold_us
    congested_read_threshold_us #默认为2000us;
    congested_write_threshold_us #默认为20000us;

更多信息详见bcache主页及手册:

https://bcache.evilpiepirate.org/

https://evilpiepirate.org/git/linux-bcache.git/tree/Documentation/bcache.txt

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词