![当我在 SSD 上激活 trim 时有关系吗?](https://linux22.com/image/1640690/%E5%BD%93%E6%88%91%E5%9C%A8%20SSD%20%E4%B8%8A%E6%BF%80%E6%B4%BB%20trim%20%E6%97%B6%E6%9C%89%E5%85%B3%E7%B3%BB%E5%90%97%EF%BC%9F.png)
激活 trim 可以提升 SSD 的性能,但这样做会产生什么影响吗?会不会“太迟了”?或者我可以等到 SSD 变慢吗?等待会不会有什么永久性的缺点?
答案1
在操作系统向 SSD 发出 TRIM 命令之后的某个时间,TRIM 会产生效果;并且它不一定立即产生效果,除非操作系统尝试读取 TRIM 后的扇区时,它可能会得到零而不是任何旧数据。
如果您的操作系统未启用 TRIM,但您后来启用了它,则当文件被删除时,操作系统将开始向驱动器发送 TRIM 命令。然后,驱动器固件将使用此信息更有效地重新排列闪存上的数据 - 这意味着随着时间的推移,它将能够让更多新擦除的部分闪存准备好用于新数据。闪存的擦除部分比部分写入的部分更快。
这样做永远不会“太晚”。最糟糕的情况是性能没有任何改善,如果驱动器已被大量写入且几乎已满,则可能会发生这种情况。
答案2
激活修剪可以增强 SSD,但这样做会产生影响吗?
是的。频繁的 TRIM 操作允许 SSD 的 FTL 维护尽可能大的空闲物理块池。这可以减少发生写入放大,这是“SSD 变慢了”。
要清楚的是,操作系统/文件系统有自己的概念,即分区/驱动器的哪些存储块 (LBA) 正在使用中(即具有有用/有效数据)。
由于 FTL 和耗损均衡,SSD 有自己的概念,即哪些 LBA 有效,以及另一个级别的簿记,即哪些物理闪存块有效。
每当主机 PC 写入 LBA 时,SSD 都会被告知该 LBA 有效。
如果此 LBA 已经映射了物理块,则损耗均衡需要取消映射原始物理块并将其释放。
必须将(不同的且已擦除的)空闲物理块映射到 LBA,然后才能写入扇区数据。
如果没有空闲的物理块,则需要执行耗时的读取-擦除-写入操作。这写入放大在这个阶段可以减缓这个根本驱动的操作write a LBA
。
如果写入的是没有物理块映射的 LBA,则必须将空闲的物理块映射到该 LBA,然后才能写入扇区数据。这样可以减少空闲物理块池。
当操作系统/文件系统通过创建、写入、读取和删除文件来使用 SSD 时,LBA 可以在文件系统级别在空闲和已使用状态之间切换。但对于 SSD 而言,每个访问的 LBA 在 FTL 级别始终被视为有效,并且具有映射的物理块(直到 LBA 被 TRIM 处理)。
TRIM 操作是 OS/文件系统通知 SSD 的 FTL 不再使用某个 LBA(例如文件已被删除)的同步机制。然后,FTL 可以取消映射分配给该 LBA 的物理块,并使该物理块空闲并被擦除。
否则,未 TRIM 的未使用(每个 OS/文件系统)LBA 将不必要的由 SSD 的 FTL 维护为有效数据。
请注意,因为经过 TRIM 的 LBA 不再具有映射到它的物理块,所以任何写入(一个扇区)全 1 或全 0 的方案都无法模拟 TRIM 操作。
会不会“太晚了”?
对于使用率较高的驱动器来说,情况可能如此,因为推迟 TRIM 操作会导致写入放大增加,并加速擦除块的(有限数量的)擦除-写入周期。
没有任何操作可以减少每个擦除块的擦除-写入周期数。
或者我可以等到 SSD 变慢吗?
未映射 LBA 的数量将保持不变,但推迟 TRIM 操作可能会导致写入放大增加,并加速 SSD“变慢”。
等待会带来任何永久性的弊端吗?
是的,SSD 会产生更多的写入放大,这意味着(有限数量的)擦除-写入周期(擦除块)将更快消耗。
换句话说,在更糟糕的情况下,SSD 的寿命可能会缩短。
答案3
请查看这篇文章:
https://community.spiceworks.com/topic/990840-how-important-is-ssd-trim
TRIM 是操作系统向 SSD 发送标志的过程,告诉它驱动器上的哪些地址包含可以清除或永久删除的无效(已删除数据)数据。此过程很重要,因为 SSD 上的无效数据会导致其速度随着驱动器开始积累越来越多的无效数据而逐渐变慢。TRIM 是一项由操作系统驱动的功能。
不要推迟,启用它并安排它每周运行一次。这很有效,也是我管理自己的 SSD 的方法。