首页/系统/Linux 运维命令速查/fstrim 释放 SSD 空间
磁盘与文件系统51 条

fstrim 释放 SSD 空间

SSD 删除文件后空间不会立即归还闪存:fstrim(或 systemd fstrim.timer)周期性通知设备 TRIM;对支持 discard 的云盘与 NVMe 是标配维护项。

Linux 运维命令速查系统更新于 2026-10-13

fstrim 是什么

SSD 与支持回收的云盘在删除文件后,闪存空间不会立即归还给设备;fstrim 负责通知设备回收这些已删除的块,从而维持写入性能与使用寿命。多数发行版提供 fstrim.timer 周期执行。对支持 discard 的云盘与 NVMe 设备来说,它是标准的维护动作。

基本信息

用途让 SSD 与云盘回收已删除的数据块
语法fstrim -av 或 fstrim -v 挂载点
自动化systemd 的 fstrim.timer 通常按周执行
相关机制挂载选项 discard 表示实时回收

典型使用场景

  • 云主机 SSD 长期高负载写入后性能下降,做一次回收
  • 批量删除文件后确认空间是否归还
  • 核对 fstrim.timer 是否正常运行
  • 评估实时 discard 与周期回收之间的取舍
  • 排查虚拟化平台不支持回收导致的环境限制
  • 把容量释放与性能维护纳入常规巡检

常用示例

常用示例
sudo fstrim -av                      # 对所有支持的文件系统执行回收
sudo fstrim -v /                     # 只处理根文件系统
systemctl status fstrim.timer --no-pager | head -n 5   # 检查定时器
systemctl list-timers fstrim.timer --no-pager          # 查看下次执行时间
findmnt -o TARGET,SOURCE,FSTYPE | head                 # 确认挂载与文件系统
lsblk -d -o NAME,ROTA,DISC-GRAN | head                 # 判断设备类型

参数与现象

项含义说明
-a对所有合适文件系统执行最常用
-v输出详细结果显示回收的字节数
挂载点只处理指定文件系统可按分区分别执行
discard 挂载选项实时回收有写入抖动,需要权衡
不支持提示平台未透传回收能力属环境限制,不是故障
挂载时启用 discard 属于实时回收,空间归还及时但会带来写入抖动;由 fstrim.timer 周期执行是更常见的折中方案。
大容量盘执行回收时可能出现数秒的卡顿:避开业务高峰执行,必要时按挂载点分批处理。
虚拟化平台不透传回收指令时,fstrim 会报不支持,这属于环境限制而非设备故障,排查方向应转向平台侧配置。
判断设备是否具备回收能力,可以看 lsblk 报告的单次回收粒度;粒度为 0 表示该设备不参与回收,配置再多也不会有效果。

易错点

  • 把不支持回收当成磁盘故障:实际是平台未透传该能力
  • 在业务高峰执行全盘回收:出现明显 IO 抖动,影响业务响应
  • 同时启用实时 discard 与周期回收:行为重复,收益有限还可能加重抖动
  • 从不检查定时器状态:以为系统会自动回收,实际早已停止运行

数据来源与参考

  • man 8 fstrim
  • man 5 systemd.timer(fstrim.timer 单元)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌