分析固態(tài)硬盤掉速原因及解決方法
如果說“TLC”和“NVMe”是今年固態(tài)硬盤的熱門話題,如果回到三年以前提,當時的固態(tài)硬盤熱門話題可能會是“掉速”。
掉速就是硬盤在工作時實際速度低于預期的一種現(xiàn)象,引發(fā)掉速的原因有很多。最早的硬盤掉速或許源于西部數(shù)據(jù)綠盤,由于盤片質(zhì)量差在讀取過程中會有一些突發(fā)的卡頓出現(xiàn),讀取速度突然降低。
當然今天要討論的是固態(tài)硬盤的掉速問題。最為古老的固態(tài)硬盤掉速始于2009年以前,當時Trim指令尚未出現(xiàn),而閃存在寫入之前又必須先進行擦除,擦除需要的額外時間導致寫入變慢:
幸運的是2009年之后Windows 7面市,首次增加了對Trim指令的支持,蘋果的MacOS系統(tǒng)也在10.10.4之后對所有SSD開放Trim指令支持。Trim指令的作用是在刪除文件的時候通知SSD哪些位置的數(shù)據(jù)已經(jīng)無效,請在垃圾回收時進行回收。有了Trim指令之后SSD就不必等到覆蓋寫入指令下達才匆忙進行標記,而是能提前對閃存上存儲的數(shù)據(jù)進行整理。
幸運的是,當前市售的所有固態(tài)硬盤都已經(jīng)支持Trim指令??梢酝ㄟ^在命令行提示符中輸入fsutil behavior QUERY DisableDeleteNotify來查看Trim功能是否開啟,正常情況下應返回0。
不過操作系統(tǒng)支持是一方面,要看SSD實際是否執(zhí)行了Trim指令還需要用到一個名為Trimchecker的小工具:運行一次之后間隔30秒再度運行,正常應出現(xiàn)一串0,表示Trim已經(jīng)成功執(zhí)行,被刪除的數(shù)據(jù)已經(jīng)被固態(tài)硬盤從閃存當中清空。
雖然固態(tài)硬盤們都已經(jīng)支持Trim了,不過依然會有一些特例型號會發(fā)生掉速現(xiàn)象,比如SandForce主控、JMF667H主控,他們由于垃圾回收算法比較懶惰,傾向于保守,在收到Trim指令后垃圾回收工作進行的不徹底,長期使用后依然會出現(xiàn)速度下跌的掉速現(xiàn)象。不過好消息是這兩個主控也都已經(jīng)退出歷史舞臺,除了金士頓V300依然在使用SandForce 2281主控之外,其他市售固態(tài)硬盤都已經(jīng)不再應用SandForce或JMF667H主控,大家遇到掉速踩雷的機會小了一些……
Trim指令普及了、個別懶惰的主控也退役了,按理說大家應該不會遇到掉速了。不過在這個時候TLC閃存走上了歷史舞臺,三星840等TLC閃存固態(tài)硬盤在2014年開始連續(xù)爆出讀取掉速問題。與之前的寫入掉速相比,TLC閃存的讀取掉速更為隱蔽,因為掉速的是盤上的舊文件,通過AS SSD Benchmark等測速軟件測出的新文件速度是正常的。
為何在MLC時代很少見的讀取掉速會出現(xiàn)在TLC閃存身上呢?為了在每個單元中保存額外的一個bit數(shù)據(jù),TLC需要有8個電荷位來區(qū)分其中存儲的數(shù)據(jù),而原來的MLC僅需4個電荷等級劃分。
同樣空間內(nèi)劃分出更多的數(shù)據(jù)位,意味著發(fā)生偏移出錯的概率大大提高。閃存通過保存電荷來存儲數(shù)據(jù),而隨著斷電時間的延長,閃存當中的電荷位就可能發(fā)生改變,嚴重的情況下即可導致數(shù)據(jù)出錯。
三星為了避免數(shù)據(jù)出錯采取的是加強糾錯的方式,一次讀不出就依靠多次讀取嘗試,這樣在讀取盤內(nèi)舊數(shù)據(jù)的時候讀取速度就可能發(fā)生嚴重下滑,TLC掉速因此而生。而較晚將TLC使用在SSD當中的東芝等廠商汲取了三星的教訓,通過主控隨時監(jiān)測閃存單元中電荷位的變化,在必要的時候進行數(shù)據(jù)搬運來化解掉速危機。
國內(nèi)的PCEVA論壇曾對東芝Q300的馬甲款——東芝饑餓鯊TR150進行過長時間的耐久度及讀取掉速測試,在1900PE磨損的情況下,通過連續(xù)24小時高溫烘烤模擬SSD長期斷電保存的情形,在重新開機后盤上數(shù)據(jù)讀取是這個樣子的:因為長期斷電,已經(jīng)有一些文件讀取掉速了
但只要閑置幾分鐘之后,再次測試會發(fā)現(xiàn)讀取速度得到了自動的恢復:說明這款固態(tài)硬盤具備預防掉速的特性,如果是正常使用,在有掉速預兆的情況下SSD會后臺搬運數(shù)據(jù)保持讀取速度不掉落。
由此可見讀取掉速并非TLC固態(tài)硬盤的通病,雖然內(nèi)部搬運數(shù)據(jù)會損耗一些閃存耐久度,但這對在耐久度測試中達到3000PE的東芝15nm TLC閃存來說應當不是問題。
除了上面提到的這些可能引發(fā)掉速的原因,另一個未來不可忽視的固態(tài)硬盤掉速問題將是PCIe NVMe SSD的過熱限速,很多三星SM951及950Pro用戶已經(jīng)深受此中困擾,除了加強散熱之外尚無有效解決方案。