- 积分
- 5
- 下载分
- 分
- 威望
- 点
- 原创币
- 点
- 下载
- 次
- 上传
- 次
- 注册时间
- 2017-10-31
- 精华
|
2#
发表于 2018-1-26 13:24:30
|
只看该作者
来自: LAN 来自 LAN
非专业人士,可能认知有些许偏差,仅供参考。
先直接回答题主的问题,在存满或将近存满(90% 以上已用空间)的情况下频繁使用,SSD 的 P/E 消耗会更快,性能会下降,但并不至于「很快就报废」的程度,对于普通日常家用仍旧是不必有任何担心的。SSD 在几乎存满的情况下使用,也并不会只向一小块区域进行写入,而是会通过移动数据的方式把写入量分散到全盘。
--------------------
目前靠谱的 SSD 均具有静态磨损平衡、动态磨损平衡、Trim 和垃圾回收等特性,能够自动化地平衡不同区块闪存的读写状况,并通过腾空可用空间区域等方式保持性能不下降得太厉害。
其中,磨损平衡主要的原理即在于记录每个闪存区块的擦写次数,并按一定的算法不定期地移动不常读写的冷数据(是的,即使整个盘一直只进行读取操作,冷数据移动是依然会进行的),以避免写入量过分集中在某一块区域造成坏块的过早出现 [1][2]。具体的算法,每家 SSD 厂商都有不同,所以磨损平衡的积极程度也有取舍,毕竟较为激进的 W/B 和 GC 都会造成写入放大的上升,也就意味着 P/E 消耗会相对较快。
另外,备用容量的说法是存在的。对于 SandForce 方案(尤其一些无外置缓存的方案),SSD 厂商会预留一定空间作为 OP,专门用于 W/B 和 GC。典型的代表如 Intel 520,它的容量分为 120GB、240GB 等,而实际上的 NAND Flash 容量是 128GB、256GB,其中留出了一部分作为 OP 空间。还有对稳定性要求高的企业级固态硬盘更是如此,如 Intel DC S3700 仅提供 200GB、400GB 等容量 [3],分别使用了 56GB,112GB 的 OP 空间。所以题主「根本不可能」的揣测,实是有些狂妄了。
那么前面说到的,即使整个盘只进行读操作,为什么主控会不定期地移动冷数据呢?我们需要知道,NAND Flash 使用电荷存储数据,而长久不写入是会有漏电的。近期爆出的三星 840、840Evo 冷数据读取性能暴跌的事件 [4] 很好的印证了这一观点,如果是出于节省 P/E 的目的就大幅减少或干脆不对冷数据进行移动,可能会由于这部分闪存区域漏电,而使得读取过程中需要大量的纠错、重读操作,进而导致读取缓慢。当放置更久使得漏电更加严重时,NAND 中的错误数据可能会超出主控的纠错能力,造成数据读取出错的情况。
所以,即使盘满了,一定的数据移动来对 NAND 进行刷新写入实际上也是必要的。
进一步来说,基于上面的观点,广为流传的「SSD 不能分区使用」的说法也是站不住脚的,分成一个区或者多个区根本没有关系。SSD 的磨损平衡在主控层面进行,分区与否都只是写在磁盘上的数据,分区对逻辑地址进行划分实际上并不会真正在 SSD 中按照像传统 HDD 一样按物理地址一一映射到固定的位置上。
参考资料:
[1] PCEVA - 见证真实的品质
[2] Wikipedia - 耗損平均技術
[3] StorageReview - Intel SSD DC S3700 Series Enterprise SSD Review
[4] ExpReview - http://www.expreview.com/36123.html |
|