在运行Linux的计算机上安装我的第一个固态硬盘(SSD)后,我开始探索如何充分利用它们。SSD的运行方式不同于传统的磁性驱动器,它们需要在软件中进行额外处理才能发挥最佳功能。在传统的磁盘驱动器上,删除时删除的文件并没有完全从磁盘中删除。这就是您可以恢复已删除文件的原因。基本上,文件系统只是引用文件在磁盘上的位置,当文件被删除时,该引用将被删除,以允许您写入新数据覆盖那些空间中的旧数据。但是,对于SSD,新数据只能写入驱动器上全新的或已擦除的单元。因为在写入之前必须清除空间,所以如果在写入文件时没有足够的可用空间,则必须先擦除该空间。这可能会对性能产生负面影响。如果操作系统在写入新数据之前而不是在写入数据的同时擦除未使用的空间,则可以提高文件保存性能。这种做法是修剪。TRIM命令实质上允许您的操作系统告诉驱动器哪些数据区域不再使用,以便可以擦除它们,从而加快未来写入驱动器的速度,并为SSD用户提供更好的体验。在Linux中,fstrim提供了这个功能,它可以为驱动器写入新数据做好准备并延长驱动器的使用寿命。由于在我使用的Linux发行版上SSD的修剪不是自动的,因此必须安排它,否则SSD的性能会随着时间的推移而下降。为了在驱动器上运行fstrim,驱动器本身及其上的文件系统必须支持TRIM。可以在文件系统挂载期间启用TRIM。例如,要将支持TRIM的设备/dev/sda2挂载到/mnt,您可以运行:mount-text4-odiscard/dev/sda2/mnt一旦启用,TRIM过程本身就相当简单。TRIMSSD也可以在命令行或cron作业中手动完成。作为超级用户(使用su或sudo),运行fstrim/-v进行手动修剪,或设置cron作业以在计算机不使用时定期为您运行此命令。有关fstrim选项的完整列表,请参阅其手册页。硬件支持因使用的驱动器接口类型而异,例如PCI、ATA、SCSI或SD/MMC。您需要咨询您的Linux供应商,了解您的特定发行版如何支持TRIM。例如,RedHat为SSD磁盘提供了以下指南。“随着使用的块数接近磁盘容量,性能会下降。性能影响的程度因供应商而异,但所有设备都会经历一些性能下降。为了解决性能下降问题,主机系统(如Linux内核)使用丢弃请求来通知给定范围的块不再使用的存储。”Debianwiki提供了一些使用SSD的基本注意事项:使用Linux3.2或更高版本的内核,为SSD使用最新的固件,使用EXT4文件系统,并且“在正常工作负载下,有足够的DRAM可以在不使用交换空间的情况下运行。”
