固态硬盘在速度和性能方面相比传统机械硬盘提供了巨大的优势。然而,为了保持最佳效率并延长其使用寿命,SSD 需要进行定期的维护。其中一个关键的维护任务就是释放未使用的数据块,这正是 TRIM 命令发挥作用的地方。Linux 中的 fstrim 命令利用 TRIM 协议通知 SSD 哪些数据块已不再使用,从而让硬盘擦除它们,进而提升性能并优化磨损均衡。了解如何高效使用 fstrim 对于确保您的 SSD 持续平稳运行至关重要。
为什么 TRIM 对 SSD 如此重要?
SSD 用于存储数据的 NAND 闪存有一个特性:在每次成功重写之前,必须先擦除数据块。随着用户创建、修改和删除的文件越来越多,SSD 往往会堆积大量未使用的数据块。因此,当不支持 TRIM 的 SSD 接近满载容量时,由于 SSD 无法分辨哪些块是冗余的,硬盘速度就会变慢。然而,使用 TRIM 命令可以让 Linux 通知 SSD 关于这些多余块的信息,从而确保获得最佳性能。
fstrim 命令旨在向挂载的文件系统上所有未使用的块发送 TRIM 指令。
1. 检查 SSD 是否支持 TRIM
在使用之前,我们需要确保您的 SSD 支持 TRIM。大多数现代 SSD 都支持这一功能。
sudo lsblk --discard-
!1
请查看您的 SSD 下的 INLINECODE939f6038(丢弃粒度)和 INLINECODE60805fa9(最大丢弃)字段。如果它们包含非零值,说明您的 SSD 支持 TRIM。
请将 /dev/sdX 替换为正确的驱动器名称。
2. 手动运行 fstrim
要在挂载的文件系统(如 INLINECODEc2a69b7e 或 INLINECODE79f2ca89)上手动运行 fstrim:
sudo fstrim /
这将对根文件系统 (/) 执行 TRIM 操作。我们也可以通过指定其他分区的挂载点,在它们上面执行此操作。
sudo fstrim /home
3. 在所有挂载的文件系统上运行 fstrim
我们可以使用 INLINECODE99279e18 选项在所有挂载的文件系统上运行 INLINECODE028c5a8b,这将自动对所有符合条件的分区执行 TRIM。
sudo fstrim -a
!2
4. 检查被 Trim 掉的数据量
运行 INLINECODEdd1a2037 后,我们可以通过使用 INLINECODE4ed1ebe7(详细模式)选项来查看释放了多少空间。
sudo fstrim -v /
输出结果将显示已 trim 的字节数。
5. 使用 Cron 任务或 Systemd 定时器自动执行 fstrim
虽然手动运行 fstrim 是可行的,但自动化该过程的效率要高得多。现代 Linux 发行版(如 Ubuntu 和 Fedora)默认使用系统定时器来进行调度。
systemctl status fstrim.timer
!3
如果该服务未激活,我们可以启用它。
sudo systemctl enable --now fstrim.timer
添加此行以每周运行 fstrim。
@weekly /sbin/fstrim -a
6. 避免在某些文件系统上执行 TRIM
并非所有文件系统都支持 TRIM,例如 xfs(需要正确的配置)。如果要让特定文件系统不参与 TRIM 操作,只需确保在 /etc/fstab 文件中挂载它时带有“no data discard”(不丢弃数据)选项即可。
!How-to-Use-the-fstrim-Command-in-Linux-for-SSD-Optimization如何在 Linux 中使用 fstrim 命令优化 SSD 性能?
结语
fstrim 命令是 Linux 系统上进行 SSD 优化的重要工具。通过手动运行 fstrim 或通过系统定时器及 cron 任务自动化这一过程,我们可以确保 SSD 随着时间的推移依然保持高效运行。定期使用 TRIM 不仅可以通过回收未使用的空间来提高速度,还有助于通过更好的磨损均衡来延长 SSD 的寿命。无论您是手动优化系统还是自动化该流程,fstrim 都提供了一种简单而强大的方式来让您的 SSD 保持最佳状态。