《知識問答》為什麼SSD 4k隨機讀寫比寫慢?

一樓:諾威

並非所有固態硬盤的4K隨機讀取都明顯慢於寫入。比如下面這個M.2 SATA總線的廠商生產的固態硬盤,可以保證單線程4k隨機讀寫和多線程4k隨機讀寫幾乎一樣。這就是大廠的品質!

二樓:

如果閱讀比寫作慢,

第一,因為普通ssd有內存顆粒作為緩存,先寫入緩存,所以寫入會非常快。

第二,當有大量數據時,數據可能是分散的,並且存在這樣一種情況,找到這些數據可能比直接在一個大的連續空間中寫入要花費更長的時間。

當ssd緩存耗盡時,ssd的寫入速度一般會大幅下降,寫入速度會小於讀取速度。

再比如ssd中沒有緩存,也就是以粒子本身的讀寫速度,讀可能比寫快。

下圖為無緩存的奧騰900p,cpu為3700x。

三樓:廣東豪

另一種猜測是slc模擬了緩存的效果。寫的時候隻保證電位和一個閾值的關系,但是讀的時候要保證和驗證寫的“電位”和多個閾值“電位”的關系。

四樓:

主要寫緩存的信用。

不信可以關閉寫緩存——。如果你真的能關掉它,你會發現誰真的很慢:

寫緩存啟動狀態

4K讀21,4K寫39。

寫緩存關閉狀態

4K讀21,而4K寫下降到個位數。

不僅4K單隊列變慢,而且連續寫入,4K-64的隊列和寫入延遲都是破紀錄的。

什麼圓周率寫作速度!

第五層:誰想到雲?

寫隨機是偽隨機,隨機是邏輯地址。當主機將這些數據寫入物理地址時,物理地址仍然是連續的。隨機讀取真的是隨機的,本來隨機就是邏輯地址,但是邏輯地址到物理地址的映射也是隨機的,所以讀取NAND的時候還是隨機的,而且因為是4k隨機,所以連NAND的緩存都很難命中。然而,兩者的速度不一定更快或更慢,這與特定的與非門粒子特性有關。隻能說4k隨機寫入和順序寫入的差距小於4k隨機讀取和順序讀取的差距。

六樓:

事實上,4K有兩種測試,一種是4K,另一種是4K-64線程。其實你會發現,4K-64線程測試的讀寫速度比和16MB(近似連續讀寫)的讀寫速度比是一樣的,甚至讀取數據也會更好看。

原因:讀取一條數據時,找到數據所在的塊,打開通道,尋址數據所在的頁面,打開通道,啟用讀取,關閉通道。在此過程中,任何通道沖突和塊沖突隻能排隊。

但如果隨機64個線程並發,由於SSD中有很多塊(一塊大小隻有幾MB),大部分工作都可以並發執行,所以效果會明顯提升。理論上,固態硬盤中沒有連續讀取這種東西,因為數據塊大小很小,也沒有選擇連續塊進行寫入的傾向。因此,連續讀取隻是並發塊讀取,在尋址和讀取過程中沒有明顯優勢,反而帶寬限制會影響性能。

寫入時,由於SSD本身的原理限制,隻能先存儲在緩存(通常是高速NAND)塊中。這些塊專用於寫緩存。一次寫入4k數據或多線程寫入隻能寫入這些塊。

由於緩存塊數量有限,一個塊隻能同時做一個操作,導致並發性提升不大。但在連續寫入的過程中,不僅存在上述問題,還存在緩存塊耗盡的問題,直接導致寫入存儲區域的問題,性能下降更加明顯。

第七層:北極

其實SSD類似於一個大u盤,但是u盤的速度無論如何也趕不上SSD。主要區別包括:主控、緩存和通道號。

操作固態硬盤時,無論是讀還是寫,其實都要取緩存。英特爾高級SSD內置GB DDR緩存,效率高得嚇人。

所以大多數情況下,4K隨機寫入都是先寫入SSD的緩存,然後SSD主慢慢刷,但是隨機讀取就不一樣了。隨機讀取在大多數情況下會緩存未命中,需要直接讀入閃存。NAND閃存的讀取速度並不快。為了保證效率,主流固態硬盤都有巨大的緩存,所以效果是隨機寫入有時比隨機讀取快,但這也取決於固態硬盤主的算法,並不是所有固態硬盤都是這樣(

八樓:嚴寒

需要類似搜索的操作。不管你能同時寫多少個粒子,讀的時候一定要找到指定的塊去取數據,寫數據的時候隻要找到空的塊,就寫,然後把文件記錄下來,寫入這個塊。