什么是SSD中垃圾回收与 TRIM?对固态硬盘性能有哪些影响?
发布时间:2025-01-14 来源:硬盘回收网 浏览次数:341
什么是垃圾回收?
GC是(Garbage Collection,垃圾回收)的缩写,是固态硬盘(SSD)的一个基本技术,它对SSD的性能和寿命有直接的影响。
垃圾回收的目标是保留尽可能多的空块,以便在SSD需要写入数据时,它可以在等待块被删除的情况下执行此操作。确保硬盘高效运行,并在整个生命周期内保持良好性能。
当使用机械硬盘时,文件系统可以直接将新数据写入到旧数据存储的位置,即可以直接覆盖旧数据。在固态硬盘中,境况有所不同。如果想让存储无用数据的块写入新数据,就需要先把整个块删除,才可以写入新的数据,也就是说固态硬盘并不具备直接覆盖旧数据的能力。对于固态硬盘来说,GC(垃圾回收)是指把现存数据重新转移到其他闪存位置,并且把一些无用的数据彻底删除的过程。
 
什么是 TRIM?
TRIM 是 ATA (Advanced Technology Attachment) 接口的一个指令。当操作系统需要告诉固态硬盘它将删除文件且这些文件页需要可用于新信息时,TRIM 会提供此功能。搭配垃圾回收,TRIM 会清理并组织固态硬盘,使其更高效并延长其寿命。
TRIM 命令使操作系统能够通知 SSD,在从逻辑表中删除逻辑块地址时,旧数据不再有效。TRIM 命令的优点是它使 SSD 的 GC 能够跳过无效数据而不是移动它,从而节省了不重写无效数据的时间。这样可以减少闪存上的擦除周期数,并在写入期间实现更高的性能。SSD不需要立即删除或垃圾回收这些位置,只需将它们标记为不再有效即可。
 
图1:不使用 TRIM 命令的垃圾回收
图 1 显示了在不使用 TRIM 命令的情况下该过程。在图 1 的第 1 列中,SSD 用户将四个新文件写入驱动器。操作系统在其逻辑表中看到文件,SSD 具有可用空间的逻辑视图和物理视图,在物理视图中,该视图包括不是操作系统已知的驱动器声明容量的一部分的预配空间。
在第二列中,用户删除文件 C,但 SSD 不知道该文件已被删除,因为 TRIM 命令未在使用中。如果它此时执行 GC,它将移动文件 C 中的无效数据,因为它不知道它是无效的。在第三列中,用户写入新文件 E,操作系统告诉 SSD 使用与旧文件 C 相同的空间,SSD 将新文件写入可用空间,同时将文件 C 中的旧空间标记为可用于 GC。
 
图 2 :使用 TRIM 命令进行垃圾回收。
图 2 显示了与 TRIM 命令的差异。在这种情况下,当用户写入四个原始文件时,该过程是相同的。但是,当用户擦除第二列中的文件 C 时,旧的文件 C 空间会立即标记为无效,以便为 GC 做准备,因为操作系统使用 TRIM 命令。最初保存文件C的空间现在是SSD的可用空间,并且可以作为动态配置使用,这意味着SSD在GC期间有更多的可用空间,这有助于提高SSD的整体性能。
在第三列中,当用户最终写入文件 E 时,SSD 上的总可用空间现在与没有 TRIM 的驱动器相同。不同之处在于,支持TRIM的SSD知道哪些数据无效,并且可以在GC期间将其视为可用空间,并防止必须将无效数据移动到另一个块。
这产生了三个主要好处:
较低的写入放大。在GC期间,重写的数据更少,可用的可用空间更多(更多的写入空间等于更少的写入);
更高的吞吐量。使用 TRIM 命令,在 GC 期间要移动的数据更少,驱动器运行得更快。闪存的吞吐量是瓶颈,SSD 的速度与写入闪存的速度一样快。在执行GC期间,驱动器必须在移动数据时停止从主机传输某些数据。这就是为什么SSD知道哪些数据是无效的,这样它就不必在GC期间移动。
提高了耐用性,因为驱动器通过不重写无效数据来减少对闪存的写入。
如何检查 Windows 是否启动了 TRIM?
windows10默认已经开启了trim。
按下 Windows + X 键,单击“搜索”并在搜索框中输入 cmd。或者点击开始菜单,输入cmd。
右击“命令提示符”并选择“以管理员身份运行”。
 
输入以下命令:fsutil behavior query DisableDeleteNotify,然后点按 Enter 键。
如果结果是 DisableDeleteNotify = 1,那么固态硬盘的 TRIM 已停用;
但如果结果是 DisableDeleteNotify = 0,则固态硬盘的 TRIM 已启用。
 
如何在 Windows 上启用 TRIM?
右击 Windows 图标,选择“搜索”并在搜索框中输入 cmd。
右击“命令提示符”并选择“以管理员身份运行”。
输入:fsutil behavior set DisableDeleteNotify 0,然后点按 Enter 键。
 
如何在 Windows 上禁用 TRIM?
右击 Windows 图标,选择“搜索”并在搜索框中输入 cmd。
右击“命令提示符”并选择“以管理员身份运行”。
输入:fsutil behavior set DisableDeleteNotify 1,然后点按 Enter 键。
 
如何在 MacOS 10.10.4 或更高版本上检测 TRIM 是否启用
选择左上角的苹果图标。
然后单击“关于本机”。
概述窗口弹出后,选择“系统报告”。
跳转到:硬件 > SATA/SATA Express。
滚动到本地“TRIM 支持”,此值为“是”或“否”。
如果值为“否”,继续打开终端窗口。
在提示符窗口,输入:sudo trimforce enable。
敲击 Enter 键。
根据提示输入密码并敲击 Enter 键。
在提示符窗口输入 y,然后点按 Enter 键。
再次输入 y,系统将会重启。
重启后重复 1-5 步,从而确认 TRIM 是否启用。

声明:本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:186-5415-1131。

本站全力支持关于《中华人民共和国广告法》实施的“极限化违禁词”的相关规定,且已竭力规避使用“违禁词”。故即日起凡本网站任意页面含有极限化“违禁词”介绍的文字或图片,一律非本网站主观意愿并即刻失效,不可用于客户任何行为的参考依据。凡访客访问本网站,均表示认同此条款!反馈邮箱:57274323@qq.com。