[閒聊] 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