[闲聊] SSD-被误解的"写入放大"

楼主: Cubelia (天空の夜明け)   2016-08-28 13:37:04
网页好读版:
https://www.ptt.cc/bbs/PC_Shopping/M.1472362632.A.6D9.html
(大幅修改文章内容,更通顺)
SSD-被误解的"写入放大"
最近大湿看到某些人滥用"写入放大"这词
为了厘清到底为什么SSD会有写入放大,那用户该不该担心这点
所以花了一点时间写了这篇文
先说结论:
1.SSD一定会有写入放大(WA),这是SSD必定会遭遇到的本质
(除了可压缩数据的主控方案,哪颗SSD没有大于1x的WA?)
2.不可能只要有写入放大就是有问题,更要小心别误用写入放大这个词
(如某某SSD会写入放大)
3.Intel 535有特定状态下的高写入放大
Intel不积极解决也确实是一个比较麻烦的点,现在是依靠够硬的保固去支撑
4.不代表其它方案的SSD就必定会有和535有相同的情形
5.一般用SMART的累积值算写入放大其实存在着盲点
==================================================
1.为什么会有写入放大,还有写入放大到底是什么?
写入放大,原文"Write Amplification"
简单来说就是实际写入NAND Flash的资料量除以主机要求写入的资料量=写入放大值
http://i.imgur.com/UT13Q2R.png
(以下将写入放大简称为WA,因为是倍数所以可以后缀x)
要深入了解为什么会有WA的现象请看下面这篇
http://www.pceva.com.cn/topic/crucialssd/index-6_7.html
简单来说例如主机要求写入1GB的资料时
经过一些主控和NAND Flash间的背景处理后实际写入NAND Flash的量会高于1GB
这就是写入放大的现象
所以只要是SSD有WA就是问题吗? 不见得,这是错误的观念
好或不好是看WA的高低
早期(2008年)是认为WA会大于1x或无限接近于1x
以Intel的X25-M来说,Intel宣称最佳状态可以达到~1.1x的WA
相较于同期的方案(那时以JMF602为大宗,也是表现最差的),WA甚至还会高于10
(好一点的有Samsung或MTRON的SLC方案)
直到2009年时有一间现在大家逐渐淡忘的厂商-SandForce
提出了一个能够降低WA,最佳状态甚至还能低于1x的技术,也就是DuraWrite
例如主机要求写入1 GB的可压缩资料时会被主控即时压缩到小于1 GB的量
使实际写入NAND Flash上的资料量更少
那为什么SandForce不称它为write attenuation(写入缩小)之类的?
别问我,可能是SF没办法保证每一种负载都能够小于1x的Write Amplification
自然而然就继续用Write Amplification了(反正"倍数"也可以小于1嘛)
不过随着主控和韧体算法的演进,SSD的写入放大已经有比较好的改善了
所以后来比较少有人在提及
-
2.为什么最近又开始有用户关心写入放大?
原因主要是Intel 535在特定情况下会有高写入放大的表现
(而且价格便宜,买的人多,那回报数就更多了)
Intel 535(530也有)用的BF29AS41BB0主控骨子里就是SF-2281(客制版)
但不知道怎么搞的,大概是Intel在韧体节能政策上的修改
使得535(530也有)在特定情况下的WA相当高,网络上超过30倍的例子也不是找不到
甚至已经有勇者把E9当前值用到=1了,话说为何不送修R
http://www.mobile01.com/topicdetail.php?f=490&t=4741097
-
3.Intel SSD SMART值的E9值和什么有关?
E9值和写入量有关(NAND写入量),照理来说是指剩余的P/E %
然后E9值不会归0,顶多降到1(然后就会失去保固)
要是在E9目前值降到1时再一直写入,SSD还有可能会锁死
而Intel 535(530也有)的高写入放大使写入NAND Flash的资料量极高
使E9值以极快的速度消耗
而Intel对于535和530的这问题似乎也并不是非常积极的要去解决
https://communities.intel.com/thread/46941
最后隔了这么久的回复则是...(2016/08/28同一讨论串尚无下文)
https://communities.intel.com/message/389443#389443
所以要买535的话建议定时观察SMART的E9当前值
E8低于20(健康度就会红灯)就直接送修
算是比较阿莎力的方法,但治标不治本
https://www.ptt.cc/bbs/PC_Shopping/M.1461244961.A.BDB.html
但是依照M01那篇来看
就算E9=1,E8也不会低于20
而Intel客服最后是说有问题就能送修(人损和物理损伤除外)
-
4.现在某些人也会说这个高写入放大(强调"高")的问题会不会发生在Intel的OX SSD
甚至是其它家的SSD会不会也有高写入放大的问题
答案:
不同主控和韧体的方案就没什么好怕的
目前这问题只有在535才见的到(530也有) ,而520没有这个问题
像是Intel 730用的是DC S3500/3700的自家主控方案
而Intel 600P用的也不可能是535和530的方案(反倒是用了SMI的N00X94 NVMe PCIe x4主控)
更不用说Intel 750,又或是其它方案的SSD了(也许某些会有,但相对少见)
-
5.只看SSD的SMART值来算WA其实有个盲点,那就是提供给用户看的资料只是"累积值"
因为不同压力下和写入的资料类型会影响写入放大值
用总合的累积值来算并不是非常严谨的做法
以下是简单的快速验证法:
测试的是SF-2281VB1的Intel 520 120GB,以它当作范例应该不会有太大的争议
这是做测试以前的SMART值,照总合值来算WA~1.2x
http://i.imgur.com/tkReXV8.png
接到SATA 3Gb/s的接口,所以循序读写的速度会砍半(不影响写入量)
但目前是脏碟状态(都拿这颗当暂存碟w)
并使用AS SSD Benchmark 1.7.4739.38088做测试
老话重谈,AS SSD用的是比较比较难压缩+全随机的数据
对SF主控来说跑分比较吃亏,一次完整测试共5GB的主机要求写入量
以累积写入量的差值来看主机要求确实是5GB,但可以看到NAND累积写入量的差值只有3GB
这样跑一次AS SSD Benchmark 1.7.4739.38088的WA~0.6x
和刚刚用累积值算的1.2x差非常多
所以拿累积值来算并不是很严谨的做法
http://i.imgur.com/DZgc9Sn.png
测试配备:
CPU:Intel Core i5 2400(关闭C1E&EIST)
RAM:Kingston HyperX Genesis DDR3 1600MHz 4GB*2([email protected]/*
继续阅读

Links booklink

Contact Us: admin [ a t ] ucptt.com