为什么我的 SSD 损耗似乎过早?
自 NAND 闪存设备问世以来,闪存损耗一直是一个备受关注的问题。为了解决这个问题,大多数 SSD 制造商都采用了 SMART(自我监控、分析和报告技术)属性,以跟踪 SSD 的使用量,并与驱动器的预期寿命相比较。通常,这会被记录成一种属性,它被描述为“剩余寿命的百分比”,有时是“已使用寿命的百分比”。监控该属性时,当计数器开始接近 0% 的剩余寿命时,用户会被建议开始考虑更换 SSD。但是在其余的 SSD 使用寿命中,这个计数器意味着什么呢?剩余 90% 或 50% 的寿命意味着什么?
什么原因导致了闪存损耗?
要了解为什么会有一个损耗指示器,了解导致 SSD 损耗的原因很重要。基本层面上,损耗是由写入数据引起的,例如保存文件。每次 NAND 单元被写入时,都会造成少量损耗。结果,在许多次写入后,NAND 单元长时间保留数据的能力会降低(SSD 预计寿命结束时,用户数据在无电源状态下仍可被保留大约 1 年)。
这是很容易理解的,但事情并不止于此。SSD 的损耗和性能都取决于工作负载的性质(表现为主机计算机的 IO 活动)、计算机上存储的“静态”数据量(或可用空间量)以及数据已存储的时间。当这些变量发生改变时,性能和损耗速度也随即发生变化。
关于这一点,存在一些物理原因。NAND 闪存是以 SSD 工程师称之为页面和块的形式进行组织的。在大多数配置中,一个 NAND 闪存块可以包含数百个页面,一个页面则包含 16kB 的数据。当 NAND 块包含数据时,新数据不能简单地被写入以覆盖当前数据。准备好接收新数据之前,块应首先执行擦除步骤。然而,尽管 NAND 闪存一次可以写入一个页面,但一次却只能被擦除一个块。所有这些复杂机制都意味着 SSD 固件需要不断管理已存储数据的物理位置,并重新安排数据,以便有效地使用页面和块。额外移动已存储数据意味着以物理形式写入到 NAND 闪存的数据量是从主机计算机传递到 SSD 数据量的好几倍。
写入放大系数 (WAF)
工程师使用“写入放大系数 (WAF)”这个术语来描述写入 NAND 闪存的数据量与从主机计算机写入 SSD 的数据量之比。无可挑剔、理想化存储系统的 WAF 应当恰好是 1.0。在用于 Windows 和 MacOS 等台式机操作系统的实际 SSD 中,典型 WAF 的范围介于 2 到 4 之间。这就意味着,与仅由主机计算机预计写入的数据相比,SSD 写入的数据要多二到四倍。
听起来好像不太乐观,但在设计 SSD 和 SSD 固件时,SSD 工程师会考虑这种额外的写入工作负载。在此范围内的 WAF 仍将为用户提供较长的 SSD 服务时间。
什么原因导致了较高的 WAF?
尽管 SSD 的设计上佳,但有时 WAF 可能会高于预期或典型值。同样,它与工作负载息息相关。对于大多数台式机用户而言,他们的工作负载会随着时间的推移而发生显著变化。有时工作负载很重,有时则较为轻松。以下情况可能会导致较高的 WAF:
- 当驱动器已满或接近满负载时,后台操作则会更加努力地工作,从而确保始终有可用空间,以便准备接收新数据。如果由于驱动器已满而日常工作负载仍然很高,增加损耗则成为一个问题,那么在可能的情况下留出一些未使用的空间可能会有所帮助。同样,在相同的工作负载下,更大的 SSD 将成比例地减少损耗。在相同的工作负载和操作条件下,1000GB 驱动器的使用寿命将是 500GB 驱动器的两倍。
- 小型文件传输会导致更高的 WAF。高频率复制、删除和处理大量小文件(例如图像文件或文本文档)会导致 WAF 增加。这是因为每个文件只是 NAND 块的一小部分,因此这些较小的数据结构更有可能由 SSD 固件整合和移动而形成的。较大的文件(例如视频文件)则不需要那么频繁地移动,因为它们可以填充整个块。
尽管控制 WAF 的大部分因素都隐藏在操作系统和文件系统中,但有些项目可以根据用户输入而进行更改。
- 相比于较小的、随机的工作负载而言,SSD 更喜欢较大的、顺序的工作负载。实际生活中,这就意味着它们更喜欢大文件,而不是大量频繁被删除或修改的小文件。
- 留出一些未使用的空间可显著帮助 SSD 有效管理已存储的数据。如果 SSD 经常满负载或超过 90% 负载,建议删除一些未使用的文件,或者考虑使用更大的 SSD。
- 通常而言,不建议在大型 RAID 阵列中使用消费级 SSD,但如果需要这种硬件 RAID 部署,则优选较大的传输大小。用户可自行决定是否进行准确的部署,但好的经验法则是,使用 128kB 的传输大小乘以阵列中物理驱动器的数量。在 PC 内进行基于小型软件的 RAID 部署时,通常不需要进行此类计算。
确保 TRIM 高效运行
Windows® 10 旨在有效运行 SSD,但终端用户可帮助完成此流程。TRIM 是一项重要的功能,可帮助 SSD 的后台操作有效运行,同时尽可能减少上面讨论的 WAF。Windows 会定期运行 TRIM,但在某些部署中,它可能不会很频繁地运行。用户可通过在 Windows 中运行驱动器优化功能来触发 TRIM 频繁运行,如下所示:
首先,打开我的电脑窗口,右键单击 SSD 驱动器,选择属性,如下图所示:
打开属性窗口,选择工具选项卡,然后点击优化:
优化菜单如下所示。 在任何时候,用户都可以点击优化来运行 TRIM 功能。同样在这个菜单中,有一个选项可以开启计划优化功能,它将按照用户确定的时间表运行 TRIM。
最后,在时间表窗口,用户可以选择按时间表运行复选框,然后单击选择,选择目标 SSD。
这应该有助于保持一致的 SSD 性能,并尽可能减少 NAND 闪存的损耗。
©2023 Micron Technology, Inc. 版权所有。信息、产品和/或规格如有更改,恕不另行通知。Crucial 英睿达和 Micron Technology Inc.(美光科技股份有限公司)对于印刷或摄影中的遗漏或错误均不承担任何责任。美光、美光徽标、Crucial 英睿达和 Crucial 英睿达徽标均为 Micron Technology Inc.(美光科技股份有限公司)的商标或注册商标。Microsoft 和 Windows 是 Microsoft Corporation 在美国和/或其他国家/地区的注册商标。所有其他商标和服务标志均为其相应所有者的资产。