在 SSD 上使用 Btrfs 文件系统的相关优化

发布于 2025-02-10 00:50:08 字数 2301 浏览 7 评论 0

0.1 优化挂载参数

在 Linux 中挂载 SSD 上的 btrfs,可以採用各种参数进行优化:

  #<file system><mount point><type><options><dump><pass>
  UUID=<略>/ btrfs defaults,ssd,discard,noatime,compress=lzo,subvol=@

0.1.1ssd

btrfs 文件系统有对 SSD 进行优化,在挂载参数中加入 ssd 即可。该参数不会自动啓用 TRIM/discard。

0.1.2discard

可以通过以下命令确认 SSD 是否支持 TRIM:

  $ sudo hdparm -I /dev/sdX | grep TRIM
  *Data Set Management TRIM supported (limit 8 blocks)

若 SSD 支持 TRIM 命令,可以在 /etc/fstab 中啓用 discard 参数。建议将 discard 挂载参数作爲首选。据 debian wiki 所述,包括三星、镁光、英睿达在内的一些 SSD 在 discard/TRIM 上有问题 ,不能合适地处理 TRIM 命令。该参数不是必需的,也可以自 定义週期性运行 fstrim 命令来取代该参数,使用该命令前要确认 SSD 支持 TRIM,否则可 能造成数据丢失。当 SSD 有足够的空馀空间或(未分配的)可用空间时不需要该参数。

0.1.3noatime

挂载参数可以加入 noatime ,通过禁止更新访问记录来减少不必要的写操作以提高性能。 该选项对 HDD 同样有性能提升。btrfs 的默认配置爲 realtime

0.1.4compress

打开压缩功能在通常情况下有利于提高传输性能(并非绝对),也可以节省存储空间。加入 以下挂载参数:

  compress=lzo
  compress=zlib

lzo 速度更快,zlib 压缩率更高。注意确认 SSD 主控是否是非压缩主控,若爲压缩主控不 建议加入该参数。

0.1.5 写缓存

若 SSD 带有缓存,啓用 Write Cache 可以提高性能:Disks -> Drive Setting -> Enable Write Cache,但在突然断电的情况下可能造成数据丢失。


0.2I/O 调度

SSD 结构不同于传统硬盘,寻址时间短,I/O 调度算法可选择 noop 以降低延迟。以下命令 可查看与修改调度器:

  cat /sys/block/sdX/queue/scheduler # sdX 指你的设备
  sudo tee /sys/block/sdX/queue/scheduler <<< noop

注意以上方法并不持久,重啓后会重置。如果 SSD 是系统唯一的存储设备,可考虑通过 elevator=noop 内核参数设置 I/O 调度器。也可使用 udev 规则来修改调度器,对多存 储设备同样有效:

  sudo touch /etc/udev/rules.d/60-ssd-scheduler.rules #创建该文件

文件内容如下:

  # set deadline scheduler for non-rotating disks
  ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="noop"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

故人的歌

暂无简介

文章
评论
26 人气
更多

推荐作者

笑脸一如从前

文章 0 评论 0

mnbvcxz

文章 0 评论 0

真是无聊啊

文章 0 评论 0

旧城空念

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文