有不同的来源并建议不同的做法。我发现以下建议应该多久运行一次 fstrim。
- 每周由 cron 运行
- 每天由 cron 运行
- 每次启动时运行
最佳选择是什么?为什么? Ubuntu 14.04 默认使用第一个选项。
答案1
TRIM 至少做了三件事:
- 最小化写放大
- 防止长期性能下降
- 不可恢复地删除您的数据
现在这取决于您的优先事项。
对于 1),您根本不应该使用fstrim
,而应该使用discard
文件系统的选项。只有立即修剪所有内容,SSD 才会停止复制不再需要的数据位。但实际上,事实证明,防止写入放大并不那么重要,因为 SSD 可以承受大量写入。
对于 2),fstrim
每周甚至每月使用是完全可以的。没有必要使用即时丢弃或每天修剪 - 这将是一个短期措施,但这是为了保持 SSD 的长期满意。但这也取决于您的使用情况:如果您的文件系统总是满的并且有大量写入,那么您可能需要比文件系统中有大量可用空间但写入次数较少的情况更频繁地进行修剪。
对于 3),您根本不应该使用任何类型的装饰。基本上,如果您希望成为人类,就会犯错误,发生事故 - 就像您刚刚删除了照片集一样,哎呀 - 恢复工具photorec
在 TRIM 之后将不起作用,因为使用 TRIM 一切都将永远消失。
从纯粹的数据恢复角度来看,SSD是一个非常令人头疼的问题。 Linux 中发生了太多的修剪,即使没有询问您(mkfs
意味着修剪,lvremove
/ lvresize
/...可能issue_discards
,一些分区者可能有想法,...)。突然之间,之前可逆的操作变得不可逆,这一切都是为了在某些文件系统基准测试中获得更多分数......
如果您决定fstrim
应该知道 cron 作业所在的位置,以便在发生意外时可以禁用它,这样您就可以在 2) 和 3) 之间取得折衷。一般来说,对于 SSD,您应该确保拥有良好的备份,它们比 HDD 更重要,因为在 SSD 上恢复的机会较小。
答案2
man fstrim
在 Ubuntu 16.04 中有
Running fstrim frequently, or even using mount -o discard, might nega‐ tively affect the lifetime of poor-quality SSD devices. For most desk‐ top and server systems the sufficient trimming frequency is once a week.