要解決SSD速度慢問題,親們先得知道為什麼SSD會降速。雖然SSD的降速原因不外乎那麼幾種,但不同類型的產品還是各有各的問題,小諾就為親們分別來說一說吧。
我們先來看看SSD固態硬碟的寫入方式。
SSD固態硬碟不像HDD機械硬碟,它無法覆蓋寫入。在剛裝上SSD固態硬碟時,SSD固態硬碟速度飛快,是因為它可以隨意的按順序寫入。而用得久了,SSD固態硬碟就需要GC(垃圾回收),在擦除垃圾後的空閒位置才能夠被重新寫入新的數據。
SSD固態硬碟儲存。紅色代表垃圾,綠色代表空閒區域,黃色代表有效文件。 從上圖我們也可以看出,SSD固態硬碟的儲存,不是說,空閒區域被分在一邊,存儲的有效文件分在另外一邊。而是大家都在一起。根據系統的反饋,TRIM標識SSD固態硬碟裡的有效,或者無效。然後TRIM把需清理的信息和指令發送給GC(垃圾回收)去執行。
在SSD固態硬碟中最小的讀寫單位為1page,即4KB。而GC(垃圾回收)擦除的最小單位是,1block,1block=256page。所以GC需要把這些散布各處的垃圾集中起來,擦除。而我們這裡也看出GC(垃圾回收)的工作負荷是蠻大的呢。寫入是吃完就撂碗,GC還得收拾碗筷,洗刷刷、洗刷刷~~(感謝大張偉為小諾帶來創作靈感) 前面小諾講了SSD固態硬碟的寫入必須要經歷兩步,GC擦除和寫入。所以隨著SSD使用時間的延長,寫入量的增多,GC(垃圾回收)的工作量越大,讀寫速度就越慢了。這是SSD的管理機制隱藏問題。
P.S.要想知道SSD是否開啟了TRIM功能,可以在命令行窗口輸入「fsutil behavior QUERY DisableDeleteNotify」並回車。如果系統提示「DisableDeleteNotify = 0」,就說明Trim指令已啟用。如果顯示為「DisableDeleteNotify = 1」,即Trim指令未啟用,那麼在管理員模式下,輸入「fsutil behavior set disabledeletenotify 0」並回車,就可以開啟TRIM功能了。
SLC緩存管理親們如果仔細觀察包裝,就會發現目前的SSD不再標註自己使用了多少緩存,這很可能說明它們使用了以SLC為緩存的設計。這些SSD通常使用TLC、QLC快閃記憶體,因為存儲結構比較複雜,操作耗時,所以數據的實際存入速度很慢,所以會先將數據存入延遲極小的SLC中,然後在後臺逐步存入主存儲空間。
那麼為什麼這些SSD會選擇這種方式,而且不標出SLC緩存的容量呢?經小諾暗搓搓的考證,發現這是因為它們使用了動態SLC容量,直接在未使用的存儲空間中劃出一部分,只存儲一位電荷,於是就「模擬」成了SLC緩存。
那麼為什麼SSD廠商會這樣做呢?因為這樣的設計讓SSD成本大幅下降,但也使其在連續存入大量數據、存儲比例較大的時候,都會出現耗盡SLC緩存,存儲速度「斷崖」式下跌的問題,這時候的速度甚至還不如未開啟SLC緩存哦。
小諾貼心提示:延緩SSD降速最簡單的方式就是儘量不要一次性拷貝過多數據,並且使用更大容量的型號,同時給SSD預留一定的儲存空間。
主控過熱問題雖然現在SSD快閃記憶體和主控晶片的製造工藝下,已經很少出現燙手的產品了。不過一些高速SSD使用的主控晶片在長時間高速使用時,發熱量還是比較大的。與CPU一樣,當溫度過高的時候主控晶片也會自動降速,此時SSD的讀寫速度都會明顯下降哦。關於這點,小諾建議親們可以購買散熱片,目前很多中高端SSD都提供散熱片選購哦。
另一方面,寫入放大,增加了寫入任務量,也是讓SSD變慢的主要原因。
總結以上原因呢,小諾覺得親們可能會想:SSD降速的原因根本就是它自身讀寫方式和結構的問題嘛。其實還有很多需要親們注意影響SSD降速的事項,小諾下期再給親們分析。