終于明白為何固態硬盤不能整理碎片了:越整越慢
很多人都聽說過“固態硬盤不需要做碎片整理”,但對于為什么不需要整理,和“整理的話會有什么后果”不甚了解。今天就以東芝TR200為例,通過試驗來看看固態硬盤內的“碎片整理”到底發生了什么。
為了展現固態硬盤內數據讀取的速度變化,首先在TR200固態硬盤內寫入兩個4GB大小的文件,通過不同的修改日期將二者從File Bench文件讀取速度測試軟件的結果當中分離開來。最初兩個文件的讀取速度應當是完全一致的:大約在480MB/s左右。
接下來通過一款名為PassMark Fragger的軟件,對iobw.tst進行“碎片化”處理。這里的碎片和機械硬盤一樣,是文件系統層面的概念,指的是文件中原本連續的部分因為寫入位置的不同而零碎地分布在不同的邏輯地址上。
碎片化處理的后果是,數據片段被寫入到新的閃存位置,原本可以一次性整段讀出的數據,未來需要分多次讀取。盡管閃存的隨機讀取速度比機械盤的磁頭尋道要快的多,終究不比連續讀取速度快。所以碎片化處理過后,iobw.tst文件的讀取速度大幅掉落至361MB/s。說明一個問題:即便是固態硬盤不需要碎片整理,但大量的文件碎片對于固態硬盤依然是不利的。
接下來我們用Defraggler碎片整理程序來執行碎片整理,看它能否解決固態硬盤的碎片問題。Defraggler默認對固態硬盤執行的是“優化”而非“整理”,但是我們可以強制它執行“整理”:
但是軟件已經明確的提醒了碎片整理會減少固態硬盤壽命。這一點并不奇怪,碎片整理的過程就是將邏輯地址不連貫的文件碎片讀取出來,然后重新寫入到連貫的邏輯地址上。
但由于固態硬盤有FTL這樣一個中間轉換層,邏輯地址和物理地址并不一一對應。盡管碎片整理程序將零碎的文件片段在邏輯地址上整理成了連貫的順序,卻無力改變數據在固態硬盤閃存芯片中的具體分布。碎片整理話費了大量時間,產生了大量的寫入,卻依舊勞而無功,無法讓文件的讀取速度恢復到原有的水平。
更可怕的是,即便我們現在遵照軟件的建議,使用“優化”而非“整理”的方式處理固態硬盤,速度也無法恢復了。因為“優化”操作本質上是對沒有文件存儲的“空白”地址手動發送Trim指令,促使固態硬盤主控完成對空白位置的垃圾回收。
但已經存儲有數據的地方是無法Trim的:Trim的結果只有一個,那就是數據被清空。所以最終在浪費了大量閃存寫入耐久度之后,我們還是沒有任何辦法能讓文件的讀取速度完整恢復。
執行磁盤碎片整理的時候會產生新的寫入,而固態硬盤主控會因閃存不能覆蓋寫入的特點,選擇新位置寫入數據,然后將老位置標記為失效。每次碎片整理都會讓文件在閃存中的碎片化程度又提升了一點點:好心辦壞事!
還記得機械硬盤時代我們怎么處理越用越慢的操作系統嗎?使用GHOST備份后再還原回去,電腦運行速度就恢復了不少。其實GHOST恢復的過程就是全部重新寫入一次,只不過這個方法并不適合寫入受限的固態硬盤。我們正常使用固態硬盤的過程中,只要不刻意地整理碎片就可以了。
---------------------------------------------------------
免責聲明:
1.本文援引自互聯網,旨在傳遞更多網絡信息,僅代表作者本人觀點,與本網站無關。
2.本文僅供讀者參考,本網站未對該內容進行證實,對其原創性、真實性、完整性、及時性不作任何保證。
本站所有文章、數據、圖片均來自互聯網,一切版權均歸源網站或源作者所有。
如果侵犯了你的權益請來信告知我們刪除。郵箱:business@qudong.com