我在 1TB SanDisk SDSSDH3-1T00-G25 磁盘上安装了 Windows,并且已经安装了大约两年。我注意到速度变慢了,但没有想到它(这不是我经常使用的计算机),然后一周前我注意到夜间完整备份花费了非常长的时间。
根据 WINSAT 的说法,该磁盘在随机访问时确实很慢,但更彻底的测试表明,在很长的顺序读取中它也很慢。
这是一个硬件问题,但我无法诊断它,SanDisk Dashboard 表示 SSD 很完美并且还有 99% 的寿命。1TB 大小是因为我升级了 256GB 磁盘并在 SSD 上获得了优惠,但我从来没有填充超过 300GB,所以这不是“SSD 几乎满”的效果。板载固件是最新的(无可用更新)。Windows TRIM 状态为“已启用”(fsutil behavior query DisableDeleteNotify
从提升的提示符运行应返回“0”)。
我怎么知道这是一个硬件问题- 因为,为了从根本上解决问题并可靠地检查它,我购买了另一个 SSD(三星 870 EVO)并使用外部扩展坞克隆了旧的 SSD,在没有连接计算机的情况下运行。1TB 克隆通常需要十到十五分钟。这一趟就花了十四个小时。
在外部 USB3 外壳中,旧磁盘以 2-5 MB/s 的吞吐量愉快地运行,没有错误 - 我想我拥有一些这么慢的旧 IDE 磁盘,但那是很久以前的事了,我不确定: -)。
有人遇到过这种事吗?但真正的问题是:是否有办法恢复(或至少提高)SSD 速度?如果可能的话,我有点希望能够利用 1TB 外部磁盘剩余的 99% 的寿命。如果是驱动器损坏,或者即将发生故障的迹象,或者我不能确定是否有可靠的存储,那么我当然会把它扔掉。
我计划在空闲时间执行的测试:
- 运行 SMART 测试。糟糕的是,在克隆磁盘之前我没有想到这样做。
- 使用 1m USB 电缆从冰箱内部运行外部设备。我知道非常高的温度会擦除SSD,但是简单的夏季热浪又如何呢?如果他们可以减慢设备速度怎么办?我从六月初开始注意到经济放缓,所以也许......?
- 重新阅读并重写整个表面。也许我已经从“难以可靠地读取”的部门中遇到了问题。我将使用
dd
Linux 来刷新设备。
旧数据读取速度会较慢
一般来说,“热”数据(经常更改并因此被重写的数据)的读取速度比“冷”数据(写入驱动器并长期保持不变的数据)要快。
SSD需要花更多的精力来读取较冷的数据。NAND 单元中的电荷会随着时间的推移而下降,下降得越多,驱动器就越需要依赖纠错甚至所谓的 RR 寄存器来读取数据。
后者意味着 SSD 将尝试不同的阈值来决定单元内的数据代表零还是一。
了解当我们使用专门的数据恢复软件对单个 NAND 芯片进行寻址时,更改这些值如何显着提高读取成功率:
https://youtu.be/pSIJKt_uBfc
请注意,视频中的软件尝试模拟 SSD 控制器(和其他闪存控制器)在正常操作期间从 NAND 恢复数据的操作。
这对于 SSD 用户来说没有什么实际价值,但意味着演示 SSD 将动态应用以“恢复”数据的过程。所有这些错误恢复过程都需要时间,并且会使 SSD 显得缓慢。
TRIM 启用并不意味着 Windows 也会 TRIM
即使是这样,Windows 也只会修剪 NTFS 驱动器。因此,如果您出于某种奇怪的原因决定使用 exFAT,Windows 将不会发送 TRIM 命令。
我还注意到某些文件系统错误会导致 Windows 不发送 TRIM 命令。
这些只是示例,旨在说明即使您怀疑 Windows 由于配置为而发送 TRIM 命令,并不意味着它总是会发送。
此外,我们还需要了解 TRIM 的作用和不作用以及它主要如何影响写入速度。TRIM 本身不执行任何操作,它只是一个命令,允许操作系统或实用程序通知 SSD 可以自由擦除的 LBA 地址。
因此,现在 SSD 可以将这些放在一边供“垃圾收集器”使用,然后“垃圾收集器”将重新排列它们,以便它具有可以擦除的擦除块。此时擦除块内的页面就可以再次使用了。
这些过程需要时间,因此即使我们处理的是具有 50% 可用空间的 SSD,如果我们不断重写 50% 占用的空间,垃圾收集器仍有可能无法跟上,我们必须等待SSD 为我们要写入的数据释放页面。
智能数据可能有用
我觉得对于这类问题,你应该发布一个实际的屏幕截图或txt报告,而不是告诉我们SMART就可以。
温度的影响
热量不会擦除 SSD,但确实可能会传播“电荷泄漏”,即单个单元中的电荷水平下降的现象。但很多因素都会影响单元内部的电荷水平,甚至读取和写入相邻单元也可以“注入”电荷。在“冷”的时候写作,在热的时候读书也可能是不好的。
回到我之前提到的特殊 RR 寄存器:
我的同事比我更精通 SSD 和 NAND 数据恢复,他们观察到温度对读取质量的影响,甚至达到了他们是否需要使用 RR 的程度。IOW,通过冷却 NAND 芯片或加热它们,对 RR 的需求就消失了,并且假设通过冷却或加热 NAND,温度更接近 NAND 编程或写入时的温度。
与其冷冻它,保持稳定的环境温度可能是最好的方法。
读/写表面扫描
要检测读取问题,无需浪费整个 p/e 周期,您只需读取驱动器即可。使用 dd 进行读/写“扫描”不仅仅写入一次,它会引发大量“写入放大”事件。
此外,一旦写入每个 LBA 扇区,整个 LBA 空间将被“映射”到 FTL 中,只留下多余的空间供垃圾收集器擦除过时的页面。
这就像 100% 利用文件系统一样,据我们所知,这对于 SSD 来说并不是一个好主意。它应该能够处理它,但在我看来还远非理想。
如果您擦除整个驱动器,或使用 dd 对其进行读/写,请至少确保在重新使用驱动器时修剪整个空间,例如使用https://github.com/tenox7/disktrim。
结束语
将“原始状态”SSD 与使用了 2 年的 SSD 进行比较,假设规格相当,则始终会青睐全新的 SSD。
如果规格不同,那么比较就不公平。更现代的 SSD 或配备更好的 SSD(更高效的 ARM CPU、更好的固件、更多的伪 SLC NAND 等等)可能会使旧 SSD 在特定情况下执行其功能时显得“病态”。
备份 SSD、修剪整个“表面”,然后从备份恢复数据应该会在很大程度上恢复预期的速度,尽管这永远不会抵消“磨损”。