TRIM优化SSD性能
一、什么是TRIM
TRIM 是 SSD(固态硬盘)管理存储块的关键机制,直接影响写入性能和寿命。它的核心作用是提前清理无效数据,避免 SSD 在写入时因“垃圾回收”(Garbage Collection)拖慢速度。
-
TRIM 的本质
是操作系统与 SSD 的“协同垃圾回收”机制,通过提前清理无效数据优化性能。
-
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 状态
查看是否已启用 定期 TRIM(fstrim.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 性能,延长使用寿命!