作者Cubelia (大胸智乃)
看板PC_Shopping
標題[閒聊] SSD-被誤解的"寫入放大"
時間Sun Aug 28 13:37:04 2016
網頁好讀版:
https://webptt.com/m.aspx?n=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://webptt.com/m.aspx?n=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])
主板:MSI Z77MA-G45
系統碟:Intel 730 240GB(FW:L2010420)
測試對象:Intel 520 120GB(FW:400i,髒碟)
作業系統:Windows 7 Home Preimum x64
結語:
那用戶到底需不需要擔心?
用535/530那就要定期觀察E9當前值,畢竟和保固有關
其它間廠商的方案就不必需要太擔心了,畢竟高寫入放大這個狀況也比較少見
而且保固對寫入量有限制的廠商也相對較少(頂多是主機寫入量,如Samsung)
但不代表不需要去看其它的SMART值
定期看一下,多了解一些值的定義也可以充實一些相關知識
有重映射之類的值也可以及早發現
有錯還請大大協助指正
以上,感謝各位的閱覽:)
--
姐姐 姐姐 我們好像變成簽名檔了
雷姆,雷姆 好像真的是這麼一回事呢
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.127.175.203
※ 文章網址: https://webptt.com/m.aspx?n=bbs/PC_Shopping/M.1472362632.A.6D9.html
1F:推 Ohmy : 推 勿矯枉過正跟過度恐慌 爽爽用就好 08/28 13:44
※ Cubelia:轉錄至看板 Storage_Zone 08/28 13:45
2F:推 mart9266 : 看不太懂 反正壞了就換新的 08/28 13:45
3F:推 shuwei12 : 還好我都用520系列哈 便宜又耐用 08/28 13:46
4F:推 Jay915 : 感謝分享 長知識了 08/28 13:46
5F:推 w113353 : 結論 535還是QQ 08/28 13:47
6F:推 MrDisgrace : 要送修也要有地方先備份移轉&一段時間沒電腦用啊XD 08/28 13:49
7F:→ Cubelia : 是der,所以Intel當然還是得從根本解決這問題 08/28 13:53
8F:推 mart9266 : 535 240g用半年多了 E9還是100 有沒有問題阿 08/28 13:54
9F:推 x930111 : 推 寫入放大我也記得是正常 不正常的是倍數太高 08/28 13:55
10F:→ x930111 : 不過我520 用兩年了e9一樣是100 潮爽 08/28 13:55
11F:推 SmonSo : 結論 一般使用者還是別用535 QQ 08/28 13:55
12F:推 vobor : 推 但我還是看不懂 08/28 14:04
1.535的高寫入放大開始有越來越多用戶關心
2.有用戶誤用寫入放大這個詞
3.造成有人被誤導
4.535(和530)的高寫入放大和其它SSD無關
13F:推 idevil666 : 好險535只拿來裝遊戲 08/28 14:09
14F:推 WeAntiTVBS : 最後我的535還是退了 囧 08/28 14:13
※ 編輯: Cubelia (59.127.175.203), 08/28/2016 14:21:02
15F:→ delaluna : 其實就是語意問題而已 寫入放大是SSD的本質 08/28 14:16
16F:→ delaluna : 但535這顆就特別嚴重 08/28 14:17
17F:推 Windcws9Z : 結論 Intel某系列SSD會寫入放大 08/28 14:17
18F:→ delaluna : 我是覺得不要再講某某大廠買來就是避著眼睛爽爽用 08/28 14:18
19F:→ delaluna : 哪家大廠不會出包? 還是多爬文觀察 買電腦不是靠 08/28 14:19
20F:→ delaluna : 信仰的 08/28 14:19
21F:推 Windcws9Z : U大濕有開示過 SSD買來就是要閉著眼睛爽爽用 08/28 14:25
22F:→ Windcws9Z : ultratimes : 不過我買電腦就是買爽和感覺,不是買 08/28 14:25
23F:→ Windcws9Z : 數據 08/28 14:25
24F:→ SPDY : 我想確認一件事 低於20可送修 到底是看E9還是E8值? 08/28 14:29
25F:→ SPDY : 01那位苦主 E9到1破保時 E8和健康都還81 可送修!? 08/28 14:29
26F:→ Cubelia : Intel客服也沒回答清楚 08/28 14:31
27F:→ Cubelia : 但應該是以E9值為準 08/28 14:31
28F:→ Cubelia : CDI是以可用的保留空間來算健康值 08/28 14:32
29F:→ Cubelia : 健康值部分大概是說Intel工具箱左邊那邊的健康狀況 08/28 14:38
30F:推 IHD : 有530耶 只能QQ了 以為閃過535就行 沒想到還是.... 08/28 14:38
31F:推 bust222 : Intel:對寫入放大有疑慮的人請多參考我們eMLC產品(? 08/28 14:40
32F:→ SPDY : 很建議 最好能再問個清楚 E9並非健康值 保固設限E9 08/28 14:49
33F:→ SPDY : 規定1就破保卻允許20以下未達1可送修行 意義為何!? 08/28 14:49
34F:→ Cubelia : 當時最後問到的結果是: 08/28 14:57
36F:→ Cubelia : "有任何問題都可以發送我們這裏進行保固" 08/28 14:59
37F:→ Cubelia : (人損和物理損傷除外) 08/28 14:59
38F:→ Cubelia : 關於健康值這點我也一頭霧水就是了 08/28 15:02
39F:→ a5150219 : 520 330的E9是不會變的,可能是韌體的因素,所以這 08/28 15:09
40F:→ a5150219 : 兩顆的健康度到死前都會維持100% 08/28 15:09
41F:推 akane1234 : 看了好久還是不太懂,結論是530和535不要買較好對吧 08/28 15:19
42F:推 w113353 : E9不會變是啥鬼... 08/28 15:25
43F:→ ang728 : Controller沒有壓縮機能就一定有WAF 別緊張R 08/28 15:27
44F:→ ang728 : and trying new stuff 08/28 15:28
46F:推 w113353 : ang大那張是600p嗎XD 08/28 15:29
47F:推 vobor : 哇 快比顯卡燙了XD 08/28 15:29
48F:→ Cubelia : RD400 08/28 15:30
49F:→ vobor : 我好好奇一般SATA SSD主控會這麼燙嗎? 08/28 15:30
50F:推 ang728 : 其實也會 只是說通常SATA SSD 主控會跟外殼黏一起 08/28 15:33
51F:→ ang728 : 外殼兼作散熱用途 08/28 15:34
52F:推 vobor : 原來如此~ 08/28 15:37
53F:推 a2935373 : SATA的讀寫壓力沒那麼高 應該不會吧? 08/28 15:38
54F:推 KotoriCute : 不是說溫度太高會影響SSD的性能? 08/28 15:39
55F:→ KotoriCute : 大概要幾度才會有影響? 08/28 15:39
56F:→ KotoriCute : 有不太燙的NVMe的SSD嗎? 08/28 15:40
57F:→ ang728 : 可以拆開殼跑看看 一樣挺高的 08/28 15:40
58F:推 w113353 : 突然覺得上面那個土炮散熱片真的滿厲害的QQ 08/28 15:40
59F:→ ang728 : 當然NVME比AHCI SSD 燙也是正常的 08/28 15:40
60F:推 vobor : 這些數據都是在全速讀寫的時候吧 idle也會這麼高嗎? 08/28 15:40
61F:→ ang728 : 降速要看控制器內部設定溫度幾度開始throttle 08/28 15:41
62F:→ ang728 : 其實這是當系統碟剛跑完進系統的溫度 08/28 15:41
剛進OS確實會溫度會比較高o.o M8PeG也是這樣
63F:→ ang728 : 不過內部DTS溫度跟表面的溫度會差有10幾度 DTS較低 08/28 15:42
64F:推 pupuliao : 我的OCZ SSD 都用了16000小時了 08/28 15:43
太神辣
66F:→ KotoriCute : 三星SM961過熱會導致數據損壞 08/28 15:45
67F:→ ang728 : 三爽向來熱烘烘 可以上散熱片還是上一下 08/28 15:46
68F:→ KotoriCute : NVMe加個散熱片對廠商來說成本會提高很多嗎? 08/28 15:46
69F:→ KotoriCute : NVMe裸裝感覺才是主流XD 08/28 15:47
70F:→ KotoriCute : 市面上 08/28 15:47
71F:→ ang728 : 如果還要考慮M.2機構應該會比較高一點 08/28 15:47
72F:→ ang728 : 參考一下Angelbird Wings PX1 AIC的價格 08/28 15:48
73F:推 delaluna : M2還要考慮給筆電用 所以尺寸限制大 08/28 15:52
74F:→ delaluna : 只有桌機使用者有辦法加散熱片 08/28 15:52
75F:→ vobor : 上散熱片之後麻煩就在於可能會干涉其他元件 08/28 15:57
76F:推 goomeow : 推C大好文 08/28 16:06
77F:推 pupuliao : 120G 累積寫入25TB 讀取37TB 不知道是多是少 08/28 16:08
78F:→ pupuliao : 不過我找不到NAND 寫入的資訊 08/28 16:09
79F:推 fin806 : 這麼麻煩幹嘛= = 535是誇張極端的例子 08/28 16:15
80F:→ fin806 : 可以不要買他阿 08/28 16:16
81F:→ fin806 : 一般使用者都是能不送修就不送 08/28 16:16
82F:→ fin806 : 尤其又是當系統碟的時候 遊戲碟就隨便了 08/28 16:17
83F:推 Lapodia : 好文 08/28 16:18
84F:→ x94fujo6 : 部分筆電的nvme ssd已經有做散熱片甚至熱導管了XD 08/28 16:23
85F:推 FuryX : 看到大胸先推再看 08/28 16:24
86F:→ FuryX : 嗯....家裡有一顆520,來檢查一下 08/28 16:26
87F:→ Akabane : 535掛程式寫入放大從10倍變1倍多 08/28 16:32
88F:推 yys310 : 08/28 17:06
89F:推 sinplusling : 520沒有寫入放大 530有 我兩顆都有 08/28 17:18
不是"沒有寫入放大",任何SSD都可以有"寫入放大"(依這個名詞的算法來說就是這樣)
而寫入放大也可以是小於1的值(因為是"倍數")
(真的不解可以去問Intel或SF為何不把這種狀況稱為"寫入縮小"...)
90F:推 HiJimmy : 要寫入縮小 要剛好是有連續字串 可以壓縮寫入 08/28 17:39
91F:→ HiJimmy : 所以不能保證 08/28 17:39
92F:→ delaluna : 我看不太懂寫入量用累積值有甚麼不客觀的地方? 08/28 17:54
93F:→ delaluna : 特定時間內變化量可以看出不同附載對WA的影響 08/28 17:54
94F:→ delaluna : 但整體壽命的消耗就是看累積值 而且累積值也代表 08/28 17:55
95F:→ delaluna : 使用者所有workload的平均值 沒甚麼不實際的地方 08/28 17:56
96F:推 gamesame7711: 08/28 18:04
97F:→ Cubelia : 整個平均值和特定負載算出來就是不一樣 08/28 19:00
98F:→ Cubelia : 只是點一下,以免有人以為無論哪種情況的WA 08/28 19:00
99F:→ Cubelia : 就是那樣算 08/28 19:00
101F:→ Cubelia : "using the deltas in the equation is a valid way 08/28 19:04
102F:→ Cubelia : to calculate WAF under specific experimental 08/28 19:04
103F:→ Cubelia : conditions. 08/28 19:04
104F:→ SPDY : 說來01那位苦主 180TB/120GB大概就1500次全抹寫呢 08/28 19:51
105F:→ SPDY : 535倘若沒NAND累計寫異常的高WA作怪 是堪日常用的 08/28 19:51
107F:→ iWRZ : 用了一年多 剩下87...... 08/28 19:52
108F:→ SPDY : 只是看樓上要是WA不是8 而是25 E9...會掉到多少呢? 08/28 20:00
※ 編輯: Cubelia (59.127.175.203), 08/29/2016 03:30:37
109F:推 Alu76521 : 結論,不是Intel,是535會寫入放大。謝謝C大 08/29 07:50
110F:推 a5150219 : 樓上理解錯誤… 08/29 16:04
111F:→ a5150219 : 是每一顆SSD都會有寫入放大,這是正常的,535是寫入 08/29 16:05
112F:→ a5150219 : 放大「異常高」 08/29 16:05
113F:→ MirageAngel : MLC:ARC═100╬MX═200╬SX═930╬Z400S╬F200╬M6V 09/02 10:47
114F:→ Cubelia : SX930 pass 09/04 21:26