如何调整 Btrfs 文件系统以获得更好的性能

Btrfs 是一个非常新的文件系统,仍处于开发和基准测试阶段。
就性能而言,通常不需要太多,因为它适用于默认选项。

欢迎来到之路教程(on itroad-com)

3. 使用 noatime 选项而不是 relatime。

noatime 挂载选项可能会加速文件系统,尤其是在我们有大量快照的情况下。
对文件的每次读取访问都应该更新其 unix 访问时间。
COW 将会发生,并将进行更多的写入。
现在默认是 relatime,它更新访问时间的频率更低。

4. 其他挂载选项

以下是我们可以根据需要和要求考虑的其他几个安装选项。

  • space_cache - Btrfs 将可用空间数据存储在磁盘上,以使块组的缓存更快(内核 2.6.37+)。这是一个持久的更改,可以安全地引导到旧内核。
  • nodatacow - 不要在写时复制数据。 datacow 用于确保用户可以访问文件的旧版本或者文件的较新版本。 datacow 确保我们从未将部分更新的文件写入磁盘。 nodatacow 通过直接覆盖数据(如 ext[234])来略微提升性能,代价是在系统故障时可能会获得部分更新的文件。除非工作负载是随机写入大型数据库文件,否则性能增益通常 < 5%,其中差异可能变得非常大
  • compress=zlib - 更好的压缩率。这是旧内核的默认设置和安全。
  • compress=lzo - 最快的压缩。 btrfs-progs 0.19 或者更旧的版本将使用此选项失败。内核 2.6.39 及更新版本中的默认值。
  • autodefrag - 将检测对现有文件的随机写入并启动后台碎片整理。它非常适合 bdb 或者 sqlite 数据库,但不适用于虚拟化镜像或者大型数据库(目前)。一旦开发人员确保它不会一遍又一遍地对文件进行碎片整理,他们会将其移至默认设置。 (内核 3.0+)
  • inode_cache - 启用新的空闲 inode 缓存。此选项可能会在首次运行时降低系统速度。 (内核 3.0+)

2. 启用在线碎片整理。

Btrfs 提供了一个挂载选项 (-o autodefrag ) 来启用自动碎片整理助手。
当一个块被复制并写入磁盘时,自动碎片整理助手会标记文件的该部分进行碎片整理并将其交给另一个线程,从而在后台自动减少碎片。
此功能可为小型数据库工作负载、浏览器缓存和类似工作负载带来显着优势。
最棒的是在文件系统挂载并积极执行操作时可以进行碎片整理。

1. Btrfs的性能随着ssd的使用而提升。

Btrfs 可感知 SSD,并利用 TRIM/Discard 允许文件系统将未使用的块报告给存储设备以供重用。
在 SSD 上,Btrfs 避免了不必要的搜索优化,并积极地在集群中发送写入,即使它们来自不相关的文件。

注意:我们使用 -o ssd 挂载以启用调整。

日期:2020-09-17 00:14:18 来源:oir作者:oir