固態硬碟卡頓嚴重(固態硬碟掉速的原因)
過去的十年間,PC上最大的技術革新之一就是用固態硬碟取代了機械硬碟。回顧PC的進化史,CPU、記憶體和顯示卡的頻率和效能一直在不斷的進步。而機械硬碟的效能卻出現了瓶頸,傳輸速度一直在200MB/s 以下原地踏步(這個數值是連續讀寫速度,隨機讀寫速度更慘不忍睹)。而如今高階的SSD能將這個速度提升到2GB/s以上。
隨著SSD(固態硬碟)產品價格不斷下降,買塊SSD來提升效能理念已經深入人心。畢竟現在主流的1TB的SSD的價格已經在千元以內了。你花個幾百塊升級CPU記憶體可能一點效能提升的感覺都沒有,但花同樣的價格從機械硬碟升級到SSD就能感覺到明顯的提速。
但世上似乎沒有完美的事物——SSD亦是如此。雖然在如今大降價的環境下SSD被各種文章做了“真香”評價。但它還是有些讓人糟心的問題——在使用了一段時間後,掉速甚至卡頓藍屏都有可能出現。對於這些問題,長期使用過SSD硬碟的玩家們可能會有所體會,今天我們就來談一談SSD的掉速和卡頓的問題
一、SSD顆粒從SLC、MLC、TLC到QLC變遷,每一次變遷都會導致掉速的發生
稍有常識的使用者都知道,SSD硬碟上的快閃記憶體顆粒分為SLC、MLC、TLC及QLC 四種快閃記憶體顆粒,從顆粒壽命和質量上來講SLC>MLC>TLC>QLC,事實上如果我們都用SLC快閃記憶體的話,今天這個掉速問題的話題可能就不用討論了。但SLC單元可儲存的資料過少,導致了SLC顆粒的成本居高不下。為了能把固態硬碟的價格降到民用級。廠家們之後有進一步推出了MLC、TLC和QLC顆粒。
目前在民用級市場中,MLC顆粒的SSD也已經不多見了。目前主流的顆粒型別是TLC,並正在向QLC過渡。
由於cell單元可以儲存的電荷位越來越多,容量在不斷增加,相應地成本在下降,但是NAND快閃記憶體先天的特性就註定了電位越多,控制就越複雜,寫入資料的時間就越長,導致了效能大幅下降(這裡主要是指寫入效能,讀取效能還好)
以英特爾QLC快閃記憶體的660P硬碟為例,隨著寫入資料的增加,SSD本身快取空間用完之後QLC原本的效能就顯露無遺了。寫入速度只有100MB/s,這基本也就是普通機械硬碟的速度了。
不過這樣的速度只有在特定的條件下才能測試出來,商家給SSD施加了各種“魔法”讓其初始跑分成績非常驚豔。這些“魔法”我們會在後邊的文章中一一提到。
二、SSD硬碟的特有的垃圾回收機制,資料過滿需擦除資料時會導致掉速
SSD主控通過若干個通道(channel)並行操作多塊FLASH顆粒,類似RAID0,大大提高底層的頻寬。舉個例子,假設主控與FLASH顆粒之間有8個通道,每個通道上掛載了一個快閃記憶體顆粒。我們買到一個全新的SSD硬碟的時候。每個顆粒的區塊內都是空白的。
如上圖所示,SSD上的主控會將資料依次寫入每塊快取。直到將其寫滿,此時由於SSD沒有傳統硬碟那樣的機械限制。寫入和讀取的速度都會比較理想。
而當我們就會刪除掉一部分資料時,這些資料並不會馬上刪掉,而只是標記成可擦寫。類似下圖,紅色的塊表示可擦除塊。
根據SSD的特性:要寫入新的資料前,主控必須將區塊內有用的資料遷移到新的區塊裡,再將老區塊內資料整體擦除掉。才能寫入新的資料。
有時還要將幾個區塊的有用資料合併在一起。
這樣的過程稱為SSD的垃圾回收機制。當然,優秀的主控會盡量避免資料回收過程中造成的掉速。一般它會在硬碟空閒的時候默默進行。但如果你的硬碟平時塞的很滿,狂刪檔案之後又馬上來下載一個大檔案。主控擦除和整理的工作一時忙不過來,就會導致掉速。
所以平時儘量給你的SSD硬碟多預留一些剩餘空間;購買時儘量買大容量大一些的SSD硬碟;避免連續刪除又馬上拷貝檔案。就可以有效避免SSD的掉速情況。
三、SSD的快取結構:從DRAM Cache到SLC Cache
之前曾經提到過某些品牌QLC的真實速度其實不比機械硬碟快(100MB/s)。但新買的QLC硬碟的實測速度還是能達到2GB/s。其原因就是廠家在SSD硬碟上加入了快取記憶體。
上圖是一塊M.2硬碟的設計佈局從左到右分別是DRAM快取、主控及NAND快閃記憶體(SATA硬碟的佈局與之類似),其中主控及NAND快閃記憶體是必不可少的。而DRAM快取並不是必需品,它只是用來提升高速SSD硬碟的效能。因為就算是較為便宜的DDR3快取,其頻寬也能達到數GB/s甚至十幾GB/s。硬碟讀取資料時首先看DRAM快取中有沒有需要的資料,如果有,那就先用這裡的,所以速度會很快對於SSD整體速度的提升還是很明顯的。(目前三星等公司已經在自己的高階SSD長跑上用上DDR4-2133做快取了)
至於DRAM快取容量,容量少的有128MB,256MB、512MB比較常見,隨著SSD硬碟越來越大,1GB快取的也不少見了。當然排除成本因素,DRAM快取容量當然還是越大越好了。當然也有低端的SSD硬碟為了節約成本,動用了電腦中的記憶體作為自己的DRAM快取,與整合顯示卡用記憶體作為自己視訊記憶體是一個道理。
當然DRAM快取雖快,但畢竟容量還是非常有限。快取中沒有的資料還是要在NAND快閃記憶體中尋找,速度就是NAND快閃記憶體的了,相對來說慢很多。所以廠家有做了第二道快取——SLC Cache。顧名思義就是用效能最好的SLC顆粒作為快取來使用。
與DRAM快取相比,SLC快取就可以做得很大了。所以很多評測中測出的SSD的讀寫資料基本都是在SLC快取跑出來的。至於快取具體做到多大,以及採用怎樣的加速機制各個廠商有不同的思路和做法。有大於20%的,有的在10%以下。值得一提的是:快取的大小並不能作為效能的評判標準。
不過依據這個思路,我們倒是可以測出某些固態硬碟的真實速度,比如筆者手中的西數blue系列SN500,查得其SLC快取大約為7GB。我們在寫入140GB資料的基礎上,用SSD Benchmark寫入一個10GB大小的檔案得出的讀寫速度就會更接近於其TLC顆粒的真實速度。
四、SSD之主控過熱保護
除了以上的這些問題以外,溫度也是不容忽視的問題。 支援M.2介面NVMe硬碟因為走高效能的PCIe通道資料的數量大。SSD主控往往都是三核或者四核的多核心架構。加上本身體積不大,發熱集中。控制區域的溫度往往超過90度甚至上百度都是正常現象。為了避免溫度過高損壞,SSD一般都會設定溫控機制。在主控溫度過高的時候就會降頻以減少發熱量。但溫控帶來最直觀的副作用就是SSD會突然降速。有可能會讓使用者在使用中感覺到卡頓。(相對而言SATA介面硬碟因為設計和效能等原因,發生主控溫度過熱的概率會小很多)
尤其是裝在膝上型電腦內部的M.2介面硬碟,很可能會因為散熱不暢而導致溫度過高。此時給SSD安裝散熱片就比較重要了。大家可以在網上買專門的SSD散熱片加裝,一些品牌的SSD現在出廠就安裝了厚度驚人的散熱片。雖然樣子醜了些,當時效果還是非常好的。
五、節能特性導致的掉速和卡頓
無論是SATA介面還是M.2介面都有自己的一套閒置狀態節能特性。節能設定的初衷是好的:為了省電和降低溫度功耗。但這套節能特性需要電腦主機端和固態硬碟方進行協商。如果雙方溝通不來,或者是需要喚醒的時候沒有及時“醒過來”,就可能會導致卡頓甚至是電腦藍屏宕機。
比如安裝了英特爾快速儲存驅動RST之後,系統會預設開啟全部的節能功能,有時會讓卡頓現象出現或者加重。如果出現類似的現象,我們就需要關閉相關的節能選項。
點選禁用以後重新啟動一次電腦,即可關閉所有鏈路節能。
另外現在一些比較新的主機板也可能會提供禁用節能特性的選項。我們可以在BIOS中關閉節能。
對於支援M.2介面NVMe硬碟,我們還可以在通過關閉"高階電源管理"中 "PCI express選項"的節能設定來達到關閉節能的問題。
關於節能設定的相容性問題,各個廠家之間的協調似乎一直有點問題。所以如果你的SSD有掉速或者卡頓的情況。我建議還是關掉節能選項來試試。
這筆者個人對SSD掉速問題的總結。當然以上情況排除了人為問題:比如4K沒對齊、同步/非同步快閃記憶體、AHCI/IDE模式等等都會導致SSD的速度不正常。小廠商或者太廉價的SSD,因為快閃記憶體顆粒質量或者主控問題。也都可能導致SSD速度不正常。篇幅問題這裡就不展開說了。
總結下:在目前的技術和市場環境下。SSD的掉速問題似乎很難避免。且SSD硬碟剩餘空間越少的情況下,對快取加速越不利,掉速問題就越嚴重。這也是很多人覺得SSD硬碟越用越卡的根源。俗稱的掉速也就是這麼來的。
如果對掉速問題很介意的話,只能定期把SSD硬碟安全擦除下。或者去MLC硬碟或者購買大容量SSD。儘量不要將SSD裝得太滿,空餘空間越多,SSD掉速的機率就越低。