TRIM优化SSD性能

一、什么是TRIM

TRIM 是 SSD(固态硬盘)管理存储块的关键机制,直接影响写入性能和寿命。它的核心作用是提前清理无效数据,避免 SSD 在写入时因“垃圾回收”(Garbage Collection)拖慢速度。

  1. TRIM 的本质

    是操作系统与 SSD 的“协同垃圾回收”机制,通过提前清理无效数据优化性能。

  2. TRIM 的工作原理

    TRIM 是操作系统向 SSD 发送的指令,主动通知哪些数据块已无效,让 SSD 提前清理。

    TRIM 的执行流程
    • 用户删除文件:
      文件系统(如 ext4/NTFS)标记该文件占用的逻辑地址为“空闲”。
    • 操作系统发送 TRIM 命令:
      通过 fstrim 或 discard 挂载选项,将空闲逻辑地址列表发送给 SSD。
    • SSD 内部处理:
      SSD 控制器记录这些块为“可回收”,在空闲时后台擦除(非实时,避免影响性能)。
    • 后续写入优化:
      当需要写入数据时,SSD 直接使用已擦除的块,无需额外步骤。

二、启用 TRIM


1. 确认 SSD 是否支持 TRIM

运行以下命令检查:

lsblk --discard

sudo fstrim --all --verbose

如果输出显示 DISC-GRAN(丢弃粒度)和 DISC-MAX(最大丢弃大小)不为 0B,则 SSD 支持 TRIM。


2. 检查当前 TRIM 状态

查看是否已启用 定期 TRIMfstrim.timer):

systemctl status fstrim.timer
  • 如果显示 active (waiting),说明已启用自动 TRIM。
  • 如果未启用,继续下一步手动设置。

3. 启用 TRIM(两种方法)

方法 1:使用 fstrim 服务(推荐)

麒麟系统通常已内置 fstrim,只需启用定时任务:

sudo systemctl enable fstrim.timer  # 启用定时 TRIM
sudo systemctl start fstrim.timer   # 立即启动
sudo systemctl status fstrim.timer  # 检查状态
  • 默认每周运行一次,可通过修改 /etc/systemd/system/fstrim.timer 调整频率。

方法 2:手动添加 discard 挂载选项(不推荐)

编辑 /etc/fstab,在 SSD 分区的挂载选项中添加 discard

sudo pluma /etc/fstab

示例(修改前):

UUID=1234-5678 / ext4 defaults 0 1

修改后(添加 discard):

UUID=1234-5678 / ext4 defaults,discard 0 1

注意

  • discard 会实时 TRIM,可能影响性能(建议优先用 fstrim.timer)。
  • 修改后运行 sudo mount -o remount / 生效。

4. 手动执行 TRIM(测试)

sudo fstrim -av

输出示例:

/: 10.5 GiB trimmed

表示 TRIM 已成功执行。


5. 验证 TRIM 是否生效

查看内核是否支持 TRIM:

sudo dmesg | grep -i trim

或检查 SSD 的 TRIM 支持:

sudo hdparm -I /dev/sdX | grep TRIM

/dev/sdX 替换为你的 SSD 设备,如 /dev/nvme0n1


6. 额外优化(可选)

调整 TRIM 频率

编辑 fstrim.timer

sudo pluma /etc/systemd/system/fstrim.timer

修改 OnCalendar(例如改为每天):

[Timer]
OnCalendar=weekly  # 默认每周,可改为 daily

然后重新加载:

sudo systemctl daemon-reload

启用 SSD 的 APST(节能模式优化)

sudo pluma /etc/default/grub

GRUB_CMDLINE_LINUX 添加:

scsi_mod.use_blk_mq=1 nvme_core.default_ps_max_latency_us=2000

更新 GRUB:

sudo update-grub

总结

步骤 命令/操作 说明
1. 检查 TRIM 支持 lsblk --discard 确认 SSD 是否支持 TRIM
2. 启用自动 TRIM sudo systemctl enable fstrim.timer 推荐方式,每周自动运行
3. 手动执行 TRIM sudo fstrim -av 测试 TRIM 是否正常工作
4. 验证 TRIM sudo dmesg \| grep -i trim 查看内核日志确认
5. 可选优化 修改 fstrim.timer 或 GRUB 参数 调整频率或 SSD 节能设置

注意事项

  • 优先使用 fstrim.timer,而非 discard 挂载选项(避免性能下降)。
  • NVMe SSD 用户可额外启用 nvme_core 参数优化延迟。

完成后,你的系统将自动维护 SSD 性能,延长使用寿命!

发表回复 0

Your email address will not be published.