爲什麽固态驅動器在你裝滿它們的時候慢下來?
基準測試是很清楚的:當你将固态驅動器填滿時,它們的速度會減慢。将您的固态驅動器填充到接近容量,其寫入性能将急劇下降.原因在于SSD和NANDFlash存儲的工作方式。
用固态驅動器填充驅動器是你永遠不應該做的事情之一。幾乎完全固态驅動器将有更慢的寫入操作,減慢您的計算機.
空塊和部分填充塊
當您将文件寫入固态驅動器時,它會查找空塊并填充它們。寫入空塊是最快的寫入操作。這就是爲什麽新的操作系統(Windows 7及更高版本)支持TRIM功能,一旦删除操作系統中的文件,就會自動從固态驅動器中删除文件的數據。這與磁性硬盤的工作方式不同,磁性硬盤上有一些被删除的文件。
他們不會坐在一個固态驅動器修剪,以确保塊是空的,以便SSD可以快速寫入新的數據,在未來的空塊。寫一個已經寫好的扇區就像在機械硬盤上寫空扇區一樣快,但是一個固态驅動器在寫它之前必須擦除一個塊。
NANDFlash内存将數據寫入256 KB塊内的4 KB頁中。若要向部分填充的塊添加其他頁面,固态驅動器必須在将數據寫回之前擦除整個塊。
當你的固态驅動器滿了,可用的空塊越來越少.取而代之的是部分填充的街區。固态驅動器不能僅僅将新的數據寫入這些部分填充的塊–這将擦除現有的數據。與簡單的寫操作不同,固态驅動器必須将塊的值讀取到緩存中,用新數據修改值,然後将其寫回。請記住,編寫一個文件可能需要寫入許多塊,因此這可能會導緻大量的額外延遲。
TRIM不會鞏固部分填充的區塊。
如果您将驅動器填充到容量或接近容量,那麽在删除文件之後,很可能會有許多部分填充的塊。當文件被删除時,TRIM命令隻指示固态驅動器删除文件數據。它不會強迫驅動器執行任何類型的清理操作。
換句話說,在删除文件之前,将一個固态驅動器填充到容量中,您可能會得到許多部分填充的塊。驅動器不會采取其方式,以鞏固這些部分填充塊爲完整的區塊,釋放空塊。驅動器将仍然充滿部分填充塊和寫性能将下降。
超額供應和垃圾收集
爲了防止消費者填滿他們的固态硬盤,并最終導緻性能嚴重下降,ssd制造商正想方設法解決這一問題。
消費者級的固态硬盤通常會預留大約7%的閃存,讓用戶無法使用。這就是所謂的“過度供應”-額外的存儲硬件被添加到驅動器,但在計算機上是不可見的,因爲它可以使用可用的存儲。備用區域确保驅動器永遠不會完全滿-将始終有一些備用能力,以幫助保持寫性能穩定。
每個固态驅動器的控制器都有一個垃圾收集算法來緩解這個問題。當驅動器變得滿時,它将尋找部分填充的塊,并開始鞏固它們,釋放盡可能多的空塊。不同的固态驅動器在不同的時間和阈值運行這些操作,這取決于驅動器的控制器。
基準證據
AnandTech用不同的驅動器執行了各種基準測試,以梳理出固态驅動器的備用區域與其寫入操作性能的一緻性之間的關系。當填充一個空驅動器時,他們發現在這個過程的早期,他們發現了很高的寫性能,并且随着寫操作繼續填充驅動器,他們發現了很大的下降。
在驅動器上留出更多的備用空間有助于性能保持一緻,因爲它确保驅動器始終有足夠的空塊準備就緒。
他們發現,“一旦這些[消費者]驅動器的備用面積達到25%,最低性能就會大大提高。”他們最後的建議是,如果你想要在性能一緻性和容量之間保持一個良好的平衡,你應該“計劃隻使用大約75%的[你的驅動器]容量。”
如果你有一個固态驅動器,你應該盡量避免使用超過75%的容量。購買一個比您需要更多存儲空間的更大的驅動器,您将确保始終具有一緻的寫入性能。幸運的是,SSD正逐漸變得更便宜,因此它不再像以前那麽昂貴了。
原文鏈接:https://www.701z.com/10804.html,轉載請注明出處。
本站資源僅供個人學習交流,請于下載後24小時内删除,不允許用于商業用途,否則法律問題自行承擔。
評論0